From 20cd1930305981736b3f06e7c9af3f0558ac3a3b Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 28 Mar 2018 11:54:57 +0200 Subject: [PATCH] Delete remains of external annotations support from compiler --- .../kotlin/frontend/java/di/injection.kt | 1 - .../PsiBasedExternalAnnotationResolver.java | 42 ------------------- .../annotations/AnnotationSplitter.kt | 3 +- .../ExternalAnnotationResolver.java | 36 ---------------- .../load/java/lazy/LazyJavaAnnotations.kt | 3 -- .../kotlin/load/java/lazy/context.kt | 8 ++-- .../internal/components/RuntimeModuleData.kt | 7 +++- .../descriptors/annotations/Annotations.kt | 8 ---- .../jetbrains/kotlin/idea/util/TypeUtils.kt | 6 --- .../idea/properties/referenceProviders.kt | 2 +- 10 files changed, 12 insertions(+), 104 deletions(-) delete mode 100644 compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/PsiBasedExternalAnnotationResolver.java delete mode 100644 core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/components/ExternalAnnotationResolver.java diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt index 6b8c02bd8be..bc5fbe27510 100644 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/frontend/java/di/injection.kt @@ -68,7 +68,6 @@ private fun StorageComponentContainer.configureJavaTopDownAnalysis( useImpl() useImpl() useImpl() - useImpl() useInstance(InternalFlexibleTypeTransformer) useImpl() diff --git a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/PsiBasedExternalAnnotationResolver.java b/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/PsiBasedExternalAnnotationResolver.java deleted file mode 100644 index c618b2ab73a..00000000000 --- a/compiler/frontend.java/src/org/jetbrains/kotlin/load/java/components/PsiBasedExternalAnnotationResolver.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.load.java.components; - -import com.intellij.codeInsight.ExternalAnnotationsManager; -import com.intellij.psi.PsiAnnotation; -import com.intellij.psi.PsiModifierListOwner; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.load.java.structure.JavaAnnotation; -import org.jetbrains.kotlin.load.java.structure.JavaAnnotationOwner; -import org.jetbrains.kotlin.load.java.structure.impl.JavaAnnotationImpl; -import org.jetbrains.kotlin.load.java.structure.impl.JavaModifierListOwnerImpl; -import org.jetbrains.kotlin.name.FqName; - -public class PsiBasedExternalAnnotationResolver implements ExternalAnnotationResolver { - @Nullable - @Override - public JavaAnnotation findExternalAnnotation(@NotNull JavaAnnotationOwner owner, @NotNull FqName fqName) { - if (owner instanceof JavaModifierListOwnerImpl) { - PsiModifierListOwner psiOwner = ((JavaModifierListOwnerImpl) owner).getPsi(); - PsiAnnotation psiAnnotation = - ExternalAnnotationsManager.getInstance(psiOwner.getProject()).findExternalAnnotation(psiOwner, fqName.asString()); - return psiAnnotation == null ? null : new JavaAnnotationImpl(psiAnnotation); - } - return null; - } -} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationSplitter.kt b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationSplitter.kt index 66b83a0b967..6c02c91e3ee 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationSplitter.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/descriptors/annotations/AnnotationSplitter.kt @@ -17,11 +17,11 @@ package org.jetbrains.kotlin.descriptors.annotations import org.jetbrains.kotlin.descriptors.PropertyDescriptor -import org.jetbrains.kotlin.resolve.AnnotationChecker import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget.* import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtProperty +import org.jetbrains.kotlin.resolve.AnnotationChecker import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.storage.StorageManager import org.jetbrains.kotlin.storage.getValue @@ -135,7 +135,6 @@ class AnnotationSplitter( override fun findAnnotation(fqName: FqName) = annotations.findAnnotation(fqName) override fun getUseSiteTargetedAnnotations() = annotations.getUseSiteTargetedAnnotations() override fun getAllAnnotations() = annotations.getAllAnnotations() - override fun findExternalAnnotation(fqName: FqName) = annotations.findExternalAnnotation(fqName) override fun iterator() = annotations.iterator() override fun toString() = annotations.toString() } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/components/ExternalAnnotationResolver.java b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/components/ExternalAnnotationResolver.java deleted file mode 100644 index a1c2b55e910..00000000000 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/components/ExternalAnnotationResolver.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 2010-2015 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.kotlin.load.java.components; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.load.java.structure.JavaAnnotation; -import org.jetbrains.kotlin.load.java.structure.JavaAnnotationOwner; -import org.jetbrains.kotlin.name.FqName; - -public interface ExternalAnnotationResolver { - ExternalAnnotationResolver EMPTY = new ExternalAnnotationResolver() { - @Nullable - @Override - public JavaAnnotation findExternalAnnotation(@NotNull JavaAnnotationOwner owner, @NotNull FqName fqName) { - return null; - } - }; - - @Nullable - JavaAnnotation findExternalAnnotation(@NotNull JavaAnnotationOwner owner, @NotNull FqName fqName); -} diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/LazyJavaAnnotations.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/LazyJavaAnnotations.kt index 9de7308459c..f6ba101ffff 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/LazyJavaAnnotations.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/LazyJavaAnnotations.kt @@ -36,9 +36,6 @@ class LazyJavaAnnotations( annotationOwner.findAnnotation(fqName)?.let(annotationDescriptors) ?: JavaAnnotationMapper.findMappedJavaAnnotation(fqName, annotationOwner, c) - override fun findExternalAnnotation(fqName: FqName) = - c.components.externalAnnotationResolver.findExternalAnnotation(annotationOwner, fqName)?.let(annotationDescriptors) - override fun getUseSiteTargetedAnnotations() = emptyList() override fun getAllAnnotations() = this.map { AnnotationWithTarget(it, null) } diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt index 670a6020d34..43fe48a1d4b 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt @@ -24,7 +24,10 @@ import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.java.AnnotationTypeQualifierResolver import org.jetbrains.kotlin.load.java.JavaClassFinder import org.jetbrains.kotlin.load.java.JavaClassesTracker -import org.jetbrains.kotlin.load.java.components.* +import org.jetbrains.kotlin.load.java.components.JavaPropertyInitializerEvaluator +import org.jetbrains.kotlin.load.java.components.JavaResolverCache +import org.jetbrains.kotlin.load.java.components.SamConversionResolver +import org.jetbrains.kotlin.load.java.components.SignaturePropagator import org.jetbrains.kotlin.load.java.lazy.types.JavaTypeResolver import org.jetbrains.kotlin.load.java.sources.JavaSourceElementFactory import org.jetbrains.kotlin.load.java.structure.JavaTypeParameterListOwner @@ -42,7 +45,6 @@ class JavaResolverComponents( val finder: JavaClassFinder, val kotlinClassFinder: KotlinClassFinder, val deserializedDescriptorResolver: DeserializedDescriptorResolver, - val externalAnnotationResolver: ExternalAnnotationResolver, val signaturePropagator: SignaturePropagator, val errorReporter: ErrorReporter, val javaResolverCache: JavaResolverCache, @@ -63,7 +65,7 @@ class JavaResolverComponents( javaResolverCache: JavaResolverCache = this.javaResolverCache ) = JavaResolverComponents( storageManager, finder, kotlinClassFinder, deserializedDescriptorResolver, - externalAnnotationResolver, signaturePropagator, errorReporter, javaResolverCache, + signaturePropagator, errorReporter, javaResolverCache, javaPropertyInitializerEvaluator, samConversionResolver, sourceElementFactory, moduleClassResolver, packageMapper, supertypeLoopChecker, lookupTracker, module, reflectionTypes, annotationTypeQualifierResolver, signatureEnhancement, javaClassesTracker diff --git a/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt b/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt index 9c52dd12553..2c7dc892561 100644 --- a/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt +++ b/core/descriptors.runtime/src/kotlin/reflect/jvm/internal/components/RuntimeModuleData.kt @@ -24,7 +24,10 @@ import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl import org.jetbrains.kotlin.incremental.components.LookupTracker import org.jetbrains.kotlin.load.java.AnnotationTypeQualifierResolver import org.jetbrains.kotlin.load.java.JavaClassesTracker -import org.jetbrains.kotlin.load.java.components.* +import org.jetbrains.kotlin.load.java.components.JavaPropertyInitializerEvaluator +import org.jetbrains.kotlin.load.java.components.JavaResolverCache +import org.jetbrains.kotlin.load.java.components.SamConversionResolver +import org.jetbrains.kotlin.load.java.components.SignaturePropagator import org.jetbrains.kotlin.load.java.lazy.JavaResolverComponents import org.jetbrains.kotlin.load.java.lazy.LazyJavaPackageFragmentProvider import org.jetbrains.kotlin.load.java.lazy.SingleModuleClassResolver @@ -63,7 +66,7 @@ class RuntimeModuleData private constructor( val annotationTypeQualifierResolver = AnnotationTypeQualifierResolver(storageManager, Jsr305State.DISABLED) val globalJavaResolverContext = JavaResolverComponents( storageManager, ReflectJavaClassFinder(classLoader), reflectKotlinClassFinder, deserializedDescriptorResolver, - ExternalAnnotationResolver.EMPTY, SignaturePropagator.DO_NOTHING, RuntimeErrorReporter, javaResolverCache, + SignaturePropagator.DO_NOTHING, RuntimeErrorReporter, javaResolverCache, JavaPropertyInitializerEvaluator.DoNothing, SamConversionResolver.Empty, RuntimeSourceElementFactory, singleModuleClassResolver, runtimePackagePartProvider, SupertypeLoopChecker.EMPTY, LookupTracker.DO_NOTHING, module, ReflectionTypes(module, notFoundClasses), diff --git a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt index bc62e67c3db..bb9bea4eb38 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt +++ b/core/descriptors/src/org/jetbrains/kotlin/descriptors/annotations/Annotations.kt @@ -30,8 +30,6 @@ interface Annotations : Iterable { fun hasAnnotation(fqName: FqName): Boolean = findAnnotation(fqName) != null - fun findExternalAnnotation(fqName: FqName): AnnotationDescriptor? = null - fun getUseSiteTargetedAnnotations(): List // Returns both targeted and annotations without target. Annotation order is preserved. @@ -81,10 +79,6 @@ class FilteredAnnotations( if (fqNameFilter(fqName)) delegate.findAnnotation(fqName) else null - override fun findExternalAnnotation(fqName: FqName) = - if (fqNameFilter(fqName)) delegate.findExternalAnnotation(fqName) - else null - override fun getUseSiteTargetedAnnotations(): List { return delegate.getUseSiteTargetedAnnotations().filter { shouldBeReturned(it.annotation) } } @@ -114,8 +108,6 @@ class CompositeAnnotations( override fun findAnnotation(fqName: FqName) = delegates.asSequence().mapNotNull { it.findAnnotation(fqName) }.firstOrNull() - override fun findExternalAnnotation(fqName: FqName) = delegates.asSequence().mapNotNull { it.findExternalAnnotation(fqName) }.firstOrNull() - override fun getUseSiteTargetedAnnotations() = delegates.flatMap { it.getUseSiteTargetedAnnotations() } override fun getAllAnnotations() = delegates.flatMap { it.getAllAnnotations() } diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt index f6a7e880bcc..4dcaede9ff2 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/TypeUtils.kt @@ -23,8 +23,6 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.TypeParameterDescriptor import org.jetbrains.kotlin.idea.imports.canBeReferencedViaImport import org.jetbrains.kotlin.incremental.components.NoLookupLocation -import org.jetbrains.kotlin.load.java.JvmAnnotationNames.* -import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.platform.JavaToKotlinClassMap import org.jetbrains.kotlin.resolve.DescriptorUtils import org.jetbrains.kotlin.resolve.descriptorUtil.builtIns @@ -84,10 +82,6 @@ private fun KotlinType.approximateNonDynamicFlexibleTypes( ) } -private fun KotlinType.hasAnnotationMaybeExternal(fqName: FqName) = with (annotations) { - findAnnotation(fqName) ?: findExternalAnnotation(fqName) -} != null - fun KotlinType.isResolvableInScope(scope: LexicalScope?, checkTypeParameters: Boolean, allowIntersections: Boolean = false): Boolean { if (constructor is IntersectionTypeConstructor) { if (!allowIntersections) return false diff --git a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt index 6cd43424b43..1215540e3eb 100644 --- a/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt +++ b/idea/idea-jvm/src/org/jetbrains/kotlin/idea/properties/referenceProviders.kt @@ -58,7 +58,7 @@ private fun AnnotationDescriptor.getBundleName(): String? { } private fun DeclarationDescriptor.getBundleNameByAnnotation(): String? { - return (annotations.findAnnotation(PROPERTY_KEY) ?: annotations.findExternalAnnotation(PROPERTY_KEY))?.getBundleName() + return annotations.findAnnotation(PROPERTY_KEY)?.getBundleName() } private fun KtExpression.getBundleNameByContext(): String? {