Delete PsiDeclarationProviderFactory

This commit is contained in:
Alexander Udalov
2013-07-24 18:56:57 +04:00
committed by Pavel V. Talanov
parent 2d7a5ebf36
commit dbf324667f
8 changed files with 11 additions and 96 deletions
@@ -28,7 +28,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSignatureResolver;
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.java.resolver.DeserializedDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.AnnotationDescriptorDeserializer;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver;
@@ -54,7 +53,6 @@ public class InjectorForJavaDescriptorResolver {
private final JavaTypeTransformer javaTypeTransformer;
private final JavaSignatureResolver javaSignatureResolver;
private final JavaSemanticServices javaSemanticServices;
private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
private final JavaNamespaceResolver javaNamespaceResolver;
@@ -79,7 +77,6 @@ public class InjectorForJavaDescriptorResolver {
this.javaTypeTransformer = new JavaTypeTransformer();
this.javaSignatureResolver = new JavaSignatureResolver();
this.javaSemanticServices = new JavaSemanticServices();
this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
this.javaNamespaceResolver = new JavaNamespaceResolver();
@@ -127,7 +124,6 @@ public class InjectorForJavaDescriptorResolver {
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
javaSemanticServices.setPsiClassFinder(psiClassFinder);
javaSemanticServices.setPsiDeclarationProviderFactory(psiDeclarationProviderFactory);
javaSemanticServices.setTypeTransformer(javaTypeTransformer);
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
@@ -48,7 +48,6 @@ import org.jetbrains.jet.lang.resolve.OverrideResolver;
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
@@ -101,7 +100,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
private final TypeHierarchyResolver typeHierarchyResolver;
private final ScriptBodyResolver scriptBodyResolver;
private final JavaSemanticServices javaSemanticServices;
private final PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private final JavaTypeTransformer javaTypeTransformer;
private final JavaClassResolver javaClassResolver;
private final JavaAnnotationResolver javaAnnotationResolver;
@@ -155,7 +153,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
this.typeHierarchyResolver = new TypeHierarchyResolver();
this.scriptBodyResolver = new ScriptBodyResolver();
this.javaSemanticServices = new JavaSemanticServices();
this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(psiClassFinder);
this.javaTypeTransformer = new JavaTypeTransformer();
this.javaClassResolver = new JavaClassResolver();
this.javaAnnotationResolver = new JavaAnnotationResolver();
@@ -286,7 +283,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
javaSemanticServices.setDescriptorResolver(javaDescriptorResolver);
javaSemanticServices.setPsiClassFinder(psiClassFinder);
javaSemanticServices.setPsiDeclarationProviderFactory(psiDeclarationProviderFactory);
javaSemanticServices.setTypeTransformer(javaTypeTransformer);
javaTypeTransformer.setResolver(javaDescriptorResolver);
@@ -17,13 +17,6 @@
package org.jetbrains.jet.lang.resolve.java;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.name.FqName;
import javax.inject.Inject;
@@ -34,8 +27,6 @@ public class JavaSemanticServices {
private JavaDescriptorResolver descriptorResolver;
@NotNull
private PsiClassFinder psiClassFinder;
@NotNull
private PsiDeclarationProviderFactory psiDeclarationProviderFactory;
@Inject
public void setTypeTransformer(@NotNull JavaTypeTransformer typeTransformer) {
@@ -52,11 +43,6 @@ public class JavaSemanticServices {
this.psiClassFinder = psiClassFinder;
}
@Inject
public void setPsiDeclarationProviderFactory(@NotNull PsiDeclarationProviderFactory psiDeclarationProviderFactory) {
this.psiDeclarationProviderFactory = psiDeclarationProviderFactory;
}
@NotNull
public JavaTypeTransformer getTypeTransformer() {
return typeTransformer;
@@ -71,9 +57,4 @@ public class JavaSemanticServices {
public PsiClassFinder getPsiClassFinder() {
return psiClassFinder;
}
@NotNull
public PsiDeclarationProviderFactory getPsiDeclarationProviderFactory() {
return psiDeclarationProviderFactory;
}
}
@@ -21,7 +21,6 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinder;
public class ClassPsiDeclarationProviderImpl extends PsiDeclarationProviderBase implements ClassPsiDeclarationProvider {
@NotNull
protected final PsiClassFinder psiClassFinder;
@@ -30,7 +29,7 @@ public class ClassPsiDeclarationProviderImpl extends PsiDeclarationProviderBase
private final boolean staticMembers;
protected ClassPsiDeclarationProviderImpl(@NotNull PsiClass psiClass, boolean staticMembers, @NotNull PsiClassFinder psiClassFinder) {
public ClassPsiDeclarationProviderImpl(@NotNull PsiClass psiClass, boolean staticMembers, @NotNull PsiClassFinder psiClassFinder) {
this.staticMembers = staticMembers;
this.psiClass = psiClass;
this.psiClassFinder = psiClassFinder;
@@ -21,17 +21,13 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinder;
public final class PackagePsiDeclarationProviderImpl extends PsiDeclarationProviderBase implements PackagePsiDeclarationProvider {
@NotNull
private final PsiPackage psiPackage;
@NotNull
private final PsiClassFinder psiClassFinder;
/*package private*/ PackagePsiDeclarationProviderImpl(
@NotNull PsiPackage psiPackage,
@NotNull PsiClassFinder psiClassFinder
) {
public PackagePsiDeclarationProviderImpl(@NotNull PsiPackage psiPackage, @NotNull PsiClassFinder psiClassFinder) {
this.psiPackage = psiPackage;
this.psiClassFinder = psiClassFinder;
}
@@ -1,50 +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.provider;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiPackage;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinder;
public final class PsiDeclarationProviderFactory {
@NotNull private final PsiClassFinder psiClassFinder;
public PsiDeclarationProviderFactory(@NotNull PsiClassFinder psiClassFinder) {
this.psiClassFinder = psiClassFinder;
}
@NotNull
public ClassPsiDeclarationProvider createSyntheticClassObjectClassData(@NotNull PsiClass psiClass) {
return createDeclarationProviderForClassStaticMembers(psiClass);
}
@NotNull
public ClassPsiDeclarationProvider createBinaryClassData(@NotNull PsiClass psiClass) {
return new ClassPsiDeclarationProviderImpl(psiClass, false, psiClassFinder);
}
@NotNull
public PackagePsiDeclarationProvider createDeclarationProviderForNamespaceWithoutMembers(@NotNull PsiPackage psiPackage) {
return new PackagePsiDeclarationProviderImpl(psiPackage, psiClassFinder);
}
@NotNull
public ClassPsiDeclarationProvider createDeclarationProviderForClassStaticMembers(@NotNull PsiClass psiClass) {
return new ClassPsiDeclarationProviderImpl(psiClass, true, psiClassFinder);
}
}
@@ -35,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.descriptor.ClassDescriptorFromJvmBytecode;
import org.jetbrains.jet.lang.resolve.java.provider.ClassPsiDeclarationProvider;
import org.jetbrains.jet.lang.resolve.java.provider.ClassPsiDeclarationProviderImpl;
import org.jetbrains.jet.lang.resolve.java.provider.MembersCache;
import org.jetbrains.jet.lang.resolve.java.sam.SingleAbstractMethodUtils;
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassNonStaticMembersScope;
@@ -275,7 +276,7 @@ public final class JavaClassResolver {
@NotNull ClassOrNamespaceDescriptor containingDeclaration
) {
ClassKind kind = getClassKind(psiClass);
ClassPsiDeclarationProvider classData = semanticServices.getPsiDeclarationProviderFactory().createBinaryClassData(psiClass);
ClassPsiDeclarationProvider classData = new ClassPsiDeclarationProviderImpl(psiClass, false, psiClassFinder);
ClassDescriptorFromJvmBytecode classDescriptor = new ClassDescriptorFromJvmBytecode(
containingDeclaration, kind, isInnerClass(psiClass));
@@ -501,15 +502,11 @@ public final class JavaClassResolver {
}
@NotNull
private ClassDescriptorFromJvmBytecode createSyntheticClassObject(
@NotNull ClassDescriptor containing,
@NotNull PsiClass psiClass
) {
private ClassDescriptorFromJvmBytecode createSyntheticClassObject(@NotNull ClassDescriptor containing, @NotNull PsiClass psiClass) {
ClassDescriptorFromJvmBytecode classObjectDescriptor =
new ClassDescriptorFromJvmBytecode(containing, ClassKind.CLASS_OBJECT, false);
ClassPsiDeclarationProvider data =
semanticServices.getPsiDeclarationProviderFactory().createSyntheticClassObjectClassData(psiClass);
setUpClassObjectDescriptor(classObjectDescriptor, containing, data, getClassObjectName(containing.getName().asString()));
ClassPsiDeclarationProvider provider = new ClassPsiDeclarationProviderImpl(psiClass, true, psiClassFinder);
setUpClassObjectDescriptor(classObjectDescriptor, containing, provider, getClassObjectName(containing.getName().asString()));
return classObjectDescriptor;
}
@@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.java.*;
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaNamespaceDescriptor;
import org.jetbrains.jet.lang.resolve.java.provider.MembersCache;
import org.jetbrains.jet.lang.resolve.java.provider.*;
import org.jetbrains.jet.lang.resolve.java.scope.JavaBaseScope;
import org.jetbrains.jet.lang.resolve.java.scope.JavaClassStaticMembersScope;
import org.jetbrains.jet.lang.resolve.java.scope.JavaPackageScopeWithoutMembers;
@@ -187,8 +187,8 @@ public final class JavaNamespaceResolver {
}
// Otherwise (if psiClass is null or doesn't have a supported Kotlin annotation), it's a Java class and the package is empty
return new JavaPackageScopeWithoutMembers(namespaceDescriptor, javaSemanticServices.getPsiDeclarationProviderFactory()
.createDeclarationProviderForNamespaceWithoutMembers(psiPackage), fqName, javaSemanticServices);
PackagePsiDeclarationProvider provider = new PackagePsiDeclarationProviderImpl(psiPackage, psiClassFinder);
return new JavaPackageScopeWithoutMembers(namespaceDescriptor, provider, fqName, javaSemanticServices);
}
PsiClass psiClass = psiClassFinder.findPsiClass(fqName, PsiClassFinder.RuntimeClassesHandleMode.IGNORE);
@@ -204,7 +204,7 @@ public final class JavaNamespaceResolver {
trace.record(JavaBindingContext.JAVA_NAMESPACE_KIND, namespaceDescriptor, JavaNamespaceKind.CLASS_STATICS);
return new JavaClassStaticMembersScope(
namespaceDescriptor,
javaSemanticServices.getPsiDeclarationProviderFactory().createDeclarationProviderForClassStaticMembers(psiClass),
new ClassPsiDeclarationProviderImpl(psiClass, true, psiClassFinder),
fqName, javaSemanticServices);
}