Delete JavaInnerClassResolver
Move its two methods to the place where they are used
This commit is contained in:
committed by
Pavel V. Talanov
parent
86013aacde
commit
e1a10eb419
@@ -32,7 +32,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserial
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||
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;
|
||||
import javax.annotation.PreDestroy;
|
||||
@@ -56,7 +55,6 @@ public class InjectorForJavaDescriptorResolver {
|
||||
private final JavaNamespaceResolver javaNamespaceResolver;
|
||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
||||
private final JavaConstructorResolver javaConstructorResolver;
|
||||
private final JavaInnerClassResolver javaInnerClassResolver;
|
||||
private final JavaPropertyResolver javaPropertyResolver;
|
||||
|
||||
public InjectorForJavaDescriptorResolver(
|
||||
@@ -79,13 +77,11 @@ public class InjectorForJavaDescriptorResolver {
|
||||
this.javaNamespaceResolver = new JavaNamespaceResolver();
|
||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
||||
this.javaInnerClassResolver = new JavaInnerClassResolver();
|
||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
||||
|
||||
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
|
||||
this.javaDescriptorResolver.setConstructorResolver(javaConstructorResolver);
|
||||
this.javaDescriptorResolver.setFunctionResolver(javaFunctionResolver);
|
||||
this.javaDescriptorResolver.setInnerClassResolver(javaInnerClassResolver);
|
||||
this.javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
|
||||
this.javaDescriptorResolver.setPropertiesResolver(javaPropertyResolver);
|
||||
|
||||
@@ -139,8 +135,6 @@ public class InjectorForJavaDescriptorResolver {
|
||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
||||
|
||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaPropertyResolver.setTrace(bindingTrace);
|
||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
@@ -59,7 +59,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserial
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||
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;
|
||||
import javax.annotation.PreDestroy;
|
||||
@@ -110,7 +109,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
private final JavaNamespaceResolver javaNamespaceResolver;
|
||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
||||
private final JavaConstructorResolver javaConstructorResolver;
|
||||
private final JavaInnerClassResolver javaInnerClassResolver;
|
||||
private final JavaPropertyResolver javaPropertyResolver;
|
||||
|
||||
public InjectorForTopDownAnalyzerForJvm(
|
||||
@@ -162,7 +160,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
this.javaNamespaceResolver = new JavaNamespaceResolver();
|
||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
||||
this.javaInnerClassResolver = new JavaInnerClassResolver();
|
||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
@@ -203,7 +200,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
javaDescriptorResolver.setClassResolver(javaClassResolver);
|
||||
javaDescriptorResolver.setConstructorResolver(javaConstructorResolver);
|
||||
javaDescriptorResolver.setFunctionResolver(javaFunctionResolver);
|
||||
javaDescriptorResolver.setInnerClassResolver(javaInnerClassResolver);
|
||||
javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
|
||||
javaDescriptorResolver.setPropertiesResolver(javaPropertyResolver);
|
||||
|
||||
@@ -326,8 +322,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaInnerClassResolver.setClassResolver(javaClassResolver);
|
||||
|
||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaPropertyResolver.setTrace(bindingTrace);
|
||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
-16
@@ -147,7 +147,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
private JavaConstructorResolver constructorResolver;
|
||||
private JavaFunctionResolver functionResolver;
|
||||
private JavaNamespaceResolver namespaceResolver;
|
||||
private JavaInnerClassResolver innerClassResolver;
|
||||
|
||||
@Inject
|
||||
public void setFunctionResolver(JavaFunctionResolver functionResolver) {
|
||||
@@ -174,11 +173,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
this.constructorResolver = constructorResolver;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setInnerClassResolver(JavaInnerClassResolver innerClassResolver) {
|
||||
this.innerClassResolver = innerClassResolver;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName, @NotNull DescriptorSearchRule searchRule) {
|
||||
return classResolver.resolveClass(qualifiedName, searchRule);
|
||||
@@ -214,11 +208,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
return propertiesResolver.resolveFieldGroup(members, ownerDescriptor);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ClassDescriptor resolveClass(@NotNull FqName name, @NotNull DescriptorSearchRule searchRule, @NotNull PostponedTasks tasks) {
|
||||
return classResolver.resolveClass(name, searchRule, tasks);
|
||||
}
|
||||
|
||||
public static class ValueParameterDescriptors {
|
||||
private final JetType receiverType;
|
||||
private final List<ValueParameterDescriptor> descriptors;
|
||||
@@ -252,9 +241,4 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
public Set<FunctionDescriptor> resolveFunctionGroupForPackage(@NotNull NamedMembers members, @NotNull NamespaceDescriptor owner) {
|
||||
return functionResolver.resolveFunctionGroupForPackage(members, owner);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<ClassDescriptor> resolveInnerClasses(@NotNull PsiClass psiClass) {
|
||||
return innerClassResolver.resolveInnerClasses(psiClass);
|
||||
}
|
||||
}
|
||||
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.lang.resolve.java.resolver;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public final class JavaInnerClassResolver {
|
||||
|
||||
private JavaClassResolver classResolver;
|
||||
|
||||
public JavaInnerClassResolver() {
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setClassResolver(JavaClassResolver classResolver) {
|
||||
this.classResolver = classResolver;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public List<ClassDescriptor> resolveInnerClasses(@NotNull PsiClass psiClass) {
|
||||
PsiClass[] innerPsiClasses = psiClass.getInnerClasses();
|
||||
List<ClassDescriptor> result = new ArrayList<ClassDescriptor>(innerPsiClasses.length);
|
||||
for (PsiClass innerPsiClass : innerPsiClasses) {
|
||||
ClassDescriptor classDescriptor = resolveInnerClass(innerPsiClass);
|
||||
result.add(classDescriptor);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) {
|
||||
String name = innerPsiClass.getQualifiedName();
|
||||
assert name != null : "Inner class has no qualified name";
|
||||
ClassDescriptor classDescriptor = classResolver.resolveClass(new FqName(name), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
||||
assert classDescriptor != null : "Couldn't resolve class " + name;
|
||||
return classDescriptor;
|
||||
}
|
||||
}
|
||||
+21
-1
@@ -21,11 +21,15 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.PsiClassFinder;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope {
|
||||
|
||||
@@ -85,6 +89,22 @@ public final class JavaClassNonStaticMembersScope extends JavaClassMembersScope
|
||||
if (staticMembersOfPsiClass) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
return javaDescriptorResolver.resolveInnerClasses(psiClass);
|
||||
|
||||
PsiClass[] innerPsiClasses = psiClass.getInnerClasses();
|
||||
List<ClassDescriptor> result = new ArrayList<ClassDescriptor>(innerPsiClasses.length);
|
||||
for (PsiClass innerPsiClass : innerPsiClasses) {
|
||||
result.add(resolveInnerClass(innerPsiClass));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) {
|
||||
String name = innerPsiClass.getQualifiedName();
|
||||
assert name != null : "Inner class has no qualified name: " + innerPsiClass;
|
||||
ClassDescriptor classDescriptor = javaDescriptorResolver.resolveClass(new FqName(name),
|
||||
DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
|
||||
assert classDescriptor != null : "Couldn't resolve inner class " + name;
|
||||
return classDescriptor;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user