2016-09-05 | Paul Boddie | raw annotate files changeset graph | Separated external name reference definition from subsequent operations involving name references so that deferred references can be identified in the importer's resolution activity and be replaced with resolved names, with such resolved names then becoming available to each module's resolution activity. Introduced a special "<invoke>" reference kind that can be handled in the initialised name processing (which uses inspection-specific name reference objects) and also when processing affected module data. |
1 class C: 2 l = [2] 3 s = "test" 4 def __init__(self, x): 5 self.x = x 6 self.y = 3 7 self.z = "z" 8 9 c = C([1]) 10 x = c.x 11 f = c.x.__len__ 12 result1 = f() 13 14 y = c.l 15 g = c.l.__len__ 16 result2 = g() 17 18 yy = C.l 19 gg = C.l.__len__ 20 result22 = gg() 21 22 z = c.s 23 h = c.s.__len__ 24 result3 = h() 25 26 zz = C.s 27 hh = C.s.__len__ 28 result33 = hh() 29 30 a = c.y 31 b = c.z 32 i = c.z.__len__ 33 result4 = i()