Package org.sonar.python.types
Class DeclaredType
- java.lang.Object
-
- org.sonar.python.types.DeclaredType
-
- All Implemented Interfaces:
InferredType
public class DeclaredType extends Object implements InferredType
-
-
Constructor Summary
Constructors Constructor Description DeclaredType(Symbol typeClass, List<DeclaredType> typeArgs)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Set<Symbol>alternativeTypeSymbols()booleancanBeOrExtend(String typeName)booleancanHaveMember(String memberName)booleancanOnlyBe(String typeName)booleandeclaresMember(String memberName)Used to handle uncertainty of declared types.booleanequals(Object o)static InferredTypefromInferredType(InferredType inferredType)SymbolgetTypeClass()inthashCode()booleanisCompatibleWith(InferredType other)booleanisIdentityComparableWith(InferredType other)booleanmustBeOrExtend(String typeName)mustBeOrExtend implies we know for sure the given type is either of the given typeName or a subtype of it.Optional<Symbol>resolveDeclaredMember(String memberName)Optional<Symbol>resolveMember(String memberName)StringtoString()StringtypeName()
-
-
-
Constructor Detail
-
DeclaredType
public DeclaredType(Symbol typeClass, List<DeclaredType> typeArgs)
-
-
Method Detail
-
canHaveMember
public boolean canHaveMember(String memberName)
- Specified by:
canHaveMemberin interfaceInferredType
-
declaresMember
public boolean declaresMember(String memberName)
Description copied from interface:InferredTypeUsed 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.- Specified by:
declaresMemberin interfaceInferredType
-
isIdentityComparableWith
public boolean isIdentityComparableWith(InferredType other)
- Specified by:
isIdentityComparableWithin interfaceInferredType
-
resolveMember
public Optional<Symbol> resolveMember(String memberName)
- Specified by:
resolveMemberin interfaceInferredType
-
resolveDeclaredMember
public Optional<Symbol> resolveDeclaredMember(String memberName)
- Specified by:
resolveDeclaredMemberin interfaceInferredType
-
canBeOrExtend
public boolean canBeOrExtend(String typeName)
- Specified by:
canBeOrExtendin interfaceInferredType
-
canOnlyBe
public boolean canOnlyBe(String typeName)
- Specified by:
canOnlyBein interfaceInferredType
-
isCompatibleWith
public boolean isCompatibleWith(InferredType other)
- Specified by:
isCompatibleWithin interfaceInferredType
-
mustBeOrExtend
public boolean mustBeOrExtend(String typeName)
Description copied from interface:InferredTypemustBeOrExtend 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.- Specified by:
mustBeOrExtendin interfaceInferredType
-
typeName
public String typeName()
-
getTypeClass
public Symbol getTypeClass()
-
fromInferredType
public static InferredType fromInferredType(InferredType inferredType)
-
-