Class EqualityAtmComparer

All Implemented Interfaces:
AtmComboVisitor<Boolean,Void>

public class EqualityAtmComparer extends EquivalentAtmComboScanner<Boolean,Void>
Compares two annotated type mirrors for structural equality using only the primary annotations and underlying types of the two input types and their component types. Note, this leaves out other fields specific to some AnnotatedTypeMirrors (like directSupertypes, isUnderlyingTypeRaw, isTypeArgOfRawType etc...).

This class is used by AnnotatedTypeMirror#equals.

AnnotatedTypeMirror.hashCode() hashes only the top-level type, not the component types that this class compares. That is consistent -- unequal types may share a hash code -- and is explained there.