final Type oT = getType(owner);
    public TypeBuilder createType(Symbol sym) {	TypeBuilder type = (TypeBuilder)symbols2types.get(sym);	assert type == null : "Type " + type +	    " already defined for symbol: " + dumpSym(sym);	//log("TypeCreator.getType: creating type for " + dumpSym(sym));	final Symbol owner = sym.owner();	final String typeName =	    (owner.isClass() ? sym.nameString() : sym.fullNameString()) +	    (sym.isModuleClass() ? "$" : "");	final ModuleBuilder module = gen.currModule;	//log("createType: " + dumpSym(sym) + "\n");	switch (sym.info()) {	case CompoundType(scalac.symtab.Type[] baseTypes, _):	    Type superType = null;	    Type[] interfaces = null;	    int inum = baseTypes.length;	    if (sym.isInterface()) {		interfaces = new Type[inum];		for (int i = 0; i < inum; i++)		    interfaces[i] = getType(baseTypes[i].symbol());	    } else {		superType = getType(baseTypes[0].symbol());		assert inum > 0;		interfaces = new Type[inum - 1];		for (int i = 1; i < inum; i++)		    interfaces[i - 1] = getType(baseTypes[i].symbol());	    }	    // i.e. top level class	    if (owner.isRoot() || owner.isPackage()) {		type = module.DefineType		    (typeName, translateTypeAttributes(sym.flags, false),		     superType, interfaces);	    } else {			final TypeBuilder outerType = (TypeBuilder) getType(owner);		type = outerType.DefineNestedType		    (typeName, translateTypeAttributes(sym.flags, true),		     superType, interfaces);	    }	    break;	default:	    global.fail("Symbol does not have a CompoundType: " +			Debug.show(sym));	}	typeBuilders.add(type);	map(sym, type);	//log("createType: "  + dumpSym(sym) + " => " + type.getSignature());	//log("createType: symbol type symbol = " +	//getTypeFromType(sym.type()).getSignature());	return type;    }