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);
|
||||
module.addFragmentProvider(injector.getTopDownAnalyzer().getPackageFragmentProvider());
|
||||
module.addFragmentProvider(KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
|
||||
module.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
||||
module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||
|
||||
List<URL> classpath = Lists.newArrayList();
|
||||
|
||||
|
||||
+7
-11
@@ -248,13 +248,13 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
|
||||
this.javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
||||
this.javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
this.javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
||||
this.javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
this.javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
||||
this.javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
||||
this.javaPackageFragmentProvider.setModule(moduleDescriptor);
|
||||
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.setContext(topDownAnalysisContext);
|
||||
@@ -442,8 +442,4 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
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);
|
||||
try {
|
||||
module.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
||||
module.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||
injector.getTopDownAnalyzer().analyzeFiles(files, scriptParameters);
|
||||
BodiesResolveContext bodiesResolveContext = storeContextForBodiesResolve ?
|
||||
new CachedBodiesResolveContext(injector.getTopDownAnalysisContext()) :
|
||||
|
||||
@@ -148,7 +148,7 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
|
||||
trace,
|
||||
module);
|
||||
|
||||
module.addFragmentProvider(injectorForAnalyzer.getJavaPackageFragmentProvider());
|
||||
module.addFragmentProvider(injectorForAnalyzer.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||
|
||||
injectorForAnalyzer.getTopDownAnalyzer().analyzeFiles(environment.getSourceFiles(), Collections.<AnalyzerScriptParameter>emptyList());
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ public class LazyResolveTestUtil {
|
||||
|
||||
InjectorForTopDownAnalyzerForJvm injector =
|
||||
new InjectorForTopDownAnalyzerForJvm(environment.getProject(), params, sharedTrace, sharedModule);
|
||||
sharedModule.addFragmentProvider(injector.getJavaPackageFragmentProvider());
|
||||
sharedModule.addFragmentProvider(injector.getJavaDescriptorResolver().getPackageFragmentProvider());
|
||||
return injector;
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ public class GenerateInjectors {
|
||||
generator.addField(PsiBasedMethodSignatureChecker.class);
|
||||
generator.addField(PsiBasedExternalAnnotationResolver.class);
|
||||
generator.addField(MutablePackageFragmentProvider.class);
|
||||
generator.addPublicField(JavaPackageFragmentProviderImpl.class);
|
||||
generator.addField(JavaPackageFragmentProviderImpl.class);
|
||||
generator.addField(false, VirtualFileFinder.class, "virtualFileFinder",
|
||||
new GivenExpression(
|
||||
VirtualFileFinder.class.getName() + ".SERVICE.getInstance(project)"));
|
||||
|
||||
Reference in New Issue
Block a user