⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classinstanceexpr.java

📁 JDK1.4编译器后端
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    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 + -