Interface InferredType
- All Known Implementing Classes:
DeclaredType,RuntimeType,UnknownClassType
@Beta
public interface InferredType
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionbooleancanBeOrExtend(String typeName) booleancanHaveMember(String memberName) booleanbooleandeclaresMember(String memberName) Used to handle uncertainty of declared types.booleanisCompatibleWith(InferredType other) booleanbooleanmustBeOrExtend(String typeName) mustBeOrExtend implies we know for sure the given type is either of the given typeName or a subtype of it.resolveDeclaredMember(String memberName) resolveMember(String memberName) default ClassSymbolReturns type ClassSymbol only in case of RuntimeType.
-
Field Details
-
MOCK_FQNS
-
-
Method Details
-
isIdentityComparableWith
-
canHaveMember
-
declaresMember
Used to handle uncertainty of declared types. It return false when a member is not present in a declared type, while canHaveMember returns true because one of its subtype may have it. -
resolveMember
-
resolveDeclaredMember
-
canOnlyBe
-
canBeOrExtend
-
isCompatibleWith
-
mustBeOrExtend
mustBeOrExtend implies we know for sure the given type is either of the given typeName or a subtype of it. As opposed to "canBeOrExtend", this will return true only when we are sure the subtyping relationship is present. For types inferred from type annotations (DeclaredType), the actual underlying type might be different from what has been declared, but it must be or extend the declared type. -
runtimeTypeSymbol
Returns type ClassSymbol only in case of RuntimeType.
-