Skip to content

Commit b51ae24

Browse files
author
Guido van Rossum
committed
Remove assertions from lookup code in fixup.py, replace with soft failures.
1 parent 162419a commit b51ae24

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

mypy/fixup.py

+10-7
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ def visit_symbol_table(self, symtab: SymbolTable) -> None:
7777
value.node = self.modules[cross_ref]
7878
else:
7979
stnode = lookup_qualified_stnode(self.modules, cross_ref)
80-
assert stnode is not None, "Could not find cross-ref %s" % (cross_ref,)
81-
value.node = stnode.node
82-
value.type_override = stnode.type_override
80+
if stnode is not None:
81+
value.node = stnode.node
82+
value.type_override = stnode.type_override
8383
else:
8484
if isinstance(value.node, TypeInfo):
8585
# TypeInfo has no accept(). TODO: Add it?
@@ -238,21 +238,24 @@ def lookup_qualified(modules: Dict[str, MypyFile], name: str) -> SymbolNode:
238238
return stnode.node
239239

240240

241-
def lookup_qualified_stnode(modules: Dict[str, MypyFile], name: str) -> SymbolTableNode:
241+
def lookup_qualified_stnode(modules: Dict[str, MypyFile], name: str) -> Optional[SymbolTableNode]:
242242
head = name
243243
rest = []
244244
while True:
245-
assert '.' in head, "Cannot find %s" % (name,)
245+
if '.' not in head:
246+
return None
246247
head, tail = head.rsplit('.', 1)
247248
rest.append(tail)
248249
mod = modules.get(head)
249250
if mod is not None:
250251
break
251252
names = mod.names
252253
while True:
253-
assert rest, "Cannot find %s" % (name,)
254+
if not rest:
255+
return None
254256
key = rest.pop()
255-
assert key in names, "Cannot find %s for %s" % (key, name)
257+
if key not in names:
258+
return None
256259
stnode = names[key]
257260
if not rest:
258261
return stnode

0 commit comments

Comments
 (0)