@@ -125,10 +125,10 @@ def typename(self):
125125 return self .__class__ .__name__
126126
127127 def name (self ):
128- raise NotImplementedError
128+ raise NotImplementedError ()
129129
130130 def fullname (self ):
131- raise NotImplementedError
131+ raise NotImplementedError ()
132132
133133 def accept (self , visitor , * args ):
134134 visit = getattr (visitor , 'visit' + self .__class__ .__name__ , None )
@@ -229,8 +229,18 @@ def hasBaseType(self): return False
229229
230230 @classmethod
231231 def convertsTo (cls , lesser , greater ):
232- if (lesser .nestedRange [0 ] < greater .nestedRange [0 ] or
233- lesser .nestedRange [1 ] > greater .nestedRange [1 ]):
232+ def _unwrap (nr ):
233+ if isinstance (nr , dict ):
234+ return _unwrap (nr ['nested' ])
235+ elif isinstance (nr , int ):
236+ return nr
237+ else :
238+ raise ValueError ('Got unexpected nestedRange value: %s' % nr )
239+
240+ lnr0 , gnr0 , lnr1 , gnr1 = (
241+ _unwrap (lesser .nestedRange [0 ]), _unwrap (greater .nestedRange [0 ]),
242+ _unwrap (lesser .nestedRange [1 ]), _unwrap (greater .nestedRange [1 ]))
243+ if (lnr0 < gnr0 or lnr1 > gnr1 ):
234244 return False
235245
236246 # Protocols that use intr semantics are not allowed to use
@@ -593,7 +603,7 @@ def iteractortypes(t, visited=None):
593603
594604def hasshmem (type ):
595605 """Return true iff |type| is shmem or has it buried within."""
596- class found :
606+ class found ( BaseException ) :
597607 pass
598608
599609 class findShmem (TypeVisitor ):
0 commit comments