public class

ArrayAccessExpression

extends UnaryExpression
java.lang.Object
   ↳ sun.tools.tree.Node
     ↳ sun.tools.tree.Expression
       ↳ sun.tools.tree.UnaryExpression
         ↳ sun.tools.tree.ArrayAccessExpression

Class Overview

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.

Summary

[Expand]
Inherited Constants
From interface sun.tools.java.Constants
From interface sun.tools.java.RuntimeConstants
[Expand]
Inherited Fields
From interface sun.tools.java.Constants
From interface sun.tools.java.RuntimeConstants
Public Constructors
ArrayAccessExpression(long where, Expression right, Expression index)
constructor
Public Methods
Vset checkAmbigName(Environment env, Context ctx, Vset vset, Hashtable exp, UnaryExpression loc)
Check something that might be an AmbiguousName (refman 6.5.2).
Vset checkAssignOp(Environment env, Context ctx, Vset vset, Hashtable exp, Expression outside)
Vset checkLHS(Environment env, Context ctx, Vset vset, Hashtable exp)
Vset checkValue(Environment env, Context ctx, Vset vset, Hashtable exp)
Check expression type
void codeValue(Environment env, Context ctx, Assembler asm)
Expression copyInline(Context ctx)
Create a copy of the expression for method inlining
int costInline(int thresh, Environment env, Context ctx)
The cost of inlining this expression
FieldUpdater getAssigner(Environment env, Context ctx)
An array access expression never requires the use of an access method to perform an assignment to an array element, though an access method may be required to fetch the array object itself.
FieldUpdater getUpdater(Environment env, Context ctx)
An array access expression never requires a field updater.
Expression inline(Environment env, Context ctx)
Inline
Expression inlineLHS(Environment env, Context ctx)
Expression inlineValue(Environment env, Context ctx)
void print(PrintStream out)
Print
[Expand]
Inherited Methods
From class sun.tools.tree.UnaryExpression
From class sun.tools.tree.Expression
From class sun.tools.tree.Node
From class java.lang.Object

Public Constructors

public ArrayAccessExpression (long where, Expression right, Expression index)

constructor

Public Methods

public Vset checkAmbigName (Environment env, Context ctx, Vset vset, Hashtable exp, UnaryExpression loc)

Check something that might be an AmbiguousName (refman 6.5.2). A string of dot-separated identifiers might be, in order of preference:

  • a variable name followed by fields or types
  • a type name followed by fields or types
  • a package name followed a type and then fields or types If a type name is found, it rewrites itself as a TypeExpression. If a node decides it can only be a package prefix, it sets its type to Type.tPackage. The caller must detect this and act appropriately to verify the full package name.

  • public Vset checkAssignOp (Environment env, Context ctx, Vset vset, Hashtable exp, Expression outside)

    public Vset checkLHS (Environment env, Context ctx, Vset vset, Hashtable exp)

    public Vset checkValue (Environment env, Context ctx, Vset vset, Hashtable exp)

    Check expression type

    public void codeValue (Environment env, Context ctx, Assembler asm)

    public Expression copyInline (Context ctx)

    Create a copy of the expression for method inlining

    public int costInline (int thresh, Environment env, Context ctx)

    The cost of inlining this expression

    public FieldUpdater getAssigner (Environment env, Context ctx)

    An array access expression never requires the use of an access method to perform an assignment to an array element, though an access method may be required to fetch the array object itself.

    public FieldUpdater getUpdater (Environment env, Context ctx)

    An array access expression never requires a field updater.

    public Expression inline (Environment env, Context ctx)

    Inline

    public Expression inlineLHS (Environment env, Context ctx)

    public Expression inlineValue (Environment env, Context ctx)

    public void print (PrintStream out)

    Print