This does two things:
- Eliminate all uses of Unique.deriveUnique, which was quite easy to mis-use and extremely subtle.
- Rename the previous "derived unique" notion to "local unique". This is possible because the only places where uniqAway can be safely used are those where local uniqueness (with respect to some InScopeSet) is sufficient.
- Rework the implementation of VarEnv.uniqAway, as discussed in Trac #17462. This should make the operation significantly more efficient than its previous iterative implementation..
T9872c T12227 T9233 T14683 T5030 T12545 hie002