[AA LC] Fix annotations on fields for enum entries

This commit is contained in:
Dmitriy Novozhilov
2022-08-03 16:06:35 +03:00
parent a88fdd5eb7
commit 8e80c5830e
4 changed files with 32 additions and 15 deletions
@@ -17,6 +17,9 @@ import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClass
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForEnumEntry import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassForEnumEntry
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.nonExistentType import org.jetbrains.kotlin.light.classes.symbol.nonExistentType
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
import org.jetbrains.kotlin.psi.KtEnumEntry import org.jetbrains.kotlin.psi.KtEnumEntry
import org.jetbrains.kotlin.utils.addToStdlib.ifTrue import org.jetbrains.kotlin.utils.addToStdlib.ifTrue
@@ -31,7 +34,11 @@ internal class SymbolLightFieldForEnumEntry(
SymbolLightMemberModifierList( SymbolLightMemberModifierList(
containingDeclaration = this@SymbolLightFieldForEnumEntry, containingDeclaration = this@SymbolLightFieldForEnumEntry,
modifiers = setOf(PsiModifier.STATIC, PsiModifier.FINAL, PsiModifier.PUBLIC), modifiers = setOf(PsiModifier.STATIC, PsiModifier.FINAL, PsiModifier.PUBLIC),
annotations = emptyList() annotations = enumEntrySymbol.computeAnnotations(
this,
nullability = NullabilityType.Unknown, // there is no need to add nullability annotations on enum entries
annotationUseSiteTarget = AnnotationUseSiteTarget.FIELD
)
) )
} }
+5 -1
View File
@@ -1,5 +1,9 @@
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface Some /* Some*/ {
}
public enum Direction /* Direction*/ { public enum Direction /* Direction*/ {
NORTH, @Some() NORTH,
SOUTH, SOUTH,
WEST, WEST,
EAST; EAST;
+4
View File
@@ -1,3 +1,7 @@
@java.lang.annotation.Retention(value = java.lang.annotation.RetentionPolicy.RUNTIME)
public abstract @interface Some /* Some*/ {
}
public enum Direction /* Direction*/ { public enum Direction /* Direction*/ {
NORTH, NORTH,
SOUTH, SOUTH,
+3 -1
View File
@@ -2,8 +2,10 @@
import java.util.function.* import java.util.function.*
annotation class Some
enum class Direction { enum class Direction {
NORTH, SOUTH, WEST, EAST @Some NORTH, SOUTH, WEST, EAST
} }
enum class Color(val rgb: Int = 5) { enum class Color(val rgb: Int = 5) {