JVM: refactor JvmDefaultMode, remove/rename some entries

- remove ENABLE/COMPATIBILITY because they can no longer be used
- remove forAllMethodsWithBody because its behavior is now equivalent to
  isEnabled
- inline isCompatibility
- inline DEFAULT
- rename ALL_INCOMPATIBLE -> ALL
This commit is contained in:
Alexander Udalov
2024-02-01 13:22:48 +01:00
committed by Space Team
parent 6219806ab9
commit 28797a31b4
22 changed files with 58 additions and 85 deletions
@@ -155,7 +155,7 @@ internal class KtFirMetadataCalculator(override val analysisSession: KtFirAnalys
metadataVersion = metadataVersion,
// Technically we should use JvmDefaultMode.ALL_INCOMPATIBLE because Kapt4 always uses `-Xjvm-default=all`, but it would make
// the majority of tests fail because metadata of each interface will have a flag set, compared to Kapt3.
jvmDefaultMode = JvmDefaultMode.DEFAULT,
jvmDefaultMode = JvmDefaultMode.DISABLE,
stringTable,
null,
null
@@ -37,11 +37,7 @@ import org.jetbrains.kotlin.config.JvmDefaultMode
import org.jetbrains.kotlin.descriptors.Modality
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
import org.jetbrains.kotlin.lexer.KtTokens.*
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmNameAnnotation
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmOverloadsAnnotation
import org.jetbrains.kotlin.light.classes.symbol.annotations.hasJvmStaticAnnotation
import org.jetbrains.kotlin.light.classes.symbol.annotations.isHiddenOrSynthetic
import org.jetbrains.kotlin.light.classes.symbol.annotations.toOptionalFilter
import org.jetbrains.kotlin.light.classes.symbol.annotations.*
import org.jetbrains.kotlin.light.classes.symbol.copy
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightField
import org.jetbrains.kotlin.light.classes.symbol.fields.SymbolLightFieldForEnumEntry
@@ -560,11 +556,11 @@ internal fun KtSymbolWithMembers.createInnerClasses(
?.let { getModule(it) as? KtSourceModule }
?.languageVersionSettings
?.getFlag(JvmAnalysisFlags.jvmDefaultMode)
?: JvmDefaultMode.DEFAULT
?: JvmDefaultMode.DISABLE
if (containingClass is SymbolLightClassForInterface &&
classOrObject?.hasInterfaceDefaultImpls == true &&
jvmDefaultMode != JvmDefaultMode.ALL_INCOMPATIBLE
jvmDefaultMode != JvmDefaultMode.ALL
) {
result.add(SymbolLightClassForInterfaceDefaultImpls(containingClass))
}