Lichen

tests/chain.py

96:2219668ae7d9
2016-10-14 Paul Boddie Introduced access mode information for unambiguously-traversed attributes so that the appropriate instruction can be generated. Removed the generation of augmented attribute access plans and the computation of general attribute position ambiguity, since the information will not be used: in cases where ambiguity might need to be determined, attributes must be checked to determine their exact nature even if unambiguous.
     1 class C:     2     class D:     3         class E:     4             def m(self, x):     5                 self.x = x     6                 l = self.x.__len__     7                 s = self.o     8                 return self.o.__len__     9             n = 123    10             o = "123"    11     12         p = "456"    13         q = 789    14     15         class F(E):    16             def r(self, y):    17                 s = self.o    18                 C.D.F.t = 234    19                 return self.o.__len__    20             t = 123    21             def u(self):    22                 return self.o    23             def v(self):    24                 return self.u().__len__    25     26 def main():    27     c = C    28     d = C.D    29     e = C.D.E    30     f = C.D.E.m    31     g = C.D.E.n    32     h = C.D.p    33     i = C.D.p.__len__    34     C.D.q = 987    35     inst = e()    36     method = inst.m    37     return method("5")    38     39 result1 = main()    40 c = C    41 d = C.D    42 e = C.D.E    43 f = C.D.E.m    44 g = C.D.E.n    45 h = C.D.p    46 i = C.D.p.__len__    47 C.D.q = 987    48 inst = e()    49 method = inst.m    50 result2 = method("5")