Don't generate getEntries method in light classes when feature disabled
^KTIJ-23530 Fixed
This commit is contained in:
committed by
Space Team
parent
e5d5cbc7a3
commit
cbb20ce2b8
+13
@@ -14,13 +14,16 @@ import org.jetbrains.kotlin.analysis.api.symbols.*
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer
|
||||
import org.jetbrains.kotlin.analysis.api.symbols.pointers.symbolPointerOfType
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.asJava.builder.LightMemberOriginForDeclaration
|
||||
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_BASE
|
||||
import org.jetbrains.kotlin.asJava.classes.METHOD_INDEX_FOR_NON_ORIGIN_METHOD
|
||||
import org.jetbrains.kotlin.asJava.classes.lazyPub
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightField
|
||||
import org.jetbrains.kotlin.asJava.elements.KtLightMethod
|
||||
import org.jetbrains.kotlin.builtins.StandardNames
|
||||
import org.jetbrains.kotlin.builtins.StandardNames.HASHCODE_NAME
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.light.classes.symbol.NullabilityType
|
||||
import org.jetbrains.kotlin.light.classes.symbol.annotations.computeAnnotations
|
||||
@@ -131,6 +134,10 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
||||
filterNot { function ->
|
||||
function is KtFunctionSymbol && function.origin == KtSymbolOrigin.SOURCE_MEMBER_GENERATED
|
||||
}
|
||||
}.applyIf(isEnum && isEnumEntriesDisabled()) {
|
||||
filterNot {
|
||||
it is KtKotlinPropertySymbol && it.origin == KtSymbolOrigin.SOURCE_MEMBER_GENERATED && it.name == StandardNames.ENUM_ENTRIES
|
||||
}
|
||||
}
|
||||
|
||||
val suppressStatic = isCompanionObject
|
||||
@@ -148,6 +155,12 @@ internal open class SymbolLightClassForClassOrObject : SymbolLightClassForNamedC
|
||||
}
|
||||
}
|
||||
|
||||
private fun isEnumEntriesDisabled(): Boolean {
|
||||
return (ktModule as? KtSourceModule)
|
||||
?.languageVersionSettings
|
||||
?.supportsFeature(LanguageFeature.EnumEntries) != true
|
||||
}
|
||||
|
||||
context(KtAnalysisSession)
|
||||
private fun addMethodsFromDataClass(result: MutableList<KtLightMethod>, classOrObjectSymbol: KtNamedClassOrObjectSymbol) {
|
||||
if (!classOrObjectSymbol.isData) return
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
public enum AnnotatedParameterInEnumConstructor /* test.AnnotatedParameterInEnumConstructor*/ {
|
||||
A;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static kotlin.enums.EnumEntries<test.AnnotatedParameterInEnumConstructor> getEntries();// getEntries()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static test.AnnotatedParameterInEnumConstructor valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
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)
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
public enum E /* p.E*/ {
|
||||
@kotlin.Deprecated(message = "a") Entry1,
|
||||
Entry2,
|
||||
@kotlin.Deprecated(message = "b") Entry3;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static kotlin.enums.EnumEntries<p.E> getEntries();// getEntries()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static p.E valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static p.E[] values();// values()
|
||||
|
||||
private E();// .ctor()
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
public enum MyEnumClass /* one.MyEnumClass*/ {
|
||||
Entry;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static kotlin.enums.EnumEntries<one.MyEnumClass> getEntries();// getEntries()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static one.MyEnumClass valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static one.MyEnumClass[] values();// values()
|
||||
|
||||
private MyEnumClass();// .ctor()
|
||||
|
||||
public final int foo();// foo()
|
||||
|
||||
}
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
public enum EnumNameOverride /* EnumNameOverride*/ implements Bar {
|
||||
;
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static EnumNameOverride valueOf(java.lang.String) throws java.lang.IllegalArgumentException, java.lang.NullPointerException;// valueOf(java.lang.String)
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static EnumNameOverride[] values();// values()
|
||||
|
||||
@org.jetbrains.annotations.NotNull()
|
||||
public static kotlin.enums.EnumEntries<EnumNameOverride> getEntries();// getEntries()
|
||||
|
||||
private EnumNameOverride();// .ctor()
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user