private TypeMaker(Context context) {
        context.put(typeMakerKey, this);
        env = AptEnv.instance(context);

        voidType = new VoidTypeImpl(env);
        primTypes[BOOLEAN] = new PrimitiveTypeImpl(env, Kind.BOOLEAN);
        primTypes[BYTE]    = new PrimitiveTypeImpl(env, Kind.BYTE);
        primTypes[SHORT]   = new PrimitiveTypeImpl(env, Kind.SHORT);
        primTypes[INT]     = new PrimitiveTypeImpl(env, Kind.INT);
        primTypes[LONG]    = new PrimitiveTypeImpl(env, Kind.LONG);
        primTypes[CHAR]    = new PrimitiveTypeImpl(env, Kind.CHAR);
        primTypes[FLOAT]   = new PrimitiveTypeImpl(env, Kind.FLOAT);
        primTypes[DOUBLE]  = new PrimitiveTypeImpl(env, Kind.DOUBLE);
    }