micropython

tests/importer.py

234:77038806cb40
2009-06-01 Paul Boddie Moved context verification back into the invocation code, as opposed to residing in the function body code. This is required because keyword arguments need to operate on adjusted frames, and such adjustments must therefore occur because keyword arguments are stored in their invocation frames. Renamed CheckClassContext to the more general CheckClass instruction. Made AdjustFrame operate on invocation frames again. Introduced explicit tests for class invocation since instantiators require an extra slot for each new instance. Fixed the "if" statement to employ conversion of expression results to boolean values. Split and improved test programs.
     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