Closed
Description
This fine-grained incremental mode test case causes a crash:
[case testNamedTupleSpecialCase]
from typing import NamedTuple
import b
def f() -> None:
b.x
n = NamedTuple('n', [])
[file b.py]
x = 0
[file b.py.2]
x = ''
[out]
==
Here's the relevant part of the traceback:
File "/Users/jukka/src/mypy/mypy/test/data.py", line 647, in runtest
suite.run_case(self.case)
File "/Users/jukka/src/mypy/mypy/test/testfinegrained.py", line 117, in run_case
new_messages = fine_grained_manager.update(modules)
File "/Users/jukka/src/mypy/mypy/server/update.py", line 222, in update
result = self.update_single(next_id, next_path)
File "/Users/jukka/src/mypy/mypy/server/update.py", line 284, in update_single
self.previous_targets_with_errors)
File "/Users/jukka/src/mypy/mypy/server/update.py", line 752, in propagate_changes_using_dependencies
triggered |= reprocess_nodes(manager, graph, id, nodes, deps)
File "/Users/jukka/src/mypy/mypy/server/update.py", line 848, in reprocess_nodes
manager.semantic_analyzer.refresh_partial(deferred.node)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 319, in refresh_partial
self.accept(node)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 3965, in accept
node.accept(self)
File "/Users/jukka/src/mypy/mypy/nodes.py", line 508, in accept
return visitor.visit_func_def(self)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 419, in visit_func_def
self.analyze_function(defn)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 638, in analyze_function
defn.body.accept(self)
File "/Users/jukka/src/mypy/mypy/nodes.py", line 773, in accept
return visitor.visit_block(self)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 1659, in visit_block
self.accept(s)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 3965, in accept
node.accept(self)
File "/Users/jukka/src/mypy/mypy/nodes.py", line 819, in accept
return visitor.visit_assignment_stmt(self)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 1744, in visit_assignment_stmt
self.process_namedtuple_definition(s)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 2352, in process_namedtuple_definition
named_tuple = self.check_namedtuple(s.rvalue, name)
File "/Users/jukka/src/mypy/mypy/semanal.py", line 2390, in check_namedtuple
info = self.build_namedtuple_typeinfo(name, items, types, {})
File "/Users/jukka/src/mypy/mypy/semanal.py", line 2516, in build_namedtuple_typeinfo
self.patches.append((PRIORITY_FALLBACKS, patch))
AttributeError: 'SemanticAnalyzerPass2' object has no attribute 'patches'