paul@304 | 1 | Abandoned branches: should alternative type candidates be proposed by abandoned usage?
|
paul@304 | 2 | (This involves using both _attrnames and _attrnames_abandoned on user nodes to decide on whether guards are appropriate.)
|
paul@304 | 3 |
|
paul@304 | 4 | Usage should not be instantly fed back to users.
|
paul@304 | 5 | Branches should have an empty set of users and usage should only feed back to users defined on a branch or merged from sub-branches.
|
paul@304 | 6 |
|
paul@304 | 7 | Attribute users should be merged so that many users can be maintained for a name:
|
paul@304 | 8 |
|
paul@304 | 9 | def f(x):
|
paul@304 | 10 | if ...:
|
paul@304 | 11 | x = ...
|
paul@304 | 12 | x.a() # affects assignment node
|
paul@304 | 13 | x.b() # affects assignment and parameter nodes
|
paul@304 | 14 |
|
paul@304 | 15 | Constant attribute users need not maintain usage since they are already resolved.
|
paul@304 | 16 |
|
paul@304 | 17 | Consider handling CallFunc in micropython.inspect in order to produce instances of specific classes.
|
paul@304 | 18 | Then, consider adding support for guard removal/verification where known instances are involved.
|
paul@304 | 19 | Consider handling branches of values within namespaces in order to support more precise value usage.
|