diff --git a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinElements.kt b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinElements.kt index 7b2520dbd36..98b93f41d29 100644 --- a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinElements.kt +++ b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinElements.kt @@ -19,7 +19,8 @@ package org.jetbrains.kotlin.annotation.processing.impl import com.intellij.openapi.Disposable import com.intellij.psi.* import com.intellij.psi.search.GlobalSearchScope -import com.intellij.psi.util.* +import com.intellij.psi.util.PsiSuperMethodUtil +import com.intellij.psi.util.TypeConversionUtil import org.jetbrains.kotlin.java.model.JeAnnotationOwner import org.jetbrains.kotlin.java.model.JeElement import org.jetbrains.kotlin.java.model.JeName @@ -28,6 +29,8 @@ import org.jetbrains.kotlin.java.model.elements.JeMethodExecutableElement import org.jetbrains.kotlin.java.model.elements.JePackageElement import org.jetbrains.kotlin.java.model.elements.JeTypeElement import org.jetbrains.kotlin.java.model.internal.getTypeWithTypeParameters +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable import java.io.PrintWriter import java.io.Writer import javax.lang.model.element.* @@ -40,7 +43,7 @@ class KotlinElements( internal val javaPsiFacade = javaPsiFacade.toDisposable() internal val scope = scope.toDisposable() - override fun dispose() = dispose(javaPsiFacade, scope) + override fun dispose() = disposeAll(javaPsiFacade, scope) override fun hides(hider: Element, hidden: Element): Boolean { val hiderMethod = (hider as? JeMethodExecutableElement)?.psi ?: return false diff --git a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinProcessingEnvironment.kt b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinProcessingEnvironment.kt index c7edceb7723..e332ef78ace 100644 --- a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinProcessingEnvironment.kt +++ b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinProcessingEnvironment.kt @@ -23,6 +23,8 @@ import com.intellij.psi.JavaPsiFacade import com.intellij.psi.PsiManager import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.java.model.internal.JeElementRegistry +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable import org.jetbrains.kotlin.resolve.BindingContext import java.io.File import java.util.* @@ -66,9 +68,9 @@ class KotlinProcessingEnvironment( types().dispose() elements().dispose() registry().dispose() - dispose(elements, types, messager, filer, processors, - project, psiManager, javaPsiFacade, projectScope, bindingContext, - appendJavaSourceRootsHandler, options) + disposeAll(elements, types, messager, filer, processors, + project, psiManager, javaPsiFacade, projectScope, bindingContext, + appendJavaSourceRootsHandler, options) } override fun getElementUtils() = elements() diff --git a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinRoundEnvironment.kt b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinRoundEnvironment.kt index e900c8b42d6..b11a153b312 100644 --- a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinRoundEnvironment.kt +++ b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinRoundEnvironment.kt @@ -19,6 +19,8 @@ package org.jetbrains.kotlin.annotation.processing.impl import com.intellij.openapi.Disposable import org.jetbrains.kotlin.annotation.processing.RoundAnnotations import org.jetbrains.kotlin.java.model.toJeElement +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.annotation.processing.RoundEnvironment import javax.lang.model.element.Element import javax.lang.model.element.TypeElement @@ -30,7 +32,7 @@ internal class KotlinRoundEnvironment( ) : RoundEnvironment, Disposable { val roundAnnotations = roundAnnotations.toDisposable() - override fun dispose() = dispose(roundAnnotations) + override fun dispose() = disposeAll(roundAnnotations) private var isError = false diff --git a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinTypes.kt b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinTypes.kt index 31f69d76b2c..02ca5dc11f3 100644 --- a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinTypes.kt +++ b/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/KotlinTypes.kt @@ -19,10 +19,14 @@ package org.jetbrains.kotlin.annotation.processing.impl import com.intellij.openapi.Disposable import com.intellij.psi.* import com.intellij.psi.search.GlobalSearchScope -import com.intellij.psi.util.* +import com.intellij.psi.util.MethodSignatureUtil +import com.intellij.psi.util.PsiTypesUtil +import com.intellij.psi.util.TypeConversionUtil import org.jetbrains.kotlin.java.model.JeElement import org.jetbrains.kotlin.java.model.elements.* import org.jetbrains.kotlin.java.model.types.* +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.lang.model.element.Element import javax.lang.model.element.TypeElement import javax.lang.model.type.* @@ -37,7 +41,7 @@ class KotlinTypes( val psiManager = psiManager.toDisposable() val scope = scope.toDisposable() - override fun dispose() = dispose(javaPsiFacade, psiManager, scope) + override fun dispose() = disposeAll(javaPsiFacade, psiManager, scope) override fun contains(containing: TypeMirror, contained: TypeMirror): Boolean { assertKindNot(containing, TypeKind.PACKAGE, TypeKind.EXECUTABLE) diff --git a/plugins/java-model-wrappers/java-model-wrappers.iml b/plugins/java-model-wrappers/java-model-wrappers.iml index f9dca123209..c8bb463aa64 100755 --- a/plugins/java-model-wrappers/java-model-wrappers.iml +++ b/plugins/java-model-wrappers/java-model-wrappers.iml @@ -9,7 +9,6 @@ - \ No newline at end of file diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/JeElement.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/JeElement.kt index b177c7d261d..53686e763fb 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/JeElement.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/JeElement.kt @@ -20,8 +20,8 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.components.ServiceManager import com.intellij.psi.PsiElement import com.intellij.psi.PsiManager -import org.jetbrains.kotlin.annotation.processing.impl.toDisposable import org.jetbrains.kotlin.java.model.internal.JeElementRegistry +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.lang.model.element.Element interface JePsiElementOwner { diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt index 9ae2bf185b0..532561b1850 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeDeclaredType.kt @@ -17,14 +17,17 @@ package org.jetbrains.kotlin.java.model.types import com.intellij.pom.java.LanguageLevel -import com.intellij.psi.* +import com.intellij.psi.PsiClass +import com.intellij.psi.PsiClassType +import com.intellij.psi.PsiManager +import com.intellij.psi.PsiType import com.intellij.psi.impl.PsiSubstitutorImpl import com.intellij.psi.impl.source.PsiClassReferenceType import com.intellij.psi.impl.source.PsiImmediateClassType -import org.jetbrains.kotlin.annotation.processing.impl.toDisposable import org.jetbrains.kotlin.java.model.elements.JeTypeElement import org.jetbrains.kotlin.java.model.internal.getTypeWithTypeParameters import org.jetbrains.kotlin.java.model.internal.isStatic +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.lang.model.type.DeclaredType import javax.lang.model.type.TypeKind import javax.lang.model.type.TypeMirror diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt index e928d3b865b..9a9c9d38428 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeMethodExecutableTypeMirror.kt @@ -16,15 +16,14 @@ package org.jetbrains.kotlin.java.model.types -import com.intellij.psi.PsiManager import com.intellij.psi.PsiMethod import com.intellij.psi.PsiType import com.intellij.psi.util.MethodSignature import com.intellij.psi.util.PsiTypesUtil -import org.jetbrains.kotlin.annotation.processing.impl.toDisposable -import org.jetbrains.kotlin.annotation.processing.impl.dispose import org.jetbrains.kotlin.java.model.JeDisposablePsiElementOwner import org.jetbrains.kotlin.java.model.elements.getReceiverTypeMirror +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.lang.model.type.ExecutableType import javax.lang.model.type.TypeKind import javax.lang.model.type.TypeMirror @@ -48,7 +47,7 @@ class JeMethodExecutableTypeMirror( // JeElementRegistry registration is done in JeDisposablePsiElementOwner override fun dispose() { super.dispose() - dispose(disposableSignature, disposableReturnType) + disposeAll(disposableSignature, disposableReturnType) } override fun getKind() = TypeKind.EXECUTABLE diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JePsiType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JePsiType.kt index f03d8c79ac2..65bc1b8583d 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JePsiType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JePsiType.kt @@ -20,9 +20,9 @@ import com.intellij.openapi.Disposable import com.intellij.openapi.components.ServiceManager import com.intellij.psi.PsiManager import com.intellij.psi.PsiType -import org.jetbrains.kotlin.annotation.processing.impl.toDisposable import org.jetbrains.kotlin.java.model.internal.JeElementRegistry -import org.jetbrains.kotlin.annotation.processing.impl.dispose +import org.jetbrains.kotlin.java.model.util.disposeAll +import org.jetbrains.kotlin.java.model.util.toDisposable interface JePsiType : JeTypeMirror { val psiType: PsiType @@ -39,7 +39,7 @@ abstract class JePsiTypeBase( ServiceManager.getService(manager.project, JeElementRegistry::class.java).register(this) } - override fun dispose() = dispose(disposableManager, disposableType) + override fun dispose() = disposeAll(disposableManager, disposableType) override val psiManager: PsiManager get() = disposableManager() diff --git a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeTypeVariableType.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeTypeVariableType.kt index cb9723c87cd..55c5d1ffdba 100644 --- a/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeTypeVariableType.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/types/JeTypeVariableType.kt @@ -16,10 +16,13 @@ package org.jetbrains.kotlin.java.model.types +import com.intellij.psi.PsiClassType +import com.intellij.psi.PsiIntersectionType +import com.intellij.psi.PsiManager +import com.intellij.psi.PsiTypeParameter import org.jetbrains.kotlin.java.model.elements.JeTypeParameterElement -import com.intellij.psi.* -import org.jetbrains.kotlin.annotation.processing.impl.toDisposable import org.jetbrains.kotlin.java.model.toJeElement +import org.jetbrains.kotlin.java.model.util.toDisposable import javax.lang.model.type.TypeKind import javax.lang.model.type.TypeMirror import javax.lang.model.type.TypeVariable diff --git a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/DisposableRef.kt b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/util/DisposableRef.kt similarity index 87% rename from plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/DisposableRef.kt rename to plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/util/DisposableRef.kt index dc4e1a8c3c9..3a4396ae589 100644 --- a/plugins/annotation-processing/src/org/jetbrains/kotlin/annotation/processing/impl/DisposableRef.kt +++ b/plugins/java-model-wrappers/src/org/jetbrains/kotlin/java/model/util/DisposableRef.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. + * Copyright 2010-2017 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.jetbrains.kotlin.annotation.processing.impl +package org.jetbrains.kotlin.java.model.util import com.intellij.openapi.Disposable @@ -31,6 +31,6 @@ class DisposableRef(initialValue: T): Disposable { fun T.toDisposable() = DisposableRef(this) -fun dispose(vararg refs: DisposableRef<*>?) { +fun disposeAll(vararg refs: DisposableRef<*>?) { refs.forEach { it?.dispose() } -} \ No newline at end of file +} diff --git a/plugins/plugins-tests/tests/org/jetbrains/kotlin/annotation/processing/test/processor/ProcessorTests.kt b/plugins/plugins-tests/tests/org/jetbrains/kotlin/annotation/processing/test/processor/ProcessorTests.kt index e6d4bbc2346..b96cd1a56ec 100644 --- a/plugins/plugins-tests/tests/org/jetbrains/kotlin/annotation/processing/test/processor/ProcessorTests.kt +++ b/plugins/plugins-tests/tests/org/jetbrains/kotlin/annotation/processing/test/processor/ProcessorTests.kt @@ -17,11 +17,11 @@ package org.jetbrains.kotlin.annotation.processing.test.processor import org.intellij.lang.annotations.Language -import org.jetbrains.kotlin.annotation.processing.impl.DisposableRef import org.jetbrains.kotlin.annotation.processing.impl.KotlinProcessingEnvironment import org.jetbrains.kotlin.java.model.elements.* import org.jetbrains.kotlin.java.model.types.JeDeclaredType import org.jetbrains.kotlin.java.model.types.JeMethodExecutableTypeMirror +import org.jetbrains.kotlin.java.model.util.DisposableRef import org.jetbrains.kotlin.resolve.jvm.extensions.AnalysisHandlerExtension import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstance import javax.annotation.processing.ProcessingEnvironment