2010-02-23 | Paul Boddie | raw annotate files changeset graph | Simplified the usage tracking by merely recording active users (providers) of names and propagating usage back to them. Accesses retain lists of active users and the name of the object through which an access is performed. To generate specific access instructions, the users are consulted for their usage lists and possible types deduced. Similarly, guards are generated by deducing possible types from such usage lists. |
1 #!/usr/bin/env python 2 3 import imported 4 5 result_123 = imported.attr # cannot assign to this 6 7 m = imported 8 result1_10 = imported.a # can only read from the attribute, not replace it 9 result2_10 = m.a # can only read from the attribute (m is known) 10 11 # vim: tabstop=4 expandtab shiftwidth=4