Exemplo n.º 1
0
    def _scope(
        self,
        node: ast.AST,
        names: Set[str],
        *,
        is_local: bool,
    ) -> None:
        scope = defs.BlockScope(node)
        shadow = scope.shadowing(names, is_local=is_local)

        ignored_scope = any(
            predicate(node, names)
            for predicate in self._scope_predicates
        )
        ignored_name = any(
            predicate(node)
            for predicate in self._naming_predicates
        )

        if shadow and not ignored_scope:
            self.add_violation(
                BlockAndLocalOverlapViolation(node, text=', '.join(shadow)),
            )

        if not ignored_name:
            scope.add_to_scope(names, is_local=is_local)
Exemplo n.º 2
0
    def _scope(
        self,
        node: ast.AST,
        names: Set[str],
        *,
        is_local: bool,
    ) -> None:
        scope = BlockScope(node)
        shadow = scope.shadowing(names, is_local=is_local)

        if shadow:
            self.add_violation(
                BlockAndLocalOverlapViolation(node, text=', '.join(shadow)), )

        scope.add_to_scope(names, is_local=is_local)