JavaDescriptorResolver always uses lazy mode
This commit is contained in:
committed by
Alexander Udalov
parent
76c722b81c
commit
9f918d48b5
+7
-115
@@ -27,22 +27,11 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProviderImpl;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -61,22 +50,11 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||||
private final JavaPackageFragmentProviderImpl javaPackageFragmentProvider;
|
private final JavaPackageFragmentProvider javaPackageFragmentProvider;
|
||||||
private final VirtualFileFinder virtualFileFinder;
|
private final VirtualFileFinder virtualFileFinder;
|
||||||
private final ModuleDescriptorImpl module;
|
private final ModuleDescriptorImpl module;
|
||||||
private final JavaAnnotationResolver javaAnnotationResolver;
|
|
||||||
private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
|
|
||||||
private final JavaClassResolver javaClassResolver;
|
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||||
private final JavaFunctionResolver javaFunctionResolver;
|
|
||||||
private final JavaTypeParameterResolver javaTypeParameterResolver;
|
|
||||||
private final JavaTypeTransformer javaTypeTransformer;
|
|
||||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
|
||||||
private final JavaMemberResolver javaMemberResolver;
|
|
||||||
private final JavaConstructorResolver javaConstructorResolver;
|
|
||||||
private final JavaPropertyResolver javaPropertyResolver;
|
|
||||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
|
||||||
|
|
||||||
public InjectorForJavaDescriptorResolver(
|
public InjectorForJavaDescriptorResolver(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -92,76 +70,25 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.javaPackageFragmentProvider = new JavaPackageFragmentProviderImpl();
|
|
||||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||||
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
||||||
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
this.javaDescriptorResolver = new JavaDescriptorResolver(storageManager, getJavaClassFinder(), psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache, deserializedDescriptorResolver, virtualFileFinder, getModule());
|
||||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
this.javaPackageFragmentProvider = javaDescriptorResolver.getPackageFragmentProvider();
|
||||||
this.javaClassResolver = new JavaClassResolver();
|
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
|
||||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
|
||||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
|
||||||
this.javaMemberResolver = new JavaMemberResolver();
|
|
||||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
|
||||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
|
||||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
|
||||||
|
|
||||||
this.javaClassFinder.setProject(project);
|
this.javaClassFinder.setProject(project);
|
||||||
|
|
||||||
traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
|
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
||||||
|
|
||||||
traceBasedErrorReporter.setTrace(bindingTrace);
|
traceBasedErrorReporter.setTrace(bindingTrace);
|
||||||
|
|
||||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||||
|
|
||||||
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
|
|
||||||
this.javaDescriptorResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
this.javaDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
this.javaDescriptorResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
|
||||||
this.javaDescriptorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
this.javaDescriptorResolver.setJavaClassFinder(javaClassFinder);
|
|
||||||
this.javaDescriptorResolver.setJavaResolverCache(traceBasedJavaResolverCache);
|
|
||||||
this.javaDescriptorResolver.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
this.javaDescriptorResolver.setModule(module);
|
|
||||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
|
||||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
|
||||||
this.javaDescriptorResolver.setStorageManager(storageManager);
|
|
||||||
|
|
||||||
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
|
||||||
javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
|
||||||
javaPackageFragmentProvider.setModule(module);
|
|
||||||
|
|
||||||
javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
|
|
||||||
javaAnnotationResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
|
||||||
|
|
||||||
javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaClassResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
|
||||||
javaClassResolver.setJavaClassFinder(javaClassFinder);
|
|
||||||
javaClassResolver.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
javaClassResolver.setMemberResolver(javaMemberResolver);
|
|
||||||
javaClassResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
|
||||||
javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
|
|
||||||
javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
|
||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
@@ -172,41 +99,6 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||||
|
|
||||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaFunctionResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
|
||||||
javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
|
||||||
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
|
|
||||||
|
|
||||||
javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaTypeTransformer.setClassResolver(javaClassResolver);
|
|
||||||
|
|
||||||
javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaMemberResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaMemberResolver.setConstructorResolver(javaConstructorResolver);
|
|
||||||
javaMemberResolver.setFunctionResolver(javaFunctionResolver);
|
|
||||||
javaMemberResolver.setPropertyResolver(javaPropertyResolver);
|
|
||||||
|
|
||||||
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
|
||||||
|
|
||||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaPropertyResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaClassFinder.initialize();
|
javaClassFinder.initialize();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-119
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProviderImpl;
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||||
@@ -57,19 +57,8 @@ import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
|
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import javax.annotation.PreDestroy;
|
import javax.annotation.PreDestroy;
|
||||||
|
|
||||||
@@ -98,7 +87,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||||
private final JavaPackageFragmentProviderImpl javaPackageFragmentProvider;
|
private final JavaPackageFragmentProvider javaPackageFragmentProvider;
|
||||||
private final VirtualFileFinder virtualFileFinder;
|
private final VirtualFileFinder virtualFileFinder;
|
||||||
private final DeclarationResolver declarationResolver;
|
private final DeclarationResolver declarationResolver;
|
||||||
private final AnnotationResolver annotationResolver;
|
private final AnnotationResolver annotationResolver;
|
||||||
@@ -118,19 +107,8 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||||
private final ScriptBodyResolver scriptBodyResolver;
|
private final ScriptBodyResolver scriptBodyResolver;
|
||||||
private final JavaClassResolver javaClassResolver;
|
|
||||||
private final JavaAnnotationResolver javaAnnotationResolver;
|
|
||||||
private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
|
|
||||||
private final JavaTypeTransformer javaTypeTransformer;
|
|
||||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||||
private final JavaFunctionResolver javaFunctionResolver;
|
|
||||||
private final JavaTypeParameterResolver javaTypeParameterResolver;
|
|
||||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
|
||||||
private final JavaMemberResolver javaMemberResolver;
|
|
||||||
private final JavaConstructorResolver javaConstructorResolver;
|
|
||||||
private final JavaPropertyResolver javaPropertyResolver;
|
|
||||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
|
||||||
|
|
||||||
public InjectorForTopDownAnalyzerForJvm(
|
public InjectorForTopDownAnalyzerForJvm(
|
||||||
@NotNull Project project,
|
@NotNull Project project,
|
||||||
@@ -150,17 +128,18 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
this.moduleDescriptor = moduleDescriptor;
|
this.moduleDescriptor = moduleDescriptor;
|
||||||
this.javaDescriptorResolver = new JavaDescriptorResolver();
|
|
||||||
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
|
||||||
this.javaClassFinder = new JavaClassFinderImpl();
|
this.javaClassFinder = new JavaClassFinderImpl();
|
||||||
|
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
|
||||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.javaPackageFragmentProvider = new JavaPackageFragmentProviderImpl();
|
|
||||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||||
|
this.javaDescriptorResolver = new JavaDescriptorResolver(storageManager, javaClassFinder, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache, deserializedDescriptorResolver, virtualFileFinder, getModuleDescriptor());
|
||||||
|
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
||||||
|
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||||
|
this.javaPackageFragmentProvider = javaDescriptorResolver.getPackageFragmentProvider();
|
||||||
this.declarationResolver = new DeclarationResolver();
|
this.declarationResolver = new DeclarationResolver();
|
||||||
this.annotationResolver = new AnnotationResolver();
|
this.annotationResolver = new AnnotationResolver();
|
||||||
this.callResolver = new CallResolver();
|
this.callResolver = new CallResolver();
|
||||||
@@ -179,19 +158,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||||
this.javaClassResolver = new JavaClassResolver();
|
|
||||||
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
|
||||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
|
||||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
|
||||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
|
||||||
this.javaMemberResolver = new JavaMemberResolver();
|
|
||||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
|
||||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
|
||||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
|
||||||
|
|
||||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||||
@@ -229,39 +196,18 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.descriptorResolver.setStorageManager(storageManager);
|
this.descriptorResolver.setStorageManager(storageManager);
|
||||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
this.descriptorResolver.setTypeResolver(typeResolver);
|
||||||
|
|
||||||
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
|
|
||||||
this.javaDescriptorResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
this.javaDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
this.javaDescriptorResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
|
||||||
this.javaDescriptorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
this.javaDescriptorResolver.setJavaClassFinder(javaClassFinder);
|
|
||||||
this.javaDescriptorResolver.setJavaResolverCache(traceBasedJavaResolverCache);
|
|
||||||
this.javaDescriptorResolver.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
this.javaDescriptorResolver.setModule(moduleDescriptor);
|
|
||||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
|
||||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
|
||||||
this.javaDescriptorResolver.setStorageManager(storageManager);
|
|
||||||
|
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
|
|
||||||
traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
|
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
||||||
|
|
||||||
traceBasedErrorReporter.setTrace(bindingTrace);
|
traceBasedErrorReporter.setTrace(bindingTrace);
|
||||||
|
|
||||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||||
|
|
||||||
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
|
||||||
javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
|
||||||
javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
|
||||||
javaPackageFragmentProvider.setModule(moduleDescriptor);
|
|
||||||
|
|
||||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||||
declarationResolver.setContext(topDownAnalysisContext);
|
declarationResolver.setContext(topDownAnalysisContext);
|
||||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||||
@@ -332,27 +278,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||||
scriptBodyResolver.setTrace(bindingTrace);
|
scriptBodyResolver.setTrace(bindingTrace);
|
||||||
|
|
||||||
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaClassResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
|
||||||
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
|
||||||
javaClassResolver.setJavaClassFinder(javaClassFinder);
|
|
||||||
javaClassResolver.setKotlinClassFinder(virtualFileFinder);
|
|
||||||
javaClassResolver.setMemberResolver(javaMemberResolver);
|
|
||||||
javaClassResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
|
||||||
javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
|
|
||||||
javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
|
||||||
|
|
||||||
javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
|
|
||||||
javaAnnotationResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
|
||||||
|
|
||||||
javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaTypeTransformer.setClassResolver(javaClassResolver);
|
|
||||||
|
|
||||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
@@ -363,39 +288,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||||
|
|
||||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaFunctionResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
|
||||||
javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
|
||||||
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
|
|
||||||
|
|
||||||
javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaMemberResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaMemberResolver.setConstructorResolver(javaConstructorResolver);
|
|
||||||
javaMemberResolver.setFunctionResolver(javaFunctionResolver);
|
|
||||||
javaMemberResolver.setPropertyResolver(javaPropertyResolver);
|
|
||||||
|
|
||||||
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
|
||||||
|
|
||||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
|
||||||
javaPropertyResolver.setCache(traceBasedJavaResolverCache);
|
|
||||||
javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
|
|
||||||
javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
|
||||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
|
||||||
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
|
||||||
|
|
||||||
javaClassFinder.initialize();
|
javaClassFinder.initialize();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+49
-126
@@ -38,86 +38,55 @@ import javax.inject.Inject;
|
|||||||
import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KOTLIN_SOURCES;
|
import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KOTLIN_SOURCES;
|
||||||
|
|
||||||
public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver {
|
public class JavaDescriptorResolver implements DependencyClassByQualifiedNameResolver {
|
||||||
private final boolean LAZY;
|
|
||||||
|
|
||||||
{
|
|
||||||
LAZY = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static final Name JAVA_ROOT = Name.special("<java_root>");
|
public static final Name JAVA_ROOT = Name.special("<java_root>");
|
||||||
|
|
||||||
private StorageManager storageManager;
|
private final ModuleDescriptor module;
|
||||||
private JavaClassResolver classResolver;
|
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||||
private JavaPackageFragmentProvider packageFragmentProvider;
|
|
||||||
private JavaClassFinder javaClassFinder;
|
|
||||||
private ExternalAnnotationResolver externalAnnotationResolver;
|
|
||||||
private LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
|
||||||
private ExternalSignatureResolver externalSignatureResolver;
|
|
||||||
private ErrorReporter errorReporter;
|
|
||||||
private MethodSignatureChecker signatureChecker;
|
|
||||||
private JavaResolverCache javaResolverCache;
|
|
||||||
private DeserializedDescriptorResolver deserializedDescriptorResolver;
|
|
||||||
private KotlinClassFinder kotlinClassFinder;
|
|
||||||
private ModuleDescriptor module;
|
|
||||||
|
|
||||||
@Inject
|
public JavaDescriptorResolver(
|
||||||
public void setStorageManager(StorageManager storageManager) {
|
StorageManager storageManager,
|
||||||
this.storageManager = storageManager;
|
JavaClassFinder javaClassFinder,
|
||||||
}
|
ExternalAnnotationResolver externalAnnotationResolver,
|
||||||
|
ExternalSignatureResolver externalSignatureResolver,
|
||||||
@Inject
|
ErrorReporter errorReporter,
|
||||||
public void setClassResolver(JavaClassResolver classResolver) {
|
MethodSignatureChecker signatureChecker,
|
||||||
this.classResolver = classResolver;
|
final JavaResolverCache javaResolverCache,
|
||||||
}
|
DeserializedDescriptorResolver deserializedDescriptorResolver,
|
||||||
|
KotlinClassFinder kotlinClassFinder,
|
||||||
@Inject
|
ModuleDescriptor module
|
||||||
public void setPackageFragmentProvider(JavaPackageFragmentProvider packageFragmentProvider) {
|
) {
|
||||||
this.packageFragmentProvider = packageFragmentProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setJavaClassFinder(JavaClassFinder javaClassFinder) {
|
|
||||||
this.javaClassFinder = javaClassFinder;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setExternalAnnotationResolver(ExternalAnnotationResolver externalAnnotationResolver) {
|
|
||||||
this.externalAnnotationResolver = externalAnnotationResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setExternalSignatureResolver(ExternalSignatureResolver externalSignatureResolver) {
|
|
||||||
this.externalSignatureResolver = externalSignatureResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setErrorReporter(ErrorReporter errorReporter) {
|
|
||||||
this.errorReporter = errorReporter;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setSignatureChecker(MethodSignatureChecker signatureChecker) {
|
|
||||||
this.signatureChecker = signatureChecker;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setJavaResolverCache(JavaResolverCache javaResolverCache) {
|
|
||||||
this.javaResolverCache = javaResolverCache;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setDeserializedDescriptorResolver(DeserializedDescriptorResolver deserializedDescriptorResolver) {
|
|
||||||
this.deserializedDescriptorResolver = deserializedDescriptorResolver;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setKotlinClassFinder(KotlinClassFinder kotlinClassFinder) {
|
|
||||||
this.kotlinClassFinder = kotlinClassFinder;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Inject
|
|
||||||
public void setModule(@NotNull ModuleDescriptor module) {
|
|
||||||
this.module = module;
|
this.module = module;
|
||||||
|
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(
|
||||||
|
new GlobalJavaResolverContext(
|
||||||
|
storageManager,
|
||||||
|
javaClassFinder,
|
||||||
|
kotlinClassFinder,
|
||||||
|
deserializedDescriptorResolver,
|
||||||
|
new LazyJavaClassResolver() {
|
||||||
|
@Override
|
||||||
|
public ClassDescriptor resolveClass(JavaClass aClass) {
|
||||||
|
FqName fqName = aClass.getFqName();
|
||||||
|
if (fqName != null) {
|
||||||
|
return resolveClassByFqName(fqName);
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ClassDescriptor resolveClassByFqName(FqName fqName) {
|
||||||
|
return javaResolverCache.getClassResolvedFromSource(fqName);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
externalAnnotationResolver,
|
||||||
|
externalSignatureResolver,
|
||||||
|
errorReporter,
|
||||||
|
signatureChecker,
|
||||||
|
javaResolverCache,
|
||||||
|
this
|
||||||
|
),
|
||||||
|
module
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -125,49 +94,14 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
return module;
|
return module;
|
||||||
}
|
}
|
||||||
|
|
||||||
private LazyJavaPackageFragmentProvider getLazyJavaPackageFragmentProvider() {
|
@NotNull
|
||||||
if (lazyJavaPackageFragmentProvider == null) {
|
public LazyJavaPackageFragmentProvider getPackageFragmentProvider() {
|
||||||
lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(
|
|
||||||
new GlobalJavaResolverContext(
|
|
||||||
storageManager,
|
|
||||||
javaClassFinder,
|
|
||||||
kotlinClassFinder,
|
|
||||||
deserializedDescriptorResolver,
|
|
||||||
new LazyJavaClassResolver() {
|
|
||||||
@Override
|
|
||||||
public ClassDescriptor resolveClass(JavaClass aClass) {
|
|
||||||
FqName fqName = aClass.getFqName();
|
|
||||||
if (fqName != null) {
|
|
||||||
return resolveClassByFqName(fqName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ClassDescriptor resolveClassByFqName(FqName fqName) {
|
|
||||||
return javaResolverCache.getClassResolvedFromSource(fqName);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
externalAnnotationResolver,
|
|
||||||
externalSignatureResolver,
|
|
||||||
errorReporter,
|
|
||||||
signatureChecker,
|
|
||||||
javaResolverCache,
|
|
||||||
this
|
|
||||||
),
|
|
||||||
module
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return lazyJavaPackageFragmentProvider;
|
return lazyJavaPackageFragmentProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
|
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
|
||||||
if (LAZY) {
|
return getPackageFragmentProvider().getClass(qualifiedName);
|
||||||
return getLazyJavaPackageFragmentProvider().getClass(qualifiedName);
|
|
||||||
}
|
|
||||||
return classResolver.resolveClass(qualifiedName, searchRule);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -175,19 +109,8 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
return resolveClass(qualifiedName, IGNORE_KOTLIN_SOURCES);
|
return resolveClass(qualifiedName, IGNORE_KOTLIN_SOURCES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
public JavaPackageFragmentProvider getPackageFragmentProvider() {
|
|
||||||
if (LAZY) {
|
|
||||||
return getLazyJavaPackageFragmentProvider();
|
|
||||||
}
|
|
||||||
return packageFragmentProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public PackageFragmentDescriptor getPackageFragment(@NotNull FqName fqName) {
|
public PackageFragmentDescriptor getPackageFragment(@NotNull FqName fqName) {
|
||||||
if (LAZY) {
|
return getPackageFragmentProvider().getPackageFragment(fqName);
|
||||||
return getLazyJavaPackageFragmentProvider().getPackageFragment(fqName);
|
|
||||||
}
|
|
||||||
return packageFragmentProvider.getPackageFragment(fqName);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ public class GenerateInjectors {
|
|||||||
generator.addField(PsiBasedMethodSignatureChecker.class);
|
generator.addField(PsiBasedMethodSignatureChecker.class);
|
||||||
generator.addField(PsiBasedExternalAnnotationResolver.class);
|
generator.addField(PsiBasedExternalAnnotationResolver.class);
|
||||||
generator.addField(MutablePackageFragmentProvider.class);
|
generator.addField(MutablePackageFragmentProvider.class);
|
||||||
generator.addField(JavaPackageFragmentProviderImpl.class);
|
generator.addField(false, JavaPackageFragmentProvider.class, null, new GivenExpression("javaDescriptorResolver.getPackageFragmentProvider()"));
|
||||||
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
|
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
|
||||||
new GivenExpression(
|
new GivenExpression(
|
||||||
VirtualFileFinder.class.getName() + ".SERVICE.getInstance(project)"));
|
VirtualFileFinder.class.getName() + ".SERVICE.getInstance(project)"));
|
||||||
@@ -161,7 +161,7 @@ public class GenerateInjectors {
|
|||||||
generator.addField(PsiBasedMethodSignatureChecker.class);
|
generator.addField(PsiBasedMethodSignatureChecker.class);
|
||||||
generator.addField(PsiBasedExternalAnnotationResolver.class);
|
generator.addField(PsiBasedExternalAnnotationResolver.class);
|
||||||
generator.addPublicField(JavaDescriptorResolver.class);
|
generator.addPublicField(JavaDescriptorResolver.class);
|
||||||
generator.addField(JavaPackageFragmentProviderImpl.class);
|
generator.addField(false, JavaPackageFragmentProvider.class, null, new GivenExpression("javaDescriptorResolver.getPackageFragmentProvider()"));
|
||||||
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
|
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
|
||||||
new GivenExpression(VirtualFileFinder.class.getName() + ".SERVICE.getInstance(project)"));
|
new GivenExpression(VirtualFileFinder.class.getName() + ".SERVICE.getInstance(project)"));
|
||||||
generator.addField(true, ModuleDescriptorImpl.class, "module",
|
generator.addField(true, ModuleDescriptorImpl.class, "module",
|
||||||
|
|||||||
Reference in New Issue
Block a user