1.1 --- a/deducer.py Fri Oct 14 21:32:37 2016 +0200
1.2 +++ b/deducer.py Fri Oct 14 22:16:45 2016 +0200
1.3 @@ -1758,6 +1758,7 @@
1.4 preference to the initial accessor)
1.5 * attributes needing to be traversed from the base that yield
1.6 unambiguous objects
1.7 + * access modes for each of the unambiguously-traversed attributes
1.8 * remaining attributes needing to be tested and traversed
1.9 * details of the context
1.10 * the method of obtaining the final attribute
1.11 @@ -1893,20 +1894,24 @@
1.12
1.13 # Determine the method of access.
1.14
1.15 + is_assignment = location in self.reference_assignments
1.16 +
1.17 # Identified attribute that must be accessed via its parent.
1.18
1.19 - if attr and attr.get_name() and location in self.reference_assignments:
1.20 - final_method = "assign"; origin = attr.get_name()
1.21 + if attr and attr.get_name() and is_assignment:
1.22 + final_method = "static-assign"; origin = attr.get_name()
1.23
1.24 # Static, identified attribute.
1.25
1.26 elif attr and attr.static():
1.27 - final_method = "static"; origin = attr.final()
1.28 + final_method = is_assignment and "static-assign" or "static"
1.29 + origin = attr.final()
1.30
1.31 # All other methods of access involve traversal.
1.32
1.33 else:
1.34 - final_method = "access"; origin = None
1.35 + final_method = is_assignment and "assign" or "access"
1.36 + origin = None
1.37
1.38 # First attribute accessed at a known position via the accessor.
1.39