1.1 --- a/inspector.py Sun Sep 04 17:44:39 2016 +0200
1.2 +++ b/inspector.py Sun Sep 04 19:24:17 2016 +0200
1.3 @@ -1292,6 +1292,34 @@
1.4 else:
1.5 return self.get_constant_reference(ref, n.value)
1.6
1.7 + # Special names.
1.8 +
1.9 + def get_special(self, name):
1.10 +
1.11 + "Return any stored value for the given special 'name'."
1.12 +
1.13 + return self.special.get(name)
1.14 +
1.15 + def set_special(self, name, value):
1.16 +
1.17 + """
1.18 + Set a special 'name' that merely tracks the use of an implicit object
1.19 + 'value'.
1.20 + """
1.21 +
1.22 + self.special[name] = value
1.23 +
1.24 + def set_special_literal(self, name, ref):
1.25 +
1.26 + """
1.27 + Set a special name for the literal type 'name' having type 'ref'. Such
1.28 + special names provide a way of referring to literal object types.
1.29 + """
1.30 +
1.31 + literal_name = "$L%s" % name
1.32 + value = ResolvedNameRef(literal_name, ref)
1.33 + self.set_special(literal_name, value)
1.34 +
1.35 # Functions and invocations.
1.36
1.37 def allocate_arguments(self, path, args):