[SLC] drop redundant 'final' modifier from synthetic enum members
^KT-55502 Fixed
This commit is contained in:
committed by
Space Team
parent
8bbe60e96c
commit
c77401d823
+22
-19
@@ -165,30 +165,33 @@ internal class SymbolLightAccessorMethod private constructor(
|
|||||||
annotationsFromProperty + annotationsFromAccessor
|
annotationsFromProperty + annotationsFromAccessor
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||||
return when (modifier) {
|
in LazyModifiersBox.VISIBILITY_MODIFIERS -> LazyModifiersBox.computeVisibilityForMember(ktModule, propertyAccessorSymbolPointer)
|
||||||
in LazyModifiersBox.VISIBILITY_MODIFIERS -> LazyModifiersBox.computeVisibilityForMember(ktModule, propertyAccessorSymbolPointer)
|
|
||||||
|
|
||||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
||||||
if (containingClass.isInterface) {
|
val modality = if (containingClass.isInterface) {
|
||||||
return LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(PsiModifier.ABSTRACT)
|
PsiModifier.ABSTRACT
|
||||||
|
} else {
|
||||||
|
analyzeForLightClasses(ktModule) {
|
||||||
|
val propertySymbol = propertySymbol()
|
||||||
|
propertySymbol.computeSimpleModality()?.takeUnless { it.isSuppressedFinalModifier(containingClass, propertySymbol) }
|
||||||
}
|
}
|
||||||
|
|
||||||
LazyModifiersBox.computeSimpleModality(ktModule, containingPropertySymbolPointer)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PsiModifier.STATIC -> {
|
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||||
val isStatic = if (suppressStatic) {
|
|
||||||
false
|
|
||||||
} else {
|
|
||||||
isTopLevel || isStatic()
|
|
||||||
}
|
|
||||||
|
|
||||||
mapOf(modifier to isStatic)
|
|
||||||
}
|
|
||||||
|
|
||||||
else -> null
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PsiModifier.STATIC -> {
|
||||||
|
val isStatic = if (suppressStatic) {
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
isTopLevel || isStatic()
|
||||||
|
}
|
||||||
|
|
||||||
|
mapOf(modifier to isStatic)
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> null
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isStatic(): Boolean = analyzeForLightClasses(ktModule) {
|
private fun isStatic(): Boolean = analyzeForLightClasses(ktModule) {
|
||||||
|
|||||||
+8
-1
@@ -93,7 +93,14 @@ internal class SymbolLightSimpleMethod(
|
|||||||
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
private fun computeModifiers(modifier: String): Map<String, Boolean>? = when (modifier) {
|
||||||
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
in LazyModifiersBox.MODALITY_MODIFIERS -> {
|
||||||
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
ifInlineOnly { return modifiersForInlineOnlyCase() }
|
||||||
val modality = if (isTopLevel) PsiModifier.FINAL else withFunctionSymbol { it.computeSimpleModality() }
|
val modality = if (isTopLevel) {
|
||||||
|
PsiModifier.FINAL
|
||||||
|
} else {
|
||||||
|
withFunctionSymbol { functionSymbol ->
|
||||||
|
functionSymbol.computeSimpleModality()?.takeUnless { it.isSuppressedFinalModifier(containingClass, functionSymbol) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
LazyModifiersBox.MODALITY_MODIFIERS_MAP.with(modality)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
* 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.light.classes.symbol.methods
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiModifier
|
||||||
|
import org.jetbrains.kotlin.analysis.api.KtAnalysisSession
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtCallableSymbol
|
||||||
|
import org.jetbrains.kotlin.analysis.api.symbols.KtSymbolOrigin
|
||||||
|
import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase
|
||||||
|
|
||||||
|
context(KtAnalysisSession)
|
||||||
|
internal fun String.isSuppressedFinalModifier(containingClass: SymbolLightClassBase, symbol: KtCallableSymbol): Boolean {
|
||||||
|
return this == PsiModifier.FINAL && containingClass.isEnum && symbol.origin == KtSymbolOrigin.SOURCE_MEMBER_GENERATED
|
||||||
|
}
|
||||||
+3
-3
@@ -2,13 +2,13 @@ public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnum
|
|||||||
A;
|
A;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final kotlin.enums.EnumEntries<test.AnnotatedParameterInEnumConstructor> getEntries();// getEntries()
|
public static kotlin.enums.EnumEntries<test.AnnotatedParameterInEnumConstructor> getEntries();// getEntries()
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
public static test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final test.AnnotatedParameterInEnumConstructor[] values();// values()
|
public static test.AnnotatedParameterInEnumConstructor[] values();// values()
|
||||||
|
|
||||||
private AnnotatedParameterInEnumConstructor(@test.Anno(x = "a") java.lang.String, @test.Anno(x = "b") java.lang.String);// .ctor(java.lang.String, java.lang.String)
|
private AnnotatedParameterInEnumConstructor(@test.Anno(x = "a") java.lang.String, @test.Anno(x = "b") java.lang.String);// .ctor(java.lang.String, java.lang.String)
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,13 @@ public enum E /* p.E*/ {
|
|||||||
@kotlin.Deprecated(message = "b") Entry3;
|
@kotlin.Deprecated(message = "b") Entry3;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final kotlin.enums.EnumEntries<p.E> getEntries();// getEntries()
|
public static kotlin.enums.EnumEntries<p.E> getEntries();// getEntries()
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
public static p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final p.E[] values();// values()
|
public static p.E[] values();// values()
|
||||||
|
|
||||||
private E();// .ctor()
|
private E();// .ctor()
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
|
|||||||
Entry;
|
Entry;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final kotlin.enums.EnumEntries<one.MyEnumClass> getEntries();// getEntries()
|
public static kotlin.enums.EnumEntries<one.MyEnumClass> getEntries();// getEntries()
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final one.MyEnumClass[] values();// values()
|
public static one.MyEnumClass[] values();// values()
|
||||||
|
|
||||||
private MyEnumClass();// .ctor()
|
private MyEnumClass();// .ctor()
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ public enum MyEnumClass /* one.MyEnumClass*/ {
|
|||||||
Entry;
|
Entry;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final kotlin.enums.EnumEntries<one.MyEnumClass> getEntries();// getEntries()
|
public static kotlin.enums.EnumEntries<one.MyEnumClass> getEntries();// getEntries()
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final one.MyEnumClass[] values();// values()
|
public static one.MyEnumClass[] values();// values()
|
||||||
|
|
||||||
private MyEnumClass();// .ctor()
|
private MyEnumClass();// .ctor()
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -2,13 +2,13 @@ public enum EnumNameOverride /* EnumNameOverride*/ implements Bar {
|
|||||||
;
|
;
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
public static EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final EnumNameOverride[] values();// values()
|
public static EnumNameOverride[] values();// values()
|
||||||
|
|
||||||
@org.jetbrains.annotations.NotNull()
|
@org.jetbrains.annotations.NotNull()
|
||||||
public static final kotlin.enums.EnumEntries<EnumNameOverride> getEntries();// getEntries()
|
public static kotlin.enums.EnumEntries<EnumNameOverride> getEntries();// getEntries()
|
||||||
|
|
||||||
private EnumNameOverride();// .ctor()
|
private EnumNameOverride();// .ctor()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user