Added dependency class resolver -> function resolver.

This commit is contained in:
Evgeny Gerashchenko
2013-05-17 19:14:36 +04:00
parent 86d60aea9f
commit 6f7d42185f
4 changed files with 81 additions and 73 deletions
@@ -30,11 +30,11 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
import org.jetbrains.annotations.NotNull;
@@ -57,11 +57,11 @@ public class InjectorForJavaDescriptorResolver {
private JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver;
@@ -84,11 +84,11 @@ public class InjectorForJavaDescriptorResolver {
this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
this.javaClassObjectResolver = new JavaClassObjectResolver();
this.javaSupertypeResolver = new JavaSupertypeResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaFunctionResolver = new JavaFunctionResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaInnerClassResolver = new JavaInnerClassResolver();
this.javaPropertyResolver = new JavaPropertyResolver();
@@ -114,6 +114,7 @@ public class InjectorForJavaDescriptorResolver {
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
javaClassResolver.setClassObjectResolver(javaClassObjectResolver);
javaClassResolver.setFunctionResolver(javaFunctionResolver);
javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
javaClassResolver.setPsiClassFinder(psiClassFinder);
javaClassResolver.setSemanticServices(javaSemanticServices);
@@ -136,24 +137,24 @@ public class InjectorForJavaDescriptorResolver {
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
javaFunctionResolver.setParameterResolver(javaValueParameterResolver);
javaFunctionResolver.setSignatureResolver(javaSignatureResolver);
javaFunctionResolver.setTrace(bindingTrace);
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaInnerClassResolver.setClassResolver(javaClassResolver);
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
@@ -30,11 +30,11 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
import org.jetbrains.annotations.NotNull;
@@ -57,11 +57,11 @@ public class InjectorForJavaSemanticServices {
private JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver;
@@ -82,11 +82,11 @@ public class InjectorForJavaSemanticServices {
this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
this.javaClassObjectResolver = new JavaClassObjectResolver();
this.javaSupertypeResolver = new JavaSupertypeResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaFunctionResolver = new JavaFunctionResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaInnerClassResolver = new JavaInnerClassResolver();
this.javaPropertyResolver = new JavaPropertyResolver();
@@ -114,6 +114,7 @@ public class InjectorForJavaSemanticServices {
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
javaClassResolver.setClassObjectResolver(javaClassObjectResolver);
javaClassResolver.setFunctionResolver(javaFunctionResolver);
javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
javaClassResolver.setPsiClassFinder(psiClassFinder);
javaClassResolver.setSemanticServices(javaSemanticServices);
@@ -136,24 +137,24 @@ public class InjectorForJavaSemanticServices {
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
javaFunctionResolver.setParameterResolver(javaValueParameterResolver);
javaFunctionResolver.setSignatureResolver(javaSignatureResolver);
javaFunctionResolver.setTrace(bindingTrace);
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaInnerClassResolver.setClassResolver(javaClassResolver);
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
@@ -54,11 +54,11 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaCompileTimeConstResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaInnerClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
import org.jetbrains.annotations.NotNull;
@@ -105,11 +105,11 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private JavaCompileTimeConstResolver javaCompileTimeConstResolver;
private JavaClassObjectResolver javaClassObjectResolver;
private JavaSupertypeResolver javaSupertypeResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaFunctionResolver javaFunctionResolver;
private JavaValueParameterResolver javaValueParameterResolver;
private JavaSignatureResolver javaSignatureResolver;
private JavaNamespaceResolver javaNamespaceResolver;
private JavaConstructorResolver javaConstructorResolver;
private JavaInnerClassResolver javaInnerClassResolver;
private JavaPropertyResolver javaPropertyResolver;
@@ -157,11 +157,11 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.javaCompileTimeConstResolver = new JavaCompileTimeConstResolver();
this.javaClassObjectResolver = new JavaClassObjectResolver();
this.javaSupertypeResolver = new JavaSupertypeResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaFunctionResolver = new JavaFunctionResolver();
this.javaValueParameterResolver = new JavaValueParameterResolver();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaNamespaceResolver = new JavaNamespaceResolver();
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaInnerClassResolver = new JavaInnerClassResolver();
this.javaPropertyResolver = new JavaPropertyResolver();
@@ -287,6 +287,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
javaClassResolver.setClassObjectResolver(javaClassObjectResolver);
javaClassResolver.setFunctionResolver(javaFunctionResolver);
javaClassResolver.setNamespaceResolver(javaNamespaceResolver);
javaClassResolver.setPsiClassFinder(psiClassFinder);
javaClassResolver.setSemanticServices(javaSemanticServices);
@@ -309,24 +310,24 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaSupertypeResolver.setTrace(bindingTrace);
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
javaFunctionResolver.setParameterResolver(javaValueParameterResolver);
javaFunctionResolver.setSignatureResolver(javaSignatureResolver);
javaFunctionResolver.setTrace(bindingTrace);
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
javaSignatureResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setJavaSemanticServices(javaSemanticServices);
javaNamespaceResolver.setPsiClassFinder(psiClassFinder);
javaNamespaceResolver.setTrace(bindingTrace);
javaConstructorResolver.setTrace(bindingTrace);
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
javaInnerClassResolver.setClassResolver(javaClassResolver);
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
@@ -33,7 +33,6 @@ import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import org.jetbrains.jet.lang.resolve.java.kt.JetClassAnnotation;
import org.jetbrains.jet.lang.resolve.java.provider.ClassPsiDeclarationProvider;
import org.jetbrains.jet.lang.resolve.java.provider.MembersCache;
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassNonStaticMembersScope;
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiClassWrapper;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -80,6 +79,7 @@ public final class JavaClassResolver {
private JavaNamespaceResolver namespaceResolver;
private JavaClassObjectResolver classObjectResolver;
private JavaSupertypeResolver supertypesResolver;
private JavaFunctionResolver functionResolver;
public JavaClassResolver() {
}
@@ -124,6 +124,11 @@ public final class JavaClassResolver {
this.supertypesResolver = supertypesResolver;
}
@Inject
public void setFunctionResolver(JavaFunctionResolver functionResolver) {
this.functionResolver = functionResolver;
}
@Nullable
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
PostponedTasks postponedTasks = new PostponedTasks();