[light classes] move KtLightElements to light-classes-base module
^KT-53097
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.asJava.elements
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import com.intellij.psi.PsiField
|
||||||
|
import com.intellij.psi.PsiNamedElement
|
||||||
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
|
||||||
|
interface KtLightElement<out T : KtElement, out D : PsiElement> : PsiElement {
|
||||||
|
val kotlinOrigin: T?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* KtLightModifierList by default retrieves annotation from the relevant KtElement or from clsDelegate
|
||||||
|
* But we have none of them for KtUltraLightAnnotationForDescriptor built upon descriptor
|
||||||
|
* For that case, KtLightModifierList in the beginning checks `givenAnnotations` and uses them if it's not null
|
||||||
|
* Probably, it's a bit dirty solution. But, for now it's not clear how to make it better
|
||||||
|
*/
|
||||||
|
val givenAnnotations: List<KtLightAbstractAnnotation>? get() = null
|
||||||
|
}
|
||||||
|
|
||||||
|
interface KtLightDeclaration<out T : KtDeclaration, out D : PsiElement> : KtLightElement<T, D>, PsiNamedElement
|
||||||
|
|
||||||
|
interface KtLightFieldForSourceDeclarationSupport : PsiField {
|
||||||
|
val kotlinOrigin: KtDeclaration?
|
||||||
|
}
|
||||||
@@ -10,24 +10,9 @@ import com.intellij.psi.impl.PsiVariableEx
|
|||||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
||||||
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
import org.jetbrains.kotlin.asJava.classes.KtLightClass
|
||||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
|
||||||
import org.jetbrains.kotlin.psi.KtParameter
|
import org.jetbrains.kotlin.psi.KtParameter
|
||||||
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
|
import org.jetbrains.kotlin.resolve.jvm.diagnostics.JvmDeclarationOriginKind
|
||||||
|
|
||||||
interface KtLightElement<out T : KtElement, out D : PsiElement> : PsiElement {
|
|
||||||
val kotlinOrigin: T?
|
|
||||||
|
|
||||||
/**
|
|
||||||
* KtLightModifierList by default retrieves annotation from the relevant KtElement or from clsDelegate
|
|
||||||
* But we have none of them for KtUltraLightAnnotationForDescriptor built upon descriptor
|
|
||||||
* For that case, KtLightModifierList in the beginning checks `givenAnnotations` and uses them if it's not null
|
|
||||||
* Probably, it's a bit dirty solution. But, for now it's not clear how to make it better
|
|
||||||
*/
|
|
||||||
val givenAnnotations: List<KtLightAbstractAnnotation>? get() = null
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KtLightDeclaration<out T : KtDeclaration, out D : PsiElement> : KtLightElement<T, D>, PsiNamedElement
|
|
||||||
|
|
||||||
interface KtLightMember<out D : PsiMember> : PsiMember, KtLightDeclaration<KtDeclaration, D>, PsiNameIdentifierOwner, PsiDocCommentOwner {
|
interface KtLightMember<out D : PsiMember> : PsiMember, KtLightDeclaration<KtDeclaration, D>, PsiNameIdentifierOwner, PsiDocCommentOwner {
|
||||||
val lightMemberOrigin: LightMemberOrigin?
|
val lightMemberOrigin: LightMemberOrigin?
|
||||||
|
|
||||||
@@ -40,10 +25,6 @@ interface KtLightParameter : PsiParameter, KtLightDeclaration<KtParameter, PsiPa
|
|||||||
val method: KtLightMethod
|
val method: KtLightMethod
|
||||||
}
|
}
|
||||||
|
|
||||||
interface KtLightFieldForSourceDeclarationSupport : PsiField {
|
|
||||||
val kotlinOrigin: KtDeclaration?
|
|
||||||
}
|
|
||||||
|
|
||||||
interface KtLightMethod : PsiAnnotationMethod, KtLightMember<PsiMethod> {
|
interface KtLightMethod : PsiAnnotationMethod, KtLightMember<PsiMethod> {
|
||||||
val isDelegated: Boolean
|
val isDelegated: Boolean
|
||||||
get() = lightMemberOrigin?.originKind == JvmDeclarationOriginKind.DELEGATION
|
get() = lightMemberOrigin?.originKind == JvmDeclarationOriginKind.DELEGATION
|
||||||
|
|||||||
Reference in New Issue
Block a user