Metadata: 'non-stable parameter names' flag for callables

^KT-34602
This commit is contained in:
Dmitriy Dolovov
2020-07-20 18:21:34 +07:00
parent 8cace2bab4
commit 3d9093583f
16 changed files with 334 additions and 15 deletions
@@ -310,7 +310,8 @@ class FirElementSerializer private constructor(
simpleFunction?.isTailRec == true,
simpleFunction?.isExternal == true,
simpleFunction?.isSuspend == true,
simpleFunction?.isExpect == true
simpleFunction?.isExpect == true,
true // TODO: supply 'hasStableParameterNames' flag for metadata
)
if (flags != builder.flags) {
builder.flags = flags
@@ -439,7 +440,8 @@ class FirElementSerializer private constructor(
val flags = Flags.getConstructorFlags(
constructor.nonSourceAnnotations(session).isNotEmpty(),
ProtoEnumFlags.visibility(normalizeVisibility(constructor)),
!constructor.isPrimary
!constructor.isPrimary,
true // TODO: supply 'hasStableParameterNames' flag for metadata
)
if (flags != builder.flags) {
builder.flags = flags
@@ -264,7 +264,9 @@ private class FirCallArgumentsProcessor(private val function: FirFunction<*>) {
private val FirExpression.argumentName: Name?
get() = (this as? FirNamedArgumentExpression)?.name
// TODO: handle java functions
// TODO: handle functions with non-stable parameter names, see also
// org.jetbrains.kotlin.fir.serialization.FirElementSerializer.functionProto
// org.jetbrains.kotlin.fir.serialization.FirElementSerializer.constructorProto
private val FirFunction<*>.hasStableParameterNames: Boolean
get() = true
}