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