Remove dependency of module 'java-model-wrappers' on 'annotation-processing'
This breaks the circular dependency between them
This commit is contained in:
-36
@@ -1,36 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2016 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.annotation.processing.impl
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
|
||||
class DisposableRef<out T : Any>(initialValue: T): Disposable {
|
||||
@Volatile
|
||||
private var value: T? = initialValue
|
||||
|
||||
operator fun invoke() = value ?: throw IllegalStateException("Reference is disposed")
|
||||
|
||||
override fun dispose() {
|
||||
value = null
|
||||
}
|
||||
}
|
||||
|
||||
fun <T : Any> T.toDisposable() = DisposableRef(this)
|
||||
|
||||
fun dispose(vararg refs: DisposableRef<*>?) {
|
||||
refs.forEach { it?.dispose() }
|
||||
}
|
||||
+5
-2
@@ -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
|
||||
|
||||
+5
-3
@@ -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()
|
||||
|
||||
+3
-1
@@ -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
|
||||
|
||||
|
||||
+6
-2
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user