From 44d220b74c595e27900fbe2fc07b1ef7da4956d5 Mon Sep 17 00:00:00 2001 From: Aditya Wasan Date: Wed, 24 Mar 2021 01:08:29 +0530 Subject: [PATCH] revertme: hack to make StringValue compile Currently compose does not support default values with actual/expect functions. When we use vararg it creates a default emptyArray if we do not provide an argument which causes the compose compiler to throw an ISE. We can revert this commit once https://youtrack.jetbrains.com/issue/KT-44499 is merged. Signed-off-by: Aditya Wasan --- .../msfjarvis/lobsters/utils/StringValue.kt | 19 +++++++++++++++++-- .../msfjarvis/lobsters/utils/StringValue.kt | 11 ++++++++++- .../msfjarvis/lobsters/utils/StringValue.kt | 19 +++++++++++++++++-- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/common/src/androidMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt b/common/src/androidMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt index 65745047..698e9871 100644 --- a/common/src/androidMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt +++ b/common/src/androidMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt @@ -20,6 +20,21 @@ private fun stringEnumMapper(stringEnum: StringEnum): Int { } @Composable -actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String { - return stringResource(stringEnumMapper(enum), formatArgs) +actual fun stringValue(enum: StringEnum): String { + return stringResource(stringEnumMapper(enum)) } + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any): String { + return stringResource(stringEnumMapper(enum), arg1) +} + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any, arg2: Any): String { + return stringResource(stringEnumMapper(enum), arg1, arg2) +} + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any, arg2: Any, arg3: Any): String { + return stringResource(stringEnumMapper(enum), arg1, arg2, arg3) +} \ No newline at end of file diff --git a/common/src/commonMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt b/common/src/commonMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt index a7834c8d..2c1d1567 100644 --- a/common/src/commonMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt +++ b/common/src/commonMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt @@ -3,4 +3,13 @@ package dev.msfjarvis.lobsters.utils import androidx.compose.runtime.Composable @Composable -expect fun stringValue(enum: StringEnum, vararg formatArgs: Any): String \ No newline at end of file +expect fun stringValue(enum: StringEnum): String + +@Composable +expect fun stringValue(enum: StringEnum, arg1: Any): String + +@Composable +expect fun stringValue(enum: StringEnum, arg1: Any, arg2: Any): String + +@Composable +expect fun stringValue(enum: StringEnum, arg1: Any, arg2: Any, arg3: Any): String \ No newline at end of file diff --git a/common/src/jvmMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt b/common/src/jvmMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt index ebd94f86..4a143821 100644 --- a/common/src/jvmMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt +++ b/common/src/jvmMain/kotlin/dev/msfjarvis/lobsters/utils/StringValue.kt @@ -18,6 +18,21 @@ private fun stringEnumMapper(stringEnum: StringEnum): String { } @Composable -actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String { - return stringEnumMapper(enum).format(formatArgs) +actual fun stringValue(enum: StringEnum): String { + return stringEnumMapper(enum) } + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any): String { + return stringEnumMapper(enum).format(arg1) +} + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any, arg2: Any): String { + return stringEnumMapper(enum).format(arg1, arg2) +} + +@Composable +actual fun stringValue(enum: StringEnum, arg1: Any, arg2: Any, arg3: Any): String { + return stringEnumMapper(enum).format(arg1, arg2, arg3) +} \ No newline at end of file