File tree Expand file tree Collapse file tree 2 files changed +25
-13
lines changed Expand file tree Collapse file tree 2 files changed +25
-13
lines changed Original file line number Diff line number Diff line change @@ -809,20 +809,12 @@ def reprocess_nodes(manager: BuildManager,
809
809
old_symbols = find_symbol_tables_recursive (file_node .fullname (), file_node .names )
810
810
old_symbols = {name : names .copy () for name , names in old_symbols .items ()}
811
811
812
- def key (node : DeferredNode ) -> str :
813
- fullname = node .node .fullname ()
814
- if fullname is None :
815
- if isinstance (node .node , FuncDef ):
816
- info = node .node .info
817
- elif isinstance (node .node , OverloadedFuncDef ):
818
- info = node .node .items [0 ].info
819
- else :
820
- assert False , "'None' fullname for %s instance" % type (node .node )
821
- assert info is not None
822
- fullname = '%s.%s' % (info .fullname (), node .node .name ())
823
- return fullname
812
+ def key (node : DeferredNode ) -> int :
813
+ # Unlike modules which are sorted by name within SCC,
814
+ # nodes within the same module are sorted by line number, because
815
+ # this is how they are processed in normal mode.
816
+ return node .node .line
824
817
825
- # Sort nodes by full name so that the order of processing is deterministic.
826
818
nodes = sorted (nodeset , key = key )
827
819
828
820
# TODO: ignore_all argument to set_file_ignored_lines
Original file line number Diff line number Diff line change @@ -1564,6 +1564,26 @@ class C:
1564
1564
main:5: error: Too few arguments for "__init__" of "C"
1565
1565
main:6: error: Too few arguments for "D"
1566
1566
1567
+ [case testInferAttributeTypeAndMultipleStaleTargets]
1568
+ import a
1569
+
1570
+ class A:
1571
+ def g(self) -> None:
1572
+ a.x
1573
+ self.x = 1
1574
+
1575
+ def f(self) -> None:
1576
+ a.x
1577
+ b = self.x
1578
+ self.x = 1
1579
+
1580
+ [file a.py]
1581
+ x = 0
1582
+ [file a.py.2]
1583
+ x = ''
1584
+ [out]
1585
+ ==
1586
+
1567
1587
[case testNamedTupleUpdate]
1568
1588
import b
1569
1589
[file a.py]
You can’t perform that action at this time.
0 commit comments