K1/K2: add Enum.entries unconditionally and filter them out in tower

Before this commit, we added Enum.entries only in case when
LanguageFeature.EnumEntries was ON (with an exception in K1/Java case).
In this commit we add Enum.entries unconditionally, and in case
the language feature is OFF we filter them out during tower resolve.
This commit is contained in:
Mikhail Glukhikh
2022-07-27 11:22:49 +02:00
committed by Space
parent 0a5b3f1e13
commit 7333589663
97 changed files with 322 additions and 21 deletions
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.builtins.StandardNames.DEFAULT_VALUE_PARAMETER
import org.jetbrains.kotlin.builtins.StandardNames.ENUM_ENTRIES
import org.jetbrains.kotlin.builtins.StandardNames.ENUM_VALUES
import org.jetbrains.kotlin.builtins.StandardNames.ENUM_VALUE_OF
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.Visibilities
import org.jetbrains.kotlin.fakeElement
@@ -119,10 +118,6 @@ fun FirRegularClassBuilder.generateValueOfFunction(
fun FirRegularClassBuilder.generateEntriesGetter(
moduleData: FirModuleData, packageFqName: FqName, classFqName: FqName, makeExpect: Boolean = false
) {
if (!moduleData.session.languageVersionSettings.supportsFeature(LanguageFeature.EnumEntries)) {
return
}
val sourceElement = source?.fakeElement(KtFakeSourceElementKind.EnumGeneratedDeclaration)
declarations += buildProperty {
source = sourceElement