Remove dependency of module 'java-model-wrappers' on 'annotation-processing'

This breaks the circular dependency between them
This commit is contained in:
Alexander Udalov
2017-06-03 15:45:06 +03:00
parent 0e693c39a3
commit 4844d720cc
12 changed files with 41 additions and 26 deletions
@@ -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
@@ -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()
@@ -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
@@ -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)
@@ -9,7 +9,6 @@
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="light-classes" />
<orderEntry type="module" module-name="frontend" />
<orderEntry type="module" module-name="annotation-processing" />
<orderEntry type="library" name="kotlin-runtime" level="project" />
</component>
</module>
@@ -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 {
@@ -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
@@ -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
@@ -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<out T : PsiType>(
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()
@@ -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
@@ -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<out T : Any>(initialValue: T): Disposable {
fun <T : Any> T.toDisposable() = DisposableRef(this)
fun dispose(vararg refs: DisposableRef<*>?) {
fun disposeAll(vararg refs: DisposableRef<*>?) {
refs.forEach { it?.dispose() }
}
}
@@ -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