Esempio n. 1
0
def _try_namespace_fix(
    scope: irast.ScopeTreeNode,
    obj: Union[irast.ScopeTreeNode, irast.Set],
) -> None:
    if obj.path_id is None:
        return
    for prefix in obj.path_id.iter_prefixes():
        replacement = scope.find_visible(prefix)
        if (replacement and replacement.path_id
                and replacement.path_id != prefix):
            new = obj.path_id.replace_prefix(prefix, replacement.path_id)
            obj.path_id = new
            break
Esempio n. 2
0
def _try_namespace_fix(
    scope: irast.ScopeTreeNode,
    obj: Union[irast.ScopeTreeNode, irast.Set],
) -> None:
    if obj.path_id is None:
        return
    for prefix in obj.path_id.iter_prefixes():
        replacement = scope.find_visible(prefix, allow_group=True)
        if (replacement and replacement.path_id
                and replacement.path_id.namespace != obj.path_id.namespace):
            new = obj.path_id.strip_namespace(obj.path_id.namespace -
                                              replacement.path_id.namespace)

            obj.path_id = new
            break