From dbf324667f3b08d02e3781e5fb736acd26dea7ea Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 24 Jul 2013 18:56:57 +0400 Subject: [PATCH] Delete PsiDeclarationProviderFactory --- .../di/InjectorForJavaDescriptorResolver.java | 4 -- .../di/InjectorForTopDownAnalyzerForJvm.java | 4 -- .../resolve/java/JavaSemanticServices.java | 19 ------- .../ClassPsiDeclarationProviderImpl.java | 3 +- .../PackagePsiDeclarationProviderImpl.java | 6 +-- .../PsiDeclarationProviderFactory.java | 50 ------------------- .../java/resolver/JavaClassResolver.java | 13 ++--- .../java/resolver/JavaNamespaceResolver.java | 8 +-- 8 files changed, 11 insertions(+), 96 deletions(-) delete mode 100644 compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PsiDeclarationProviderFactory.java 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 300ae3494e6..f8b6e386479 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForJavaDescriptorResolver.java @@ -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); 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 f5e869108e4..7e1a220c27e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/di/InjectorForTopDownAnalyzerForJvm.java @@ -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); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaSemanticServices.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaSemanticServices.java index 4381862110d..aac74265843 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaSemanticServices.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaSemanticServices.java @@ -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; - } } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/ClassPsiDeclarationProviderImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/ClassPsiDeclarationProviderImpl.java index cd43dbf9070..dd73c5a9c61 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/ClassPsiDeclarationProviderImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/ClassPsiDeclarationProviderImpl.java @@ -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; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PackagePsiDeclarationProviderImpl.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PackagePsiDeclarationProviderImpl.java index c95f8f56555..9c159cf9646 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PackagePsiDeclarationProviderImpl.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PackagePsiDeclarationProviderImpl.java @@ -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; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PsiDeclarationProviderFactory.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PsiDeclarationProviderFactory.java deleted file mode 100644 index c275cd9b867..00000000000 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/provider/PsiDeclarationProviderFactory.java +++ /dev/null @@ -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); - } -} diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java index 78170f41a93..0dc1f4ffc21 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaClassResolver.java @@ -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; } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java index 90e3ed8d6cc..a59a64160d8 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java @@ -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); }