Add VarianceChecker to TopDownAnalyzer
This commit is contained in:
@@ -80,6 +80,7 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
@@ -156,6 +157,7 @@ public class InjectorForReplWithJava {
|
|||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -240,6 +242,7 @@ public class InjectorForReplWithJava {
|
|||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -257,6 +260,7 @@ public class InjectorForReplWithJava {
|
|||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
@@ -375,6 +379,7 @@ public class InjectorForReplWithJava {
|
|||||||
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
||||||
typeHierarchyResolver.setImportsResolver(importsResolver);
|
typeHierarchyResolver.setImportsResolver(importsResolver);
|
||||||
|
|||||||
@@ -80,6 +80,7 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
@@ -156,6 +157,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
@@ -239,6 +241,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -256,6 +259,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
javaClassFinder.setComponentPostConstruct(javaLazyAnalyzerPostConstruct);
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
@@ -374,6 +378,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
|||||||
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
||||||
typeHierarchyResolver.setImportsResolver(importsResolver);
|
typeHierarchyResolver.setImportsResolver(importsResolver);
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
|||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -115,6 +116,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
|
|
||||||
public InjectorForLazyBodyResolve(
|
public InjectorForLazyBodyResolve(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -169,6 +171,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(moduleDescriptor);
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(moduleDescriptor);
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
@@ -178,6 +181,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
@@ -273,6 +277,7 @@ public class InjectorForLazyBodyResolve {
|
|||||||
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
||||||
typeHierarchyResolver.setImportsResolver(importsResolver);
|
typeHierarchyResolver.setImportsResolver(importsResolver);
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
|||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -121,6 +122,7 @@ public class InjectorForLazyTopDownAnalyzerBasic {
|
|||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
|
|
||||||
public InjectorForLazyTopDownAnalyzerBasic(
|
public InjectorForLazyTopDownAnalyzerBasic(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -178,6 +180,7 @@ public class InjectorForLazyTopDownAnalyzerBasic {
|
|||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(module);
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -195,6 +198,7 @@ public class InjectorForLazyTopDownAnalyzerBasic {
|
|||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setStorageManager(storageManager);
|
annotationResolver.setStorageManager(storageManager);
|
||||||
@@ -292,6 +296,7 @@ public class InjectorForLazyTopDownAnalyzerBasic {
|
|||||||
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
||||||
typeHierarchyResolver.setImportsResolver(importsResolver);
|
typeHierarchyResolver.setImportsResolver(importsResolver);
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -111,6 +112,7 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
private final OverrideResolver overrideResolver;
|
private final OverrideResolver overrideResolver;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
|
|
||||||
public InjectorForTopDownAnalyzerBasic(
|
public InjectorForTopDownAnalyzerBasic(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -164,6 +166,7 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.overrideResolver = new OverrideResolver();
|
this.overrideResolver = new OverrideResolver();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||||
@@ -172,6 +175,7 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
this.topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
this.topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||||
bodyResolver.setCallResolver(callResolver);
|
bodyResolver.setCallResolver(callResolver);
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
|
|||||||
import org.jetbrains.jet.lang.resolve.lazy.LazyImportScope;
|
import org.jetbrains.jet.lang.resolve.lazy.LazyImportScope;
|
||||||
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor;
|
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -59,6 +60,10 @@ public class LazyTopDownAnalyzer {
|
|||||||
@NotNull
|
@NotNull
|
||||||
private OverloadResolver overloadResolver = null;
|
private OverloadResolver overloadResolver = null;
|
||||||
|
|
||||||
|
@SuppressWarnings("ConstantConditions")
|
||||||
|
@NotNull
|
||||||
|
private VarianceChecker varianceChecker = null;
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
@NotNull
|
@NotNull
|
||||||
private ModuleDescriptor moduleDescriptor = null;
|
private ModuleDescriptor moduleDescriptor = null;
|
||||||
@@ -95,6 +100,11 @@ public class LazyTopDownAnalyzer {
|
|||||||
this.overrideResolver = overrideResolver;
|
this.overrideResolver = overrideResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setVarianceChecker(@NotNull VarianceChecker varianceChecker) {
|
||||||
|
this.varianceChecker = varianceChecker;
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setOverloadResolver(@NotNull OverloadResolver overloadResolver) {
|
public void setOverloadResolver(@NotNull OverloadResolver overloadResolver) {
|
||||||
this.overloadResolver = overloadResolver;
|
this.overloadResolver = overloadResolver;
|
||||||
@@ -309,6 +319,8 @@ public class LazyTopDownAnalyzer {
|
|||||||
|
|
||||||
overrideResolver.check(c);
|
overrideResolver.check(c);
|
||||||
|
|
||||||
|
varianceChecker.check(c);
|
||||||
|
|
||||||
resolveImportsInAllFiles(c, resolveSession);
|
resolveImportsInAllFiles(c, resolveSession);
|
||||||
|
|
||||||
declarationResolver.resolveAnnotationsOnFiles(c, resolveSession.getScopeProvider());
|
declarationResolver.resolveAnnotationsOnFiles(c, resolveSession.getScopeProvider());
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lang.psi.JetFile;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -47,6 +48,9 @@ public class TopDownAnalyzer {
|
|||||||
@SuppressWarnings("NullableProblems") @NotNull
|
@SuppressWarnings("NullableProblems") @NotNull
|
||||||
private OverrideResolver overrideResolver;
|
private OverrideResolver overrideResolver;
|
||||||
|
|
||||||
|
@SuppressWarnings("NullableProblems") @NotNull
|
||||||
|
private VarianceChecker varianceChecker;
|
||||||
|
|
||||||
@SuppressWarnings("NullableProblems") @NotNull
|
@SuppressWarnings("NullableProblems") @NotNull
|
||||||
private OverloadResolver overloadResolver;
|
private OverloadResolver overloadResolver;
|
||||||
|
|
||||||
@@ -77,6 +81,11 @@ public class TopDownAnalyzer {
|
|||||||
this.overrideResolver = overrideResolver;
|
this.overrideResolver = overrideResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setVarianceChecker(@NotNull VarianceChecker varianceChecker) {
|
||||||
|
this.varianceChecker = varianceChecker;
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setOverloadResolver(@NotNull OverloadResolver overloadResolver) {
|
public void setOverloadResolver(@NotNull OverloadResolver overloadResolver) {
|
||||||
this.overloadResolver = overloadResolver;
|
this.overloadResolver = overloadResolver;
|
||||||
@@ -109,6 +118,7 @@ public class TopDownAnalyzer {
|
|||||||
typeHierarchyResolver.process(c, outerScope, owner, declarations);
|
typeHierarchyResolver.process(c, outerScope, owner, declarations);
|
||||||
declarationResolver.process(c);
|
declarationResolver.process(c);
|
||||||
overrideResolver.process(c);
|
overrideResolver.process(c);
|
||||||
|
varianceChecker.process(c);
|
||||||
lockScopes(c);
|
lockScopes(c);
|
||||||
|
|
||||||
overloadResolver.process(c);
|
overloadResolver.process(c);
|
||||||
|
|||||||
+2
@@ -39,6 +39,7 @@ import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor.Kind.FAKE_OVE
|
|||||||
import org.jetbrains.jet.lang.resolve.DelegationResolver.generateDelegatedMembers
|
import org.jetbrains.jet.lang.resolve.DelegationResolver.generateDelegatedMembers
|
||||||
import org.jetbrains.jet.storage.NotNullLazyValue
|
import org.jetbrains.jet.storage.NotNullLazyValue
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter
|
import org.jetbrains.jet.lang.resolve.scopes.DescriptorKindFilter
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker
|
||||||
|
|
||||||
public open class LazyClassMemberScope(resolveSession: ResolveSession,
|
public open class LazyClassMemberScope(resolveSession: ResolveSession,
|
||||||
declarationProvider: ClassMemberDeclarationProvider,
|
declarationProvider: ClassMemberDeclarationProvider,
|
||||||
@@ -184,6 +185,7 @@ public open class LazyClassMemberScope(resolveSession: ResolveSession,
|
|||||||
if (descriptor.getKind() != FAKE_OVERRIDE && descriptor.getKind() != DELEGATION) {
|
if (descriptor.getKind() != FAKE_OVERRIDE && descriptor.getKind() != DELEGATION) {
|
||||||
OverridingUtil.resolveUnknownVisibilityForMember(descriptor, OverrideResolver.createCannotInferVisibilityReporter(trace))
|
OverridingUtil.resolveUnknownVisibilityForMember(descriptor, OverrideResolver.createCannotInferVisibilityReporter(trace))
|
||||||
}
|
}
|
||||||
|
// VarianceChecker.recordPrivateToThisIfNeeded(trace, descriptor); todo make visibility lazy and enable
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.varianceChecker.VarianceChecker;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -121,6 +122,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
private final TopDownAnalyzer topDownAnalyzer;
|
private final TopDownAnalyzer topDownAnalyzer;
|
||||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||||
|
private final VarianceChecker varianceChecker;
|
||||||
|
|
||||||
public InjectorForTopDownAnalyzerForJs(
|
public InjectorForTopDownAnalyzerForJs(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -178,6 +180,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||||
|
this.varianceChecker = new VarianceChecker(bindingTrace);
|
||||||
|
|
||||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -195,6 +198,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
this.lazyTopDownAnalyzer.setTopDownAnalyzer(topDownAnalyzer);
|
||||||
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
this.lazyTopDownAnalyzer.setTrace(bindingTrace);
|
||||||
|
this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
annotationResolver.setCallResolver(callResolver);
|
annotationResolver.setCallResolver(callResolver);
|
||||||
annotationResolver.setStorageManager(storageManager);
|
annotationResolver.setStorageManager(storageManager);
|
||||||
@@ -292,6 +296,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
topDownAnalyzer.setOverrideResolver(overrideResolver);
|
||||||
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
topDownAnalyzer.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||||
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
|
||||||
|
topDownAnalyzer.setVarianceChecker(varianceChecker);
|
||||||
|
|
||||||
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
|
||||||
typeHierarchyResolver.setImportsResolver(importsResolver);
|
typeHierarchyResolver.setImportsResolver(importsResolver);
|
||||||
|
|||||||
Reference in New Issue
Block a user