def relName(self, environment): """relName(id.Name, id.Environment): string list Returns a list of the name components essential to making the name unambiguous""" rscope = idlutil.relativeScope(environment.scope(), self._scopedName) if rscope and rscope[0] is None: return None else: return rscope
def relativeScope(fromScope, destScope): """relativeScope variant that handles invented fromScopes""" rs = idlutil.relativeScope(fromScope, destScope) if rs[0] is None: try: rd = idlast.findDecl(destScope) except idlast.DeclNotFound: return rs new_rs = rs while new_rs[0] is None and len(fromScope) > 1: fromScope = fromScope[:-1] new_rs = idlutil.relativeScope(fromScope, destScope) if new_rs[0] is not None: return new_rs return rs
def needFlatName(self, environment): # does the name have scope :: qualifiers? rscope = idlutil.relativeScope(environment.scope(), self._scopedName) return len(rscope) > 1