Class AliasingVisitor

All Implemented Interfaces:
TreeVisitor<Void,Void>

public class AliasingVisitor extends BaseTypeVisitor<AliasingAnnotatedTypeFactory>
This visitor ensures that every constructor whose result is annotated as @Unique does not leak aliases.

TODO: Implement @NonLeaked and @LeakedToResult verifications:

@NonLeaked: When a method declaration has a parameter annotated as @NonLeaked, the method body must not leak a reference to that parameter.

@LeakedToResult: When a method declaration has a parameter annotated as @LeakedToResult, the method body must not leak a reference to that parameter, except at the method return statements.

Both of the checks above are similar to the @Unique check that is implemented in this visitor.