1.1 --- a/deducer.py Fri Mar 10 17:57:07 2017 +0100
1.2 +++ b/deducer.py Fri Mar 10 19:13:23 2017 +0100
1.3 @@ -2474,10 +2474,15 @@
1.4
1.5 if remaining > 1 or final_method in ("access", "access-invoke", "assign"):
1.6
1.7 + # Constrain instructions involving certain special
1.8 + # attribute names.
1.9 +
1.10 + to_search = attrname == "__data__" and "object" or "any"
1.11 +
1.12 if assigning:
1.13 - emit(("__check_and_store_via_any", accessor, attrname, "<assexpr>"))
1.14 + emit(("__check_and_store_via_%s" % to_search, accessor, attrname, "<assexpr>"))
1.15 else:
1.16 - accessor = ("__check_and_load_via_any", accessor, attrname)
1.17 + accessor = ("__check_and_load_via_%s" % to_search, accessor, attrname)
1.18
1.19 remaining -= 1
1.20