[SLC] introduce EmptyAnnotationsBox
^KT-56046
This commit is contained in:
committed by
Space Team
parent
ad4f6b25ca
commit
8c2cb4f621
+14
@@ -0,0 +1,14 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 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.light.classes.symbol.annotations
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiAnnotation
|
||||||
|
import com.intellij.psi.PsiModifierList
|
||||||
|
|
||||||
|
object EmptyAnnotationsBox : AnnotationsBox {
|
||||||
|
override fun annotations(owner: PsiModifierList): Array<PsiAnnotation> = PsiAnnotation.EMPTY_ARRAY
|
||||||
|
override fun findAnnotation(owner: PsiModifierList, qualifiedName: String): PsiAnnotation? = null
|
||||||
|
}
|
||||||
+17
-16
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.*
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.SimpleAnnotationsBox
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnotation
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasDeprecatedAnnotation
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||||
@@ -145,23 +146,23 @@ internal class SymbolLightFieldForProperty private constructor(
|
|||||||
|
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
initialValue = initializerValue,
|
modifiersBox = LazyModifiersBox(initializerValue, ::computeModifiers),
|
||||||
lazyModifiersComputer = ::computeModifiers,
|
annotationsBox = SimpleAnnotationsBox { modifierList ->
|
||||||
) { modifierList ->
|
withPropertySymbol { propertySymbol ->
|
||||||
withPropertySymbol { propertySymbol ->
|
val nullability = if (!(propertySymbol is KtKotlinPropertySymbol && propertySymbol.isLateInit)) {
|
||||||
val nullability = if (!(propertySymbol is KtKotlinPropertySymbol && propertySymbol.isLateInit)) {
|
getTypeNullability(propertySymbol.returnType)
|
||||||
getTypeNullability(propertySymbol.returnType)
|
} else {
|
||||||
} else {
|
NullabilityType.Unknown
|
||||||
NullabilityType.Unknown
|
}
|
||||||
}
|
|
||||||
|
|
||||||
propertySymbol.computeAnnotations(
|
propertySymbol.computeAnnotations(
|
||||||
modifierList = modifierList,
|
modifierList = modifierList,
|
||||||
nullability = nullability,
|
nullability = nullability,
|
||||||
annotationUseSiteTarget = AnnotationUseSiteTarget.FIELD,
|
annotationUseSiteTarget = AnnotationUseSiteTarget.FIELD,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getModifierList(): PsiModifierList = _modifierList
|
override fun getModifierList(): PsiModifierList = _modifierList
|
||||||
|
|||||||
+5
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier
|
import org.jetbrains.kotlin.asJava.elements.KtLightIdentifier
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SimpleModifiersBox
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
||||||
|
|
||||||
@@ -36,7 +37,10 @@ internal class SymbolLightNoArgConstructor(
|
|||||||
override fun isDeprecated(): Boolean = false
|
override fun isDeprecated(): Boolean = false
|
||||||
|
|
||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(containingDeclaration = this, staticModifiers = setOf(visibility), annotationsComputer = null)
|
SymbolLightMemberModifierList(
|
||||||
|
containingDeclaration = this,
|
||||||
|
modifiersBox = SimpleModifiersBox(visibility),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getModifierList(): PsiModifierList = _modifierList
|
override fun getModifierList(): PsiModifierList = _modifierList
|
||||||
|
|||||||
+2
-2
@@ -9,6 +9,7 @@ import com.intellij.psi.*
|
|||||||
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_BASE
|
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_BASE
|
||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SimpleModifiersBox
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightMemberModifierList
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
import org.jetbrains.kotlin.light.classes.symbol.parameters.SymbolLightParameterList
|
||||||
|
|
||||||
@@ -31,8 +32,7 @@ internal class SymbolLightRepeatableAnnotationContainerMethod(
|
|||||||
private val _modifierList by lazyPub {
|
private val _modifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
staticModifiers = setOf(PsiModifier.PUBLIC, PsiModifier.ABSTRACT),
|
modifiersBox = SimpleModifiersBox(PsiModifier.PUBLIC, PsiModifier.ABSTRACT),
|
||||||
annotationsComputer = null,
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-2
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.asJava.builder.LightMemberOrigin
|
|||||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||||
import org.jetbrains.kotlin.lexer.KtTokens
|
import org.jetbrains.kotlin.lexer.KtTokens
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.*
|
import org.jetbrains.kotlin.light.classes.symbol.*
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.SimpleAnnotationsBox
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasInlineOnlyAnnotation
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasInlineOnlyAnnotation
|
||||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation
|
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation
|
||||||
@@ -158,8 +159,8 @@ internal class SymbolLightSimpleMethod(
|
|||||||
private val _modifierList: PsiModifierList by lazyPub {
|
private val _modifierList: PsiModifierList by lazyPub {
|
||||||
SymbolLightMemberModifierList(
|
SymbolLightMemberModifierList(
|
||||||
containingDeclaration = this,
|
containingDeclaration = this,
|
||||||
lazyModifiersComputer = ::computeModifiers,
|
modifiersBox = LazyModifiersBox(computer = ::computeModifiers),
|
||||||
annotationsComputer = ::computeAnnotations,
|
annotationsBox = SimpleAnnotationsBox(::computeAnnotations),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user