public class ProxyObjectType extends ObjectType
NamedType
,
TemplatizedType
,
Serialized FormJSType.TypePair
templateTypeMap
Modifier and Type | Method and Description |
---|---|
boolean |
canBeCalled()
This predicate is used to test whether a given type can be used as the
'function' in a function call.
|
JSType |
collapseUnion()
Gets the least supertype of this that's not a union.
|
JSType |
findPropertyType(String propertyName)
Coerces this type to an Object type, then gets the type of the property
whose name is given.
|
FunctionType |
getConstructor()
Gets this object's constructor.
|
Iterable<ObjectType> |
getCtorImplementedInterfaces()
Gets the interfaces implemented by the ctor associated with this type.
|
ObjectType |
getImplicitPrototype()
Gets the implicit prototype (a.k.a.
|
JSDocInfo |
getJSDocInfo()
Gets the docInfo for this type.
|
FunctionType |
getOwnerFunction()
Gets the owner of this if it's a function prototype.
|
String |
getReferenceName()
Gets the reference name for this object.
|
TemplateTypeMap |
getTemplateTypeMap()
Returns the template type map associated with this type.
|
com.google.common.collect.ImmutableList<JSType> |
getTemplateTypes()
Gets the declared default element type.
|
JSType |
getTypeOfThis() |
boolean |
hasAnyTemplateTypesInternal() |
int |
hashCode() |
boolean |
hasReferenceName()
Returns true if the object is named.
|
boolean |
isAllType() |
boolean |
isCheckedUnknownType() |
boolean |
isConstructor()
Whether this type is a
FunctionType that is a constructor or a
named type that points to such a type. |
boolean |
isDict()
Returns true iff
this can be a dict . |
boolean |
isInstanceType()
Whether this type is an Instance object of some constructor.
|
boolean |
isInterface()
Whether this type is a
FunctionType that is an interface or a named
type that points to such a type. |
boolean |
isNativeObjectType()
Whether this is a built-in object.
|
boolean |
isNominalType()
Whether this type is a nominal type (a named instance object or
a named enum).
|
boolean |
isNoObjectType() |
boolean |
isNoResolvedType() |
boolean |
isNoType() |
boolean |
isNullable()
Tests whether this type is nullable.
|
boolean |
isOrdinaryFunction()
Whether this type is a
FunctionType that is an ordinary function or
a named type that points to such a type. |
boolean |
isStruct()
Returns true iff
this can be a struct . |
boolean |
isStructuralType() |
boolean |
isSubtype(JSType that)
Checks whether
this is a subtype of that . |
protected boolean |
isSubtype(JSType that,
com.google.javascript.rhino.jstype.JSType.ImplCache implicitImplCache)
checking isSubtype with structural interface matching
|
boolean |
isUnknownType()
We treat this as the unknown type if any of its implicit prototype
properties is unknown.
|
void |
matchConstraint(JSType constraint)
Modify this type so that it matches the specified type.
|
boolean |
matchesNumberContext()
This predicate is used to test whether a given type can appear in a
numeric context, such as an operand of a multiply operator.
|
boolean |
matchesObjectContext()
This predicate is used to test whether a given type can appear in an
Object context, such as the expression in a with statement. |
boolean |
matchesStringContext()
This predicate is used to test whether a given type can appear in a
String context, such as an operand of a string concat (+) operator. |
boolean |
removeProperty(String name)
Removes the declared or inferred property from this ObjectType.
|
void |
setJSDocInfo(JSDocInfo info)
Sets the docInfo for this type from the given
JSDocInfo . |
void |
setPropertyJSDocInfo(String propertyName,
JSDocInfo info)
Sets the docInfo for the specified property from the
JSDocInfo on its definition. |
TernaryValue |
testForEquality(JSType that)
Compares
this and that . |
String |
toDebugHashCodeString()
A hash code function for diagnosing complicated issues
around type-identity.
|
EnumElementType |
toMaybeEnumElementType()
Downcasts this to an EnumElementType, or returns null if this is not an EnumElementType.
|
EnumType |
toMaybeEnumType()
Downcasts this to an EnumType, or returns null if this is not an EnumType.
|
FunctionType |
toMaybeFunctionType()
Downcasts this to a FunctionType, or returns null if this is not
a function.
|
RecordType |
toMaybeRecordType()
Downcasts this to a RecordType, or returns null if this is not
a RecordType.
|
TemplateType |
toMaybeTemplateType()
Downcasts this to a TemplateType, or returns null if this is not
a function.
|
TemplatizedType |
toMaybeTemplatizedType()
Downcasts this to a TemplatizedType, or returns null if this is not
a function.
|
UnionType |
toMaybeUnionType()
Downcasts this to a UnionType, or returns null if this is not a UnionType.
|
<T> T |
visit(Visitor<T> visitor)
Visit this type with the given visitor.
|
<T> T |
visitReferenceType(Visitor<T> visitor) |
cast, clearCachedValues, createDelegateSuffix, defineDeclaredProperty, defineInferredProperty, defineSynthesizedProperty, getCtorExtendedInterfaces, getDisplayName, getNormalizedReferenceName, getOwnPropertyJSDocInfo, getOwnPropertyNames, getOwnSlot, getParentScope, getPossibleToBooleanOutcomes, getPropertiesCount, getPropertyNames, getPropertyNode, getPropertyType, getPropertyTypeMap, getRootNode, getSlot, hasCachedValues, hasOwnProperty, hasProperty, isFunctionPrototypeType, isObject, isPropertyInExterns, isPropertyTypeDeclared, isPropertyTypeInferred, setPropertyNode
autobox, autoboxesTo, canCastTo, canTestForEqualityWith, canTestForShallowEqualityWith, dereference, differsFrom, equals, extendTemplateTypeMap, getGreatestSubtype, getLeastSupertype, getRestrictedTypeGivenToBooleanOutcome, getTypesUnderEquality, getTypesUnderInequality, getTypesUnderShallowEquality, getTypesUnderShallowInequality, hasAnyTemplateTypes, hasDisplayName, isArrayType, isBooleanObjectType, isBooleanValueType, isBottom, isDateType, isEmptyType, isEnumElementType, isEnumType, isEquivalent, isEquivalentTo, isEquivalentTo, isExplicitlyVoidable, isFunctionType, isGlobalThisType, isNamedType, isNominalConstructor, isNullType, isNumber, isNumberObjectType, isNumberValueType, isRecordType, isRegexpType, isResolved, isString, isStringObjectType, isStringValueType, isStructuralInterface, isSubtypeOf, isSubtypeWithoutStructuralTyping, isTemplateType, isTemplatizedType, isUnionType, isVoidable, isVoidType, matchesInt32Context, matchesUint32Context, resolve, restrictByNotNullOrUndefined, setValidator, toAnnotationString, toMaybeFunctionType, toMaybeNamedType, toMaybeObjectType, toNonNullAnnotationString, toObjectType, toString, unboxesTo
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
isBottom, isEquivalentTo, isFunctionType, isSubtypeOf, restrictByNotNullOrUndefined, toMaybeObjectType
public String getReferenceName()
ObjectType
getReferenceName
in class ObjectType
null
if this is an anonymous
objectpublic boolean hasReferenceName()
ObjectType
hasReferenceName
in class ObjectType
public boolean matchesNumberContext()
JSType
matchesNumberContext
in class JSType
public boolean matchesStringContext()
JSType
String
context, such as an operand of a string concat (+) operator.
All types have at least the potential for converting to String
.
When we add externally defined types, such as a browser OM, we may choose
to add types that do not automatically convert to String
.matchesStringContext
in class JSType
public boolean matchesObjectContext()
JSType
Object
context, such as the expression in a with statement.
Most types we will encounter, except notably null
, have at least
the potential for converting to Object
. Host defined objects can
get peculiar.matchesObjectContext
in class JSType
public boolean canBeCalled()
JSType
canBeCalled
in class JSType
true
if this type might be callable.public boolean isStructuralType()
isStructuralType
in class ObjectType
public boolean isNoObjectType()
isNoObjectType
in class JSType
public boolean isNoResolvedType()
isNoResolvedType
in class JSType
public boolean isUnknownType()
ObjectType
isUnknownType
in interface TypeI
isUnknownType
in class ObjectType
public boolean isCheckedUnknownType()
isCheckedUnknownType
in class JSType
public boolean isNullable()
JSType
isNullable
in class JSType
public EnumType toMaybeEnumType()
JSType
toMaybeEnumType
in class JSType
public boolean isConstructor()
JSType
FunctionType
that is a constructor or a
named type that points to such a type.isConstructor
in interface TypeI
isConstructor
in class JSType
public boolean isNominalType()
JSType
isNominalType
in class JSType
public boolean isInstanceType()
JSType
InstanceObjectType
.isInstanceType
in class JSType
public boolean isInterface()
JSType
FunctionType
that is an interface or a named
type that points to such a type.isInterface
in interface TypeI
isInterface
in class JSType
public boolean isOrdinaryFunction()
JSType
FunctionType
that is an ordinary function or
a named type that points to such a type.isOrdinaryFunction
in class JSType
public boolean isStruct()
JSType
this
can be a struct
.
UnionType overrides the method, assume this
is not a union here.public boolean isDict()
JSType
this
can be a dict
.
UnionType overrides the method, assume this
is not a union here.public boolean isNativeObjectType()
ObjectType
isNativeObjectType
in class ObjectType
public RecordType toMaybeRecordType()
JSType
toMaybeRecordType
in class JSType
public UnionType toMaybeUnionType()
JSType
toMaybeUnionType
in class JSType
public FunctionType toMaybeFunctionType()
JSType
toMaybeFunctionType
in interface TypeI
toMaybeFunctionType
in class JSType
public EnumElementType toMaybeEnumElementType()
JSType
toMaybeEnumElementType
in class JSType
public TernaryValue testForEquality(JSType that)
JSType
this
and that
.testForEquality
in class ObjectType
TernaryValue.TRUE
if the comparison of values of
this
type and that
always succeed (such as
undefined
compared to null
)TernaryValue.FALSE
if the comparison of values of
this
type and that
always fails (such as
undefined
compared to number
)TernaryValue.UNKNOWN
if the comparison can succeed or
fail depending on the concrete valuespublic boolean isSubtype(JSType that)
JSType
this
is a subtype of that
.Note this function also returns true if this type structurally matches the protocol define by that type (if that type is an interface function type) Subtyping rules:
(T1, …, Tn) <: U
if and only
Tk <: U
for all k ∈ 1..n
.U <: (T1, …, Tn)
if and only
if U <: Tk
for some index k
.O1
is a subtype
of an object O2
if it has more properties
than O2
and all common properties are
pairwise subtypes.protected boolean isSubtype(JSType that, com.google.javascript.rhino.jstype.JSType.ImplCache implicitImplCache)
JSType
public FunctionType getOwnerFunction()
ObjectType
getOwnerFunction
in class ObjectType
public Iterable<ObjectType> getCtorImplementedInterfaces()
ObjectType
getCtorImplementedInterfaces
in class ObjectType
public ObjectType getImplicitPrototype()
ObjectType
[[Prototype]]
property).getImplicitPrototype
in class ObjectType
public boolean removeProperty(String name)
ObjectType
removeProperty
in class ObjectType
name
- the property's namepublic JSType findPropertyType(String propertyName)
JSType
ObjectType.getPropertyType(java.lang.String)
, returns null if the property
is not found.findPropertyType
in class ObjectType
null
if the current type cannot
have properties, or if the type is not found.public JSDocInfo getJSDocInfo()
ObjectType
getJSDocInfo
in class ObjectType
public void setJSDocInfo(JSDocInfo info)
ObjectType
setJSDocInfo
in class ObjectType
public void setPropertyJSDocInfo(String propertyName, JSDocInfo info)
ObjectType
JSDocInfo
on its definition.setPropertyJSDocInfo
in class ObjectType
info
- JSDocInfo
for the property definition. May be
null
.public FunctionType getConstructor()
ObjectType
getConstructor
in interface ObjectTypeI
getConstructor
in class ObjectType
null
if it is a native
object (constructed natively v.s. by instantiation of a function)public com.google.common.collect.ImmutableList<JSType> getTemplateTypes()
ObjectType
getTemplateTypes
in class ObjectType
TemplatizedType
public <T> T visitReferenceType(Visitor<T> visitor)
public <T> T visit(Visitor<T> visitor)
JSType
visit
in class ObjectType
Visitor
public String toDebugHashCodeString()
JSType
toDebugHashCodeString
in class JSType
public JSType getTypeOfThis()
getTypeOfThis
in class ObjectType
public JSType collapseUnion()
JSType
collapseUnion
in class JSType
public void matchConstraint(JSType constraint)
JSType
matchConstraint
in class JSType
public TemplatizedType toMaybeTemplatizedType()
JSType
toMaybeTemplatizedType
in class JSType
public TemplateType toMaybeTemplateType()
JSType
toMaybeTemplateType
in class JSType
public boolean hasAnyTemplateTypesInternal()
public TemplateTypeMap getTemplateTypeMap()
JSType
getTemplateTypeMap
in class JSType
Copyright © 2009–2023 Google. All rights reserved.