📄 classinstanceexpr.java
字号:
else if(type().isLocalClass()) { if(!type().inStaticContext()) emitLocalEnclosing(gen, type()); } else if(type().isInnerType()) { emitInnerMemberEnclosing(gen, type()); } /* // 15.9.2 first part if(type().isAnonymous()) { if(type().isAnonymousInNonStaticContext()) { if(type().inExplicitConstructorInvocation()) gen.emit(Bytecode.ALOAD_1); else gen.emit(Bytecode.ALOAD_0); } if(type().needsSuperEnclosing()) { // 15.9.2 second part ClassDecl C = (ClassDecl)type(); TypeDecl S = C.superclass(); if(S.isLocalClass()) { emitLocalEnclosing(gen, S); } else if(S.isInnerType()) { emitInnerMemberEnclosing(gen, S); } } } else if(type().isLocalClass()) { emitLocalEnclosing(gen, type()); } else if(type().isInnerType()) { emitInnerMemberEnclosing(gen, type()); } */ for (int i = 0; i < getNumArg(); ++i) { getArg(i).createBCode(gen); getArg(i).type().emitCastTo(gen, decl().getParameter(i).type()); // MethodInvocationConversion } if(decl().isPrivate() && type() != hostType()) { gen.emit(Bytecode.ACONST_NULL); decl().createAccessor().emitInvokeConstructor(gen); } else { decl().emitInvokeConstructor(gen); } } // Declared in InnerClasses.jrag at line 451 // add val$name as arguments to the constructor protected boolean addEnclosingVariables = true; // Declared in InnerClasses.jrag at line 452 public void addEnclosingVariables() { if(!addEnclosingVariables) return; addEnclosingVariables = false; decl().addEnclosingVariables(); for(Iterator iter = decl().hostType().enclosingVariables().iterator(); iter.hasNext(); ) { Variable v = (Variable)iter.next(); getArgList().add(new VarAccess(v.name())); } } // Declared in Transformations.jrag at line 126 // remote collection / demand driven creation of accessor public void transformation() { // this$val addEnclosingVariables(); // touch accessorIndex go force creation of private constructorAccessor if(decl().isPrivate() && type() != hostType()) { decl().createAccessor(); } super.transformation(); } // Declared in java.ast at line 3 // Declared in java.ast line 34
public ClassInstanceExpr() { super();
setChild(new List(), 1);
setChild(new Opt(), 2);
} // Declared in java.ast at line 12
// Declared in java.ast line 34 public ClassInstanceExpr(Access p0, List<Expr> p1, Opt<TypeDecl> p2) { setChild(p0, 0); setChild(p1, 1); setChild(p2, 2); } // Declared in java.ast at line 18 protected int numChildren() {
return 3;
} // Declared in java.ast at line 21
public boolean mayHaveRewrite() { return false; } // Declared in java.ast at line 2 // Declared in java.ast line 34 public void setAccess(Access node) { setChild(node, 0); } // Declared in java.ast at line 5 public Access getAccess() { return (Access)getChild(0); } // Declared in java.ast at line 9 public Access getAccessNoTransform() { return (Access)getChildNoTransform(0); } // Declared in java.ast at line 2 // Declared in java.ast line 34 public void setArgList(List<Expr> list) { setChild(list, 1); } // Declared in java.ast at line 6 private int getNumArg = 0; // Declared in java.ast at line 7 public int getNumArg() { return getArgList().getNumChild(); } // Declared in java.ast at line 11 @SuppressWarnings({"unchecked", "cast"}) public Expr getArg(int i) { return (Expr)getArgList().getChild(i); } // Declared in java.ast at line 15 public void addArg(Expr node) { List<Expr> list = getArgList(); list.addChild(node); } // Declared in java.ast at line 20 public void setArg(Expr node, int i) { List<Expr> list = getArgList(); list.setChild(node, i); } // Declared in java.ast at line 24 public List<Expr> getArgs() { return getArgList(); } // Declared in java.ast at line 27 public List<Expr> getArgsNoTransform() { return getArgListNoTransform(); } // Declared in java.ast at line 31 @SuppressWarnings({"unchecked", "cast"}) public List<Expr> getArgList() { return (List<Expr>)getChild(1); } // Declared in java.ast at line 35 @SuppressWarnings({"unchecked", "cast"}) public List<Expr> getArgListNoTransform() { return (List<Expr>)getChildNoTransform(1); } // Declared in java.ast at line 2 // Declared in java.ast line 34 public void setTypeDeclOpt(Opt<TypeDecl> opt) { setChild(opt, 2); } // Declared in java.ast at line 6 public boolean hasTypeDecl() { return getTypeDeclOpt().getNumChild() != 0; } // Declared in java.ast at line 10 @SuppressWarnings({"unchecked", "cast"}) public TypeDecl getTypeDecl() { return (TypeDecl)getTypeDeclOpt().getChild(0); } // Declared in java.ast at line 14 public void setTypeDecl(TypeDecl node) { getTypeDeclOpt().setChild(node, 0); } // Declared in java.ast at line 17 @SuppressWarnings({"unchecked", "cast"}) public Opt<TypeDecl> getTypeDeclOpt() { return (Opt<TypeDecl>)getChild(2); } // Declared in java.ast at line 21 @SuppressWarnings({"unchecked", "cast"}) public Opt<TypeDecl> getTypeDeclOptNoTransform() { return (Opt<TypeDecl>)getChildNoTransform(2); } protected java.util.Map isDAafterInstance_Variable_values; // Declared in DefiniteAssignment.jrag at line 422 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafterInstance(Variable v) { Object _parameters = v;if(isDAafterInstance_Variable_values == null) isDAafterInstance_Variable_values = new java.util.HashMap(4); if(isDAafterInstance_Variable_values.containsKey(_parameters)) return ((Boolean)isDAafterInstance_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean isDAafterInstance_Variable_value = isDAafterInstance_compute(v); if(isFinal && num == boundariesCrossed) isDAafterInstance_Variable_values.put(_parameters, Boolean.valueOf(isDAafterInstance_Variable_value)); return isDAafterInstance_Variable_value; } private boolean isDAafterInstance_compute(Variable v) { if(getNumArg() == 0) return isDAbefore(v); return getArg(getNumArg()-1).isDAafter(v); } // Declared in DefiniteAssignment.jrag at line 427 @SuppressWarnings({"unchecked", "cast"}) public boolean isDAafter(Variable v) { boolean isDAafter_Variable_value = isDAafter_compute(v); return isDAafter_Variable_value; } private boolean isDAafter_compute(Variable v) { return isDAafterInstance(v); } protected java.util.Map computeDAbefore_int_Variable_values; // Declared in DefiniteAssignment.jrag at line 429 @SuppressWarnings({"unchecked", "cast"}) public boolean computeDAbefore(int i, Variable v) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(new Integer(i)); _parameters.add(v);if(computeDAbefore_int_Variable_values == null) computeDAbefore_int_Variable_values = new java.util.HashMap(4); if(computeDAbefore_int_Variable_values.containsKey(_parameters)) return ((Boolean)computeDAbefore_int_Variable_values.get(_parameters)).booleanValue(); int num = boundariesCrossed; boolean isFinal = this.is$Final(); boolean computeDAbefore_int_Variable_value = computeDAbefore_compute(i, v); if(isFinal && num == boundariesCrossed) computeDAbefore_int_Variable_values.put(_parameters, Boolean.valueOf(computeDAbefore_int_Variable_value)); return computeDAbefore_int_Variable_value; } private boolean computeDAbefore_compute(int i, Variable v) { return i == 0 ? isDAbefore(v) : getArg(i-1).isDAafter(v); } // Declared in DefiniteAssignment.jrag at line 854 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafterInstance(Variable v) { boolean isDUafterInstance_Variable_value = isDUafterInstance_compute(v); return isDUafterInstance_Variable_value; } private boolean isDUafterInstance_compute(Variable v) { if(getNumArg() == 0) return isDUbefore(v); return getArg(getNumArg()-1).isDUafter(v); } // Declared in DefiniteAssignment.jrag at line 859 @SuppressWarnings({"unchecked", "cast"}) public boolean isDUafter(Variable v) { boolean isDUafter_Variable_value = isDUafter_compute(v); return isDUafter_Variable_value; } private boolean isDUafter_compute(Variable v) { return isDUafterInstance(v); } protected java.util.Map computeDUbefore_int_Variable_values; // Declared in DefiniteAssignment.jrag at line 861 @SuppressWarnings({"unchecked", "cast"}) public boolean computeDUbefore(int i, Variable v) { java.util.List _parameters = new java.util.ArrayList(2); _parameters.add(new Integer(i));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -