[FIR] Introduce FirDeclarationStatus.hasStableParameterNames
This flag is true by default but is set to false for - Java methods and constructors - interface delegation methods that delegate to Java The NAMED_ARGUMENTS_NOT_ALLOWED logic is mostly refactored to use the new flag though some custom logic remains for determining the correct message and to work around a corner case with fake overrides. The flag is (de)serialized from/to metadata. For backward compatibility with K1, delegated methods to Java types are deserialized as stable. ^KT-40480 Fixed
This commit is contained in:
committed by
Space Team
parent
152e63b198
commit
314784f435
+2
@@ -502,6 +502,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
isTailRec = Flags.IS_TAILREC.get(flags)
|
||||
isExternal = Flags.IS_EXTERNAL_FUNCTION.get(flags)
|
||||
isSuspend = Flags.IS_SUSPEND.get(flags)
|
||||
hasStableParameterNames = !Flags.IS_FUNCTION_WITH_NON_STABLE_PARAMETER_NAMES.get(flags)
|
||||
}
|
||||
this.symbol = symbol
|
||||
dispatchReceiverType = c.dispatchReceiver
|
||||
@@ -571,6 +572,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
visibility.toEffectiveVisibility(classBuilder.symbol)
|
||||
).apply {
|
||||
isExpect = Flags.IS_EXPECT_FUNCTION.get(flags)
|
||||
hasStableParameterNames = !Flags.IS_CONSTRUCTOR_WITH_NON_STABLE_PARAMETER_NAMES.get(flags)
|
||||
isActual = false
|
||||
isOverride = false
|
||||
this.isInner = isInner
|
||||
|
||||
Reference in New Issue
Block a user