2009-06-07 | Paul Boddie | raw annotate files changeset graph | Changed the code body location initialisation in the code generation activity to set either a specific location or a symbolic reference to a native function or class (employing an instantiator). Fixed the "for" loop iterator storage and exception handling. Made xrange raise a StopIteration instance, short of adding class detection into RaiseException. Made code generation produce instantiators for StopIteration and BaseException, with the latter also providing attribute/size information in the builtins module. Added more integer operations in the RSVP implementation. |
1 #!/usr/bin/env python 2 3 import imported 4 5 imported.attr # cannot assign to this 6 7 m = imported 8 imported.a # cannot assign to this 9 m.a # cannot assign to this (m is known) 10 11 class C: # hack: make an attribute called y known to the system 12 y = None # hack: this prevents compilation errors with the statements 13 # hack: below 14 15 n = None 16 n = imported 17 n.a = 1 # not detected due to reassignment of n 18 n.y = 2 # not detected due to reassignment of n 19 n.y = 3 # not detected due to reassignment of n 20 21 # vim: tabstop=4 expandtab shiftwidth=4