return msilType(t); case ARRAY(_): log("primitiveType: cannot convert " + mtype); return null; default: return mtype;
return msilType(t).asPrimitive(); case NULL: case ARRAY(_): throw Debug.abort("primitiveType: cannot convert " + mtype); default: return mtype;
    private MSILType primitiveType(scalac.symtab.Type type) {	MSILType mtype = msilType(type);	switch (mtype) {	case REF(Type t):	    if (t == tc.SCALA_BYTE)    return MSILType.I1;	    if (t == tc.SCALA_SHORT)   return MSILType.I2;	    if (t == tc.SCALA_INT)     return MSILType.I4;	    if (t == tc.SCALA_LONG)    return MSILType.I8;	    if (t == tc.SCALA_FLOAT)   return MSILType.R4;	    if (t == tc.SCALA_DOUBLE)  return MSILType.R8;	    if (t == tc.SCALA_CHAR)    return MSILType.CHAR;	    if (t == tc.SCALA_UNIT)    return MSILType.VOID;	    if (t == tc.SCALA_BOOLEAN) return MSILType.BOOL;	    return msilType(t);	case ARRAY(_): log("primitiveType: cannot convert " + mtype); return null;	default: return mtype;	}    }