Skip to content

Commit

Permalink
Attempt to canonicalize enum constants (#70)
Browse files Browse the repository at this point in the history
* Attempt to canonicalize enum constants

* Just use the owner name

---------

Co-authored-by: Jesse Wilson <[email protected]>
  • Loading branch information
swankjesse and squarejesse authored Nov 20, 2024
1 parent 6480b4f commit 4bb758d
Showing 1 changed file with 4 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,10 @@ private fun enumValueArguments(
): List<Argument> {
val enumEntries = referenceClass.declarations.filterIsInstance<IrEnumEntry>()
val hasDefaultValue = parameter.defaultValue != null
val defaultEnumSymbol = parameter.defaultValue?.let { defaultValue ->
val defaultEnumSymbolName = parameter.defaultValue?.let { defaultValue ->
val expression = defaultValue.expression
when {
expression is IrGetEnumValue -> expression.symbol
expression is IrGetEnumValue -> expression.symbol.owner.name
expression is IrConst<*> && expression.value == null -> null
else -> unexpectedDefaultValue(parameter)
}
Expand All @@ -225,7 +225,7 @@ private fun enumValueArguments(
EnumValueArgument(
original = parameter,
type = parameter.type,
isDefault = hasDefaultValue && enumEntry.symbol == defaultEnumSymbol,
isDefault = hasDefaultValue && enumEntry.symbol.owner.name == defaultEnumSymbolName,
value = enumEntry,
),
)
Expand All @@ -235,7 +235,7 @@ private fun enumValueArguments(
NullArgument(
original = parameter,
type = parameter.type,
isDefault = hasDefaultValue && defaultEnumSymbol == null,
isDefault = hasDefaultValue && defaultEnumSymbolName == null,
),
)
}
Expand Down

0 comments on commit 4bb758d

Please sign in to comment.