Class DefaultTypeHierarchy

All Implemented Interfaces:
TypeHierarchy, AtmComboVisitor<Boolean,Void>

public class DefaultTypeHierarchy extends AbstractAtmComboVisitor<Boolean,Void> implements TypeHierarchy
Default implementation of TypeHierarchy that implements the JLS specification with minor deviations as outlined by the Checker Framework manual. Changes to the JLS include forbidding covariant array types, raw types, and allowing covariant type arguments depending on various options passed to DefaultTypeHierarchy.

Subtyping rules of the JLS can be found in section 4.10, "Subtyping".

Note: The visit methods of this class must be public but it is intended to be used through a TypeHierarchy interface reference which will only allow isSubtype to be called. Clients should not call the visit methods.

The visit methods return true if the first argument is a subtype of the second argument.