JavaPackageFragmentProvider is only accessible through JavaDescriptorResolver
We need this to guarantee that only one provider is used: either lazy or eager.
This commit is contained in:
@@ -105,7 +105,7 @@ public class ReplInterpreter {
|
|||||||
injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
||||||
module.addFragmentProvider(injector.getTopDownAnalyzer().getPackageFragmentProvider());
|
module.addFragmentProvider(injector.getTopDownAnalyzer().getPackageFragmentProvider());
|
||||||
module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
|
module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
|
||||||
module.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||||
|
|
||||||
List<URL> classpath = Lists.newArrayList();
|
List<URL> classpath = Lists.newArrayList();
|
||||||
|
|
||||||
|
|||||||
+7
-11
@@ -248,13 +248,13 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
||||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||||
|
|
||||||
this.javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
||||||
this.javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||||
this.javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
||||||
this.javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
this.javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
||||||
this.javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
||||||
this.javaPackageFragmentProvider.setModule(moduleDescriptor);
|
javaPackageFragmentProvider.setModule(moduleDescriptor);
|
||||||
|
|
||||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||||
declarationResolver.setContext(topDownAnalysisContext);
|
declarationResolver.setContext(topDownAnalysisContext);
|
||||||
@@ -442,8 +442,4 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
return this.javaDescriptorResolver;
|
return this.javaDescriptorResolver;
|
||||||
}
|
}
|
||||||
|
|
||||||
public JavaPackageFragmentProviderImpl getJavaPackageFragmentProvider() {
|
|
||||||
return this.javaPackageFragmentProvider;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -196,7 +196,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
|||||||
|
|
||||||
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
||||||
try {
|
try {
|
||||||
module.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||||
injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters);
|
injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters);
|
||||||
BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ?
|
BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ?
|
||||||
new CachedBodiesResolveContext(injector.getTopDownAnalysisContext()) :
|
new CachedBodiesResolveContext(injector.getTopDownAnalysisContext()) :
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
|||||||
trace,
|
trace,
|
||||||
module);
|
module);
|
||||||
|
|
||||||
module.addFragmentProvider(injectorForAnalyzer.getJavaPackageFragmentProvider());
|
module.addFragmentProvider(injectorForAnalyzer.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||||
|
|
||||||
injectorForAnalyzer.getTopDownAnalyzer().analyzeFiles(environment.getSourceFiles(), Collections.<AnalyzerScriptParameter>emptyList());
|
injectorForAnalyzer.getTopDownAnalyzer().analyzeFiles(environment.getSourceFiles(), Collections.<AnalyzerScriptParameter>emptyList());
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class LazyResolveTestUtil {
|
|||||||
|
|
||||||
InjectorForTopDownAnalyzerForJvm injector =
|
InjectorForTopDownAnalyzerForJvm injector =
|
||||||
new InjectorForTopDownAnalyzerForJvm(environment.getProject(), params, sharedTrace, sharedModule);
|
new InjectorForTopDownAnalyzerForJvm(environment.getProject(), params, sharedTrace, sharedModule);
|
||||||
sharedModule.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
sharedModule.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||||
return injector;
|
return injector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -132,7 +132,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.addPublicField(JavaPackageFragmentProviderImpl.class);
|
generator.addField(JavaPackageFragmentProviderImpl.class);
|
||||||
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)"));
|
||||||
|
|||||||
Reference in New Issue
Block a user