Introduced lazy type and some related optimizations.

This commit is contained in:
Evgeny Gerashchenko
2014-01-15 20:14:04 +04:00
parent 0155bf0189
commit 292f0e4a38
8 changed files with 36 additions and 11 deletions
@@ -205,7 +205,7 @@ public class TypeDeserializer {
return debugName;
}
private class DeserializedType extends AbstractJetType {
private class DeserializedType extends AbstractJetType implements LazyType {
private final ProtoBuf.Type typeProto;
private final NotNullLazyValue<TypeConstructor> constructor;
private final List<TypeProjection> arguments;
@@ -23,14 +23,14 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.storage.LockBasedStorageManager;
import org.jetbrains.jet.storage.NotNullLazyValue;
import org.jetbrains.jet.util.ReenteringLazyValueComputationException;
import org.jetbrains.jet.util.Box;
import org.jetbrains.jet.util.ReenteringLazyValueComputationException;
import java.util.List;
import static org.jetbrains.jet.lang.resolve.BindingContext.DEFERRED_TYPE;
public class DeferredType implements JetType {
public class DeferredType implements LazyType {
public static DeferredType create(BindingTrace trace, NotNullLazyValue<JetType> lazyValue) {
DeferredType deferredType = new DeferredType(lazyValue);