constrType.cloneType(classConstr, constr);
constrType = constrType.cloneType(classConstr, constr);
    Symbol getConstructor(Symbol classConstr) {   	assert classConstr.isConstructor() :   	    "Class constructor expected: " + Debug.show(classConstr);        Symbol owner = classConstr.constructorClass();        Symbol[] tparamSyms = classConstr.typeParams();        Symbol[] paramSyms = classConstr.valueParams();	Symbol constr = (Symbol) constructors.get(classConstr);	if (constr == null) {	    assert !owner.isInterface() : Debug.show(owner) + " is interface";            int flags =                classConstr.flags & (Modifiers.PRIVATE | Modifiers.PROTECTED);	    constr =                new TermSymbol(classConstr.pos, classConstr.name, owner, flags);	    Type constrType = Type.MethodType		(paramSyms, forINT ? owner.type()		 : global.definitions.UNIT_TYPE());            if (tparamSyms.length != 0)                constrType = Type.PolyType(tparamSyms, constrType);            if (!classConstr.isExternal())                constrType.cloneType(classConstr, constr);	    constr.setInfo(constrType);	    constructors.put(classConstr, constr);	    constructors.put(constr, constr);            owner.members().enterOrOverload(constr);	}	return constr;    }