@@ -446,8 +446,7 @@ def __init__(self, linter: PyLinter) -> None:
446446 BaseChecker .__init__ (self , linter )
447447 self .import_graph : defaultdict [str , set [str ]] = defaultdict (set )
448448 self ._imports_stack : list [tuple [ImportNode , str ]] = []
449- self ._first_non_import_node = None
450- self ._non_import_nodes : list = []
449+ self ._non_import_nodes : list [nodes .NodeNG ] = []
451450 self ._module_pkg : dict [Any , Any ] = (
452451 {}
453452 ) # mapping of modules to the pkg they belong in
@@ -608,7 +607,6 @@ def leave_module(self, node: nodes.Module) -> None:
608607 met .add (package )
609608
610609 self ._imports_stack = []
611- self ._first_non_import_node = None
612610 self ._non_import_nodes = []
613611
614612 def compute_first_non_import_node (
@@ -642,9 +640,6 @@ def compute_first_non_import_node(
642640 if all (valid_targets ):
643641 return
644642
645- if not self ._first_non_import_node :
646- self ._first_non_import_node = node
647-
648643 self ._non_import_nodes .append (node )
649644
650645 visit_try = visit_assignattr = visit_assign = visit_ifexp = visit_comprehension = (
@@ -666,9 +661,6 @@ def visit_functiondef(
666661 if any (root .nodes_of_class ((nodes .Import , nodes .ImportFrom ))):
667662 return
668663
669- if not self ._first_non_import_node :
670- self ._first_non_import_node = node
671-
672664 self ._non_import_nodes .append (node )
673665
674666 visit_classdef = visit_for = visit_while = visit_functiondef
@@ -699,7 +691,7 @@ def _check_position(self, node: ImportNode) -> None:
699691 Send a message if `node` comes before another instruction
700692 """
701693 # Check if import comes after a non-import statement
702- if self ._first_non_import_node :
694+ if self ._non_import_nodes :
703695 # Check for inline pragma on the import line
704696 if not self .linter .is_message_enabled (
705697 "wrong-import-position" , node .fromlineno
0 commit comments