Package org.glassfish.rmic.tools.tree
Class IdentifierExpression
java.lang.Object
org.glassfish.rmic.tools.tree.Node
org.glassfish.rmic.tools.tree.Expression
org.glassfish.rmic.tools.tree.IdentifierExpression
- All Implemented Interfaces:
Cloneable
,Constants
,RuntimeConstants
WARNING: The contents of this source file are not part of any
supported API. Code that depends on them does so at its own risk:
they are subject to change or removal without notice.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) MemberDefinition
(package private) Identifier
(package private) Expression
Fields inherited from class org.glassfish.rmic.tools.tree.Expression
type
Fields inherited from interface org.glassfish.rmic.tools.java.Constants
ABSTRACT, ACCM_CLASS, ACCM_FIELD, ACCM_INNERCLASS, ACCM_MEMBER, ACCM_METHOD, ADD, AND, ARRAY, ARRAYACCESS, ASGADD, ASGBITAND, ASGBITOR, ASGBITXOR, ASGDIV, ASGLSHIFT, ASGMUL, ASGREM, ASGRSHIFT, ASGSUB, ASGURSHIFT, ASSIGN, ATT_ALL, ATT_ALLCLASSES, ATT_CODE, BITAND, BITNOT, BITOR, BITXOR, BOOLEAN, BOOLEANVAL, BREAK, BYTE, BYTEVAL, CASE, CAST, CATCH, CHAR, CHARVAL, CLASS, COLON, COMMA, COMMENT, COND, CONST, CONTINUE, CONVERT, CS_BINARY, CS_CHECKED, CS_COMPILED, CS_NOTFOUND, CS_PARSED, CS_SOURCE, CS_UNDECIDED, CS_UNDEFINED, CT_BLOCK, CT_BRANCH_FALSE, CT_BRANCH_TRUE, CT_CASE, CT_FIKT_METHOD, CT_FIKT_RET, CT_FIRST_KIND, CT_LAST_KIND, CT_METHOD, CT_SWITH_WO_DEF, DEC, DECLARATION, DEFAULT, DIV, DO, DOUBLE, DOUBLEVAL, ELSE, EQ, ERROR, EXPR, EXPRESSION, EXTENDS, F_COVDATA, F_COVERAGE, F_DEBUG_LINES, F_DEBUG_SOURCE, F_DEBUG_VARS, F_DEPENDENCIES, F_DEPRECATION, F_DUMP, F_ERRORSREPORTED, F_OPT, F_OPT_INTERCLASS, F_PRINT_DEPENDENCIES, F_STRICTDEFAULT, F_VERBOSE, F_VERSION12, F_WARNINGS, FALSE, FIELD, FINAL, FINALLY, FLOAT, FLOATVAL, FOR, GE, GOTO, GT, idAppend, idClass, idClassInit, idClone, idCode, idConstantValue, idCoverageTable, idDeprecated, idDocumentation, IDENT, idExceptions, idFinallyReturnValue, idGetClass, idInit, idInnerClasses, idJavaIoSerializable, idJavaLang, idJavaLangClass, idJavaLangCloneable, idJavaLangError, idJavaLangException, idJavaLangObject, idJavaLangRuntimeException, idJavaLangString, idJavaLangStringBuffer, idJavaLangThrowable, idLength, idLineNumberTable, idLocalVariableTable, idNew, idNull, idSourceFile, idStar, idSuper, idSynthetic, idThis, idToString, idTYPE, idValueOf, IF, IMPLEMENTS, IMPORT, INC, INLINEMETHOD, INLINENEWINSTANCE, INLINERETURN, INSTANCEOF, INT, INTERFACE, INTVAL, LBRACE, LE, LENGTH, LONG, LONGVAL, LPAREN, LSHIFT, LSQBRACKET, LT, M_ABSTRACT, M_ANONYMOUS, M_DEPRECATED, M_FINAL, M_INLINEABLE, M_INTERFACE, M_LOCAL, M_NATIVE, M_PRIVATE, M_PROTECTED, M_PUBLIC, M_STATIC, M_STRICTFP, M_SYNCHRONIZED, M_SYNTHETIC, M_TRANSIENT, M_VOLATILE, MAXFILESIZE, MAXLINENUMBER, METHOD, MM_CLASS, MM_FIELD, MM_MEMBER, MM_METHOD, MUL, NATIVE, NE, NEG, NEW, NEWARRAY, NEWFROMNAME, NEWINSTANCE, NOT, NULL, opNames, opPrecedence, OR, PACKAGE, paraDeprecated, POS, POSTDEC, POSTINC, PREDEC, prefixAccess, prefixArray, prefixClass, prefixLoc, prefixThis, prefixVal, PREINC, PRIVATE, PROTECTED, PUBLIC, QUESTIONMARK, RBRACE, REM, RETURN, RPAREN, RSHIFT, RSQBRACKET, SEMICOLON, SHORT, SHORTVAL, SIG_INNERCLASS, SIGC_INNERCLASS, STAT, STATIC, STRICTFP, STRINGVAL, SUB, SUPER, SWITCH, SYNCHRONIZED, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_DOUBLE, TC_ERROR, TC_FLOAT, TC_INT, TC_LONG, TC_METHOD, TC_NULL, TC_SHORT, TC_VOID, THIS, THROW, THROWS, TM_ARRAY, TM_BOOLEAN, TM_BYTE, TM_CHAR, TM_CLASS, TM_DOUBLE, TM_ERROR, TM_FLOAT, TM_INT, TM_INT32, TM_INTEGER, TM_LONG, TM_METHOD, TM_NULL, TM_NUM32, TM_NUM64, TM_NUMBER, TM_REAL, TM_REFERENCE, TM_SHORT, TM_VOID, tracing, TRANSIENT, TRUE, TRY, TYPE, URSHIFT, VARDECLARATION, VOID, VOLATILE, WHEREOFFSETBITS, WHILE
Fields inherited from interface org.glassfish.rmic.tools.java.RuntimeConstants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_CLASS, CONSTANT_DOUBLE, CONSTANT_FIELD, CONSTANT_FLOAT, CONSTANT_INTEGER, CONSTANT_INTERFACEMETHOD, CONSTANT_INVOKEDYNAMIC, CONSTANT_LONG, CONSTANT_METHOD, CONSTANT_METHODHANDLE, CONSTANT_METHODTYPE, CONSTANT_NAMEANDTYPE, CONSTANT_STRING, CONSTANT_UNICODE, CONSTANT_UTF8, JAVA_DEFAULT_MINOR_VERSION, JAVA_DEFAULT_VERSION, JAVA_MAGIC, JAVA_MAX_SUPPORTED_MINOR_VERSION, JAVA_MAX_SUPPORTED_VERSION, JAVA_MIN_SUPPORTED_VERSION, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_breakpoint, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dead, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokedynamic, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_label, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_try, opc_wide, opcLengths, opcNames, SIG_ARRAY, SIG_BOOLEAN, SIG_BYTE, SIG_CHAR, SIG_CLASS, SIG_DOUBLE, SIG_ENDCLASS, SIG_ENDMETHOD, SIG_FLOAT, SIG_INT, SIG_LONG, SIG_METHOD, SIG_PACKAGE, SIG_SHORT, SIG_VOID, SIGC_ARRAY, SIGC_BOOLEAN, SIGC_BYTE, SIGC_CHAR, SIGC_CLASS, SIGC_DOUBLE, SIGC_ENDCLASS, SIGC_ENDMETHOD, SIGC_FLOAT, SIGC_INT, SIGC_LONG, SIGC_METHOD, SIGC_PACKAGE, SIGC_SHORT, SIGC_VOID, T_BOOLEAN, T_BYTE, T_CHAR, T_CLASS, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT
-
Constructor Summary
ConstructorsConstructorDescriptionIdentifierExpression
(long where, Identifier id) ConstructorIdentifierExpression
(long where, MemberDefinition field) -
Method Summary
Modifier and TypeMethodDescriptionprivate Vset
assign
(Environment env, Context ctx, Vset vset) Assign a value to this identifier.(package private) boolean
bind
(Environment env, Context ctx) Bind to a fieldcheckAmbigName
(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp, UnaryExpression loc) Check if the present name is part of a scoping prefix.checkAssignOp
(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp, Expression outside) Check the expression if it appears on the LHS of an op= expressionCheck the expression if it appears on the LHS of an assignmentcheckValue
(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp) Check expression(package private) void
codeLoad
(Environment env, Context ctx, Assembler asm) (package private) int
codeLValue
(Environment env, Context ctx, Assembler asm) Code local vars (object fields have been inlined away)(package private) void
codeStore
(Environment env, Context ctx, Assembler asm) void
codeValue
(Environment env, Context ctx, Assembler asm) copyInline
(Context ctx) Create a copy of the expression for method inliningint
costInline
(int thresh, Environment env, Context ctx) The cost of inlining this expression.boolean
equals
(Identifier id) Check if the expression is equal to a valueprivate Vset
get
(Environment env, Context ctx, Vset vset) Get the value of this identifier.getAssigner
(Environment env, Context ctx) Return an accessor if one is needed for assignments to this expression.Type checking may assign a more complex implementation to an innocuous-looking expression (like an identifier).getUpdater
(Environment env, Context ctx) Return an updater if one is needed for assignments to this expression.inline
(Environment env, Context ctx) InlineinlineLHS
(Environment env, Context ctx) inlineValue
(Environment env, Context ctx) boolean
Check if constant: Will it inline away?void
print
(PrintStream out) Printprivate ClassDefinition
toResolvedType
(Environment env, Context ctx, boolean pkgOK) Convert an identifier to a known type, or null.(package private) Type
toType
(Environment env, Context ctx) Convert an identifier to a type.Methods inherited from class org.glassfish.rmic.tools.tree.Expression
check, checkCondition, checkCondition, checkInitializer, code, codeAppend, codeBranch, codeConversion, codeDup, ensureString, equals, equals, equals, equalsDefault, eval, firstConstructor, fitsType, fitsType, getType, getValue, inlineValueSB, isNonNull, isNull, order, precedence, simplify
-
Field Details
-
id
Identifier id -
field
MemberDefinition field -
implementation
Expression implementation
-
-
Constructor Details
-
IdentifierExpression
Constructor -
IdentifierExpression
-
IdentifierExpression
-
-
Method Details
-
getImplementation
Description copied from class:Expression
Type checking may assign a more complex implementation to an innocuous-looking expression (like an identifier). Return that implementation, or the original expression itself if there is no special implementation.This appears at present to be dead code, and is not called from within javac. Access to the implementation generally occurs within the same class, and thus uses the underlying field directly.
- Overrides:
getImplementation
in classExpression
-
equals
Check if the expression is equal to a value- Overrides:
equals
in classExpression
-
assign
Assign a value to this identifier. [It must already be "bound"] -
get
Get the value of this identifier. [ It must already be "bound"] -
bind
Bind to a field -
checkValue
Check expression- Overrides:
checkValue
in classExpression
-
checkLHS
Check the expression if it appears on the LHS of an assignment- Overrides:
checkLHS
in classExpression
-
checkAssignOp
public Vset checkAssignOp(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp, Expression outside) Check the expression if it appears on the LHS of an op= expression- Overrides:
checkAssignOp
in classExpression
-
getAssigner
Return an accessor if one is needed for assignments to this expression.- Overrides:
getAssigner
in classExpression
-
getUpdater
Return an updater if one is needed for assignments to this expression.- Overrides:
getUpdater
in classExpression
-
checkAmbigName
public Vset checkAmbigName(Environment env, Context ctx, Vset vset, Hashtable<Object, Object> exp, UnaryExpression loc) Check if the present name is part of a scoping prefix.- Overrides:
checkAmbigName
in classExpression
-
toResolvedType
Convert an identifier to a known type, or null. -
toType
Convert an identifier to a type. If one is not known, use the current package as a qualifier.- Overrides:
toType
in classExpression
-
isConstant
public boolean isConstant()Check if constant: Will it inline away?- Overrides:
isConstant
in classExpression
-
inline
Inline- Overrides:
inline
in classExpression
-
inlineValue
- Overrides:
inlineValue
in classExpression
-
inlineLHS
- Overrides:
inlineLHS
in classExpression
-
copyInline
Description copied from class:Expression
Create a copy of the expression for method inlining- Overrides:
copyInline
in classExpression
-
costInline
Description copied from class:Expression
The cost of inlining this expression. This cost controls the inlining of methods, and does not determine the compile-time simplifications performed by 'inline' and friends.- Overrides:
costInline
in classExpression
-
codeLValue
Code local vars (object fields have been inlined away)- Overrides:
codeLValue
in classExpression
-
codeLoad
- Overrides:
codeLoad
in classExpression
-
codeStore
- Overrides:
codeStore
in classExpression
-
codeValue
- Overrides:
codeValue
in classExpression
-
print
Print- Overrides:
print
in classExpression
-