# HG changeset patch # User Paul Boddie # Date 1479918232 -3600 # Node ID fbef93224a106ff703871f96c3e549181dd893b3 # Parent dfbc750d3fce43ad1619d9c678e197e1d64a266b Fixed assignments involving invocations that provide unknown results. diff -r dfbc750d3fce -r fbef93224a10 inspector.py --- a/inspector.py Wed Nov 23 16:19:06 2016 +0100 +++ b/inspector.py Wed Nov 23 17:23:52 2016 +0100 @@ -27,7 +27,7 @@ from referencing import Reference from resolving import NameResolving from results import AccessRef, InstanceRef, InvocationRef, LiteralSequenceRef, \ - LocalNameRef, NameRef, ResolvedNameRef + LocalNameRef, NameRef, ResolvedNameRef, VariableRef import compiler import sys @@ -757,7 +757,11 @@ elif isinstance(name_ref, NameRef): return InvocationRef(name_ref) - return None + # Provide a general reference to indicate that something is produced + # by the invocation, useful for retaining assignment expression + # details. + + return VariableRef() finally: self.deallocate_arguments(path, n.args) diff -r dfbc750d3fce -r fbef93224a10 results.py --- a/results.py Wed Nov 23 16:19:06 2016 +0100 +++ b/results.py Wed Nov 23 17:23:52 2016 +0100 @@ -30,12 +30,24 @@ def is_name(self): return False + def reference(self): + return None + + def get_name(self): + return None + def get_origin(self): return None - def reference(self): + def static(self): return None + def final(self): + return None + + def has_kind(self, kinds): + return False + class AccessRef(Result): """ @@ -162,4 +174,11 @@ def __repr__(self): return "LiteralSequenceRef(%r, %r, %r, %r)" % (self.name, self.ref, self.node, self.items) +class VariableRef(Result): + + "A variable reference." + + def __repr__(self): + return "VariableRef()" + # vim: tabstop=4 expandtab shiftwidth=4