tree.setType(sym.owner().typeConstructor());
tree.setType(sym.owner().nextType());
    public Tree New(int pos, Tree constr) {        Tree[] constrs = { constr };	Template templ = Template(pos, Symbol.NONE, constrs, Tree.EMPTY_ARRAY);	New tree = make.New(pos, templ);        tree.setType(constr.type);        // after AddConstructor use type of symbol        switch (constr) {        case Apply(TypeApply(Tree fun, Tree[] targs), _):            Symbol sym = fun.symbol();            if (sym == null || sym.isConstructor()) break;            Type[] args = Tree.typeOf(targs);            tree.setType(Type.appliedType(sym.owner().typeConstructor(),args));            break;        case Apply(Tree fun, _):            Symbol sym = fun.symbol();            if (sym == null || sym.isConstructor()) break;            tree.setType(sym.owner().typeConstructor());            break;        }        return tree;    }