Phase phase = Global.instance.currentPhase;
    public final Type info() {        //if (isModule()) moduleClass().initialize();        Phase phase = Global.instance.currentPhase;        if ((flags & INITIALIZED) == 0) {            Type info = rawFirstInfo();            assert info != null : this;            if ((flags & LOCKED) != 0) {                setInfo(Type.ErrorType);                flags |= INITIALIZED;                throw new CyclicReference(this, info);            }            flags |= LOCKED;            //System.out.println("completing " + this);//DEBUG            info.complete(this);            flags = flags & ~LOCKED;            if (info instanceof SourceCompleter && (flags & SNDTIME) == 0) {                 flags |= SNDTIME;                Type tp = info();                flags &= ~SNDTIME;            } else {                assert !(rawInfoAt(phase) instanceof Type.LazyType) : this;                //flags |= INITIALIZED;            }            //System.out.println("done: " + this);//DEBUG        }        return rawInfoAt(phase);    }