[SLC] SymbolLightAbstractAnnotationParameterList: introduce more flexible symbolLightAnnotationParameterList api
^KT-56046
This commit is contained in:
committed by
Space Team
parent
d7535c303d
commit
197160fbd7
+12
-2
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.light.classes.symbol.annotations
|
|||||||
|
|
||||||
import com.intellij.psi.PsiAnnotationParameterList
|
import com.intellij.psi.PsiAnnotationParameterList
|
||||||
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
|
import org.jetbrains.kotlin.analysis.api.annotations.KtNamedAnnotationValue
|
||||||
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
import org.jetbrains.kotlin.asJava.elements.KtLightElementBase
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
|
|
||||||
@@ -16,10 +17,19 @@ internal sealed class SymbolLightAbstractAnnotationParameterList(
|
|||||||
override val kotlinOrigin: KtElement? get() = (parent as SymbolLightAbstractAnnotation).kotlinOrigin?.valueArgumentList
|
override val kotlinOrigin: KtElement? get() = (parent as SymbolLightAbstractAnnotation).kotlinOrigin?.valueArgumentList
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("NOTHING_TO_INLINE")
|
||||||
|
internal inline fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(): SymbolLightAbstractAnnotationParameterList {
|
||||||
|
return SymbolLightEmptyAnnotationParameterList(this)
|
||||||
|
}
|
||||||
|
|
||||||
internal fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(
|
internal fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(
|
||||||
arguments: List<KtNamedAnnotationValue> = emptyList(),
|
arguments: List<KtNamedAnnotationValue>,
|
||||||
): SymbolLightAbstractAnnotationParameterList = if (arguments.isNotEmpty()) {
|
): SymbolLightAbstractAnnotationParameterList = if (arguments.isNotEmpty()) {
|
||||||
SymbolLightLazyAnnotationParameterList(this, lazyOf(arguments))
|
SymbolLightLazyAnnotationParameterList(this, lazyOf(arguments))
|
||||||
} else {
|
} else {
|
||||||
SymbolLightEmptyAnnotationParameterList(this)
|
symbolLightAnnotationParameterList()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal inline fun SymbolLightAbstractAnnotation.symbolLightAnnotationParameterList(
|
||||||
|
crossinline argumentsComputer: () -> List<KtNamedAnnotationValue>,
|
||||||
|
): SymbolLightAbstractAnnotationParameterList = SymbolLightLazyAnnotationParameterList(this, lazyPub { argumentsComputer() })
|
||||||
|
|||||||
+1
-1
@@ -29,7 +29,7 @@ internal open class SymbolLightJavaAnnotation(
|
|||||||
override fun getQualifiedName(): String = javaQualifier
|
override fun getQualifiedName(): String = javaQualifier
|
||||||
|
|
||||||
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
||||||
SymbolLightLazyAnnotationParameterList(this, lazyPub { argumentsComputer() })
|
symbolLightAnnotationParameterList { argumentsComputer() }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getParameterList(): PsiAnnotationParameterList = _parameterList
|
override fun getParameterList(): PsiAnnotationParameterList = _parameterList
|
||||||
|
|||||||
+2
-2
@@ -40,9 +40,9 @@ internal class SymbolLightLazyAnnotation(
|
|||||||
|
|
||||||
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
private val _parameterList: PsiAnnotationParameterList by lazyPub {
|
||||||
if (annotationApplication.isCallWithArguments) {
|
if (annotationApplication.isCallWithArguments) {
|
||||||
SymbolLightLazyAnnotationParameterList(this, lazyPub { annotationApplicationWithArgumentsInfo.value.arguments })
|
symbolLightAnnotationParameterList { annotationApplicationWithArgumentsInfo.value.arguments }
|
||||||
} else {
|
} else {
|
||||||
SymbolLightEmptyAnnotationParameterList(this)
|
symbolLightAnnotationParameterList()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user