Class FeatureLiteral
java.lang.Object
gw.internal.gosu.parser.ParsedElement
gw.internal.gosu.parser.Expression
gw.internal.gosu.parser.expressions.FeatureLiteral
- All Implemented Interfaces:
IFeatureLiteralExpression
,ILiteralExpression
,IExpression
,IHasType
,IParsedElement
,Cloneable
Represents a feature literal expression as defined in the Gosu grammar.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate IBlockType
private List<IExpression>
(package private) IFeatureInfo
private IType[]
private IExpression
private static final int
Fields inherited from class gw.internal.gosu.parser.Expression
_type
Fields inherited from class gw.internal.gosu.parser.ParsedElement
_tokens, UNDEF_FILE, UNDEF_FUNCTION, UNDEF_MODULE
Fields inherited from interface gw.lang.parser.IExpression
EMPTY_ARRAY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate IType[]
adjustParametersForFeature
(IHasParameterInfos feature, IType[] params) argNames
(IHasParameterInfos hasParams) private IType[]
boundGenericFunctionTypeVariables
(IHasParameterInfos methodInfo, IType[] parametersTypes) private <T extends IHasParameterInfos>
TensureExactMatch
(T methodInfo, IType[] argTypes) private String
private List<? extends IInvocableType>
private IType
List<? extends IInvocableType>
getFunctionTypes
(String name) getFunctionTypeVarsToBound
(IHasParameterInfos methodInfo) private List<? extends IInvocableType>
getMethodTypes
(String name) IType[]
private IType[]
getParameterTypes
(IHasParameterInfos hasParameterInfos) getRoot()
private IType
private IConstructorInfo
getSingleConsructor
(IType typeToResolveAgainst, ITypeInfo typeInfo) private IMethodInfo
getSingleMethodWithName
(String methodName, IType typeToResolveAgainst, ITypeInfo typeInfo) private boolean
hasBoundArgs
(IHasParameterInfos feature) private boolean
boolean
isBound()
boolean
boolean
boolean
boolean
private IBlockType
makeBlockType
(IType returnType, IType[] params, List<String> argNames) boolean
resolveConstructor
(List<IType> typesList) private IType
resolveConstructorLiteralType
(IConstructorInfo constructorInfo) private void
boolean
resolveMethod
(String methodName, List<IType> typesList) private IType
resolveMethodLiteralType
(IMethodInfo methodInfo) boolean
resolveProperty
(String propName) private IType
resolvePropertyLiteralType
(IPropertyInfo propertyInfo) void
setFeature
(IHasParameterInfos feature, List<IExpression> arguments) toString()
Subclasses should return a String representing the parsed expression.Methods inherited from class gw.internal.gosu.parser.Expression
evaluate, evaluate, getContextType, getReturnType, getType, getTypeImpl, isNullSafe, isUnchecked, setType
Methods inherited from class gw.internal.gosu.parser.ParsedElement
addExceptionsFrom, addParseException, addParseException, addParseException, addParseExceptions, addParseIssues, addParseWarning, addParseWarning, addParseWarnings, addToken, adjustColumn, adjustLineNum, assignTokens, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, compactParseTree, findAncestorParsedElementByType, findDeclaringStatement, findLineNumberOfDeclaration, findRootParsedElement, getAnnotations, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getEnclosingFeatureInfo, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getQualifyingEnclosingTypeInfo, getTokens, hasImmediateParseIssue, hasImmediateParseWarning, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, initEmptyParseTree, initLocation, isCompileTimeConstant, isSuppressed, isSuppressed, isSynthetic, makeDoubleValue, makeFloatValue, makeInteger, makeLong, removeParseException, removeParseWarning, removeParseWarningRecursively, setGosuProgram, setLineNum, setLocation, setParent, setSynthetic, shouldClearParseInfo, visit
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface gw.lang.parser.IExpression
evaluate, evaluate, getContextType, isNullSafe, isUnchecked
Methods inherited from interface gw.lang.parser.IParsedElement
addExceptionsFrom, addParseException, addParseException, addParseWarning, addParseWarning, clearParseExceptions, clearParseTreeInformation, clearParseWarnings, findAncestorParsedElementByType, findDeclaringStatement, findRootParsedElement, getColumn, getContainedParsedElementsByType, getContainedParsedElementsByTypes, getContainedParsedElementsByTypesWithIgnoreSet, getFunctionName, getGosuClass, getGosuProgram, getImmediateParseIssue, getImmediateParseIssues, getLineNum, getLocation, getModule, getParent, getParseExceptions, getParseIssues, getParseWarnings, getReturnType, getTokens, hasImmediateParseIssue, hasImmediateParseWarnings, hasParseException, hasParseExceptions, hasParseIssue, hasParseIssues, hasParseWarning, hasParseWarnings, isCompileTimeConstant, isSuppressed, isSynthetic, setLocation, setParent, visit
-
Field Details
-
MAX_BLOCK_ARGS
private static final int MAX_BLOCK_ARGS- See Also:
-
_root
-
_feature
IFeatureInfo _feature -
_parameterTypes
-
_boundArgs
-
_blockType
-
-
Constructor Details
-
FeatureLiteral
-
-
Method Details
-
resolveProperty
-
resolveMethod
-
resolveConstructor
-
setFeature
-
toString
Description copied from class:Expression
Subclasses should return a String representing the parsed expression.- Specified by:
toString
in classExpression
-
isConstructorLiteral
public boolean isConstructorLiteral() -
isMethodLiteral
public boolean isMethodLiteral() -
isPropertyLiteral
public boolean isPropertyLiteral() -
getRoot
-
getFinalRoot
- Specified by:
getFinalRoot
in interfaceIFeatureLiteralExpression
- Returns:
- the final root expression of the feature literal
-
getFinalRootType
- Specified by:
getFinalRootType
in interfaceIFeatureLiteralExpression
- Returns:
- the root type of the entire literal chain (if one exists)
-
getRootType
- Specified by:
getRootType
in interfaceIFeatureLiteralExpression
- Returns:
- the type that the feature that this literal refers to is on
-
getPropertyName
-
getMethodName
-
getBoundArgs
- Specified by:
getBoundArgs
in interfaceIFeatureLiteralExpression
- Returns:
- bound args of this feature, or null if there are no bound args
-
isBound
public boolean isBound()- Specified by:
isBound
in interfaceIFeatureLiteralExpression
- Returns:
- true if this literal is bound at its root
-
getParameterTypes
-
isStaticish
public boolean isStaticish() -
getFeature
- Specified by:
getFeature
in interfaceIFeatureLiteralExpression
- Returns:
- the feature associated with this literal
-
getFunctionTypes
-
getSingleMethodWithName
private IMethodInfo getSingleMethodWithName(String methodName, IType typeToResolveAgainst, ITypeInfo typeInfo) -
getSingleConsructor
-
ensureExactMatch
-
boundGenericFunctionTypeVariables
private IType[] boundGenericFunctionTypeVariables(IHasParameterInfos methodInfo, IType[] parametersTypes) -
getFunctionTypeVarsToBound
-
makeBlockType
-
getMethodTypes
-
getConstructorTypes
-
resolveExpressionType
private void resolveExpressionType() -
resolvePropertyLiteralType
-
resolveMethodLiteralType
-
resolveConstructorLiteralType
-
argNames
-
adjustParametersForFeature
-
hasBoundArgs
-
hasImplicitFirstArg
private boolean hasImplicitFirstArg() -
getParameterTypes
-
featureRepresentation
-
getRootTypeToResolveFeaturesAgainst
-
getFeatureReturnType
-