2018-07-21 | Paul Boddie | raw annotate files changeset graph | Invocations in parameter lists may require temporary storage for contexts and accessors, but the storage locations must be different. Otherwise, the code will generate a sequence-point warning. Here, distinct ranges for parameters in lists are introduced, and accessors are now also stored in arrays, permitting distinct storage. |
1 class C: 2 x = 3 3 4 def f(): 5 x = g.x 6 print x # 3 7 y = g 8 print y # __main__.C 9 return y.x 10 11 def i(): 12 x = h.x 13 y = h 14 return y 15 16 g = C 17 result = f() 18 print result # 3 19 20 h = C 21 print i() # __main__.C 22 print i().x # 3 23 24 h = C() 25 print i() # <__main__.C instance> 26 print i().x # 3