diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java index 5d28a340ffa..0ad64750421 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -154,6 +154,7 @@ public class InjectorForJavaDescriptorResolver { javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache); javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver); javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder); + javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver); javaPackageFragmentProvider.setKotlinClassFinder(virtualFileKotlinClassFinder); javaPackageFragmentProvider.setMemberResolver(javaMemberResolver); javaPackageFragmentProvider.setModule(module); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java index ee2b4f29690..c52758bad11 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -254,6 +254,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly this.javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache); this.javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver); this.javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder); + this.javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver); this.javaPackageFragmentProvider.setKotlinClassFinder(virtualFileKotlinClassFinder); this.javaPackageFragmentProvider.setMemberResolver(javaMemberResolver); this.javaPackageFragmentProvider.setModule(moduleDescriptor); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptor.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptor.java index bb034261a8c..d3cdb75f006 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptor.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptor.java @@ -16,7 +16,11 @@ package org.jetbrains.jet.lang.resolve.java.descriptor; +import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; +import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; public interface JavaPackageFragmentDescriptor extends PackageFragmentDescriptor { + @NotNull + JavaDescriptorResolver getJavaDescriptorResolver(); } diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptorImpl.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptorImpl.java index 9585c0c35a9..8b50e725778 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptorImpl.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/descriptor/JavaPackageFragmentDescriptorImpl.java @@ -24,6 +24,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.descriptors.impl.DeclarationDescriptorImpl; +import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProvider; import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageFragmentScope; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -58,6 +59,13 @@ public class JavaPackageFragmentDescriptorImpl extends DeclarationDescriptorImpl this.memberScope = scopeFactory.fun(this); } + + @NotNull + @Override + public JavaDescriptorResolver getJavaDescriptorResolver() { + return provider.getJavaDescriptorResolver(); + } + @NotNull @Override public ModuleDescriptor getContainingDeclaration() { diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java index 1b65c9d34dd..0a1ea8e30c3 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPackageFragmentProvider.java @@ -25,6 +25,7 @@ import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor; import org.jetbrains.jet.lang.descriptors.PackageFragmentProvider; import org.jetbrains.jet.lang.resolve.java.JavaClassFinder; +import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.PackageClassUtils; import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor; import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptorImpl; @@ -48,6 +49,7 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide @NotNull private final Map packageFragments = Maps.newHashMap(); + private JavaDescriptorResolver javaDescriptorResolver; private JavaClassFinder javaClassFinder; private JavaResolverCache cache; private JavaMemberResolver memberResolver; @@ -57,6 +59,11 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide private ModuleDescriptor module; + @Inject + public void setJavaDescriptorResolver(@NotNull JavaDescriptorResolver javaDescriptorResolver) { + this.javaDescriptorResolver = javaDescriptorResolver; + } + @Inject public void setKotlinClassFinder(KotlinClassFinder kotlinClassFinder) { this.kotlinClassFinder = kotlinClassFinder; @@ -87,6 +94,11 @@ public final class JavaPackageFragmentProvider implements PackageFragmentProvide this.module = module; } + @NotNull + public JavaDescriptorResolver getJavaDescriptorResolver() { + return javaDescriptorResolver; + } + @NotNull @Override public List getPackageFragments(@NotNull FqName fqName) {