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 <adityawasan55@gmail.com>
This commit is contained in:
Aditya Wasan 2021-03-24 01:08:29 +05:30
parent 13b3abdcd4
commit 44d220b74c
No known key found for this signature in database
GPG key ID: 6D6DF3BF15DE79B5
3 changed files with 44 additions and 5 deletions

View file

@ -20,6 +20,21 @@ private fun stringEnumMapper(stringEnum: StringEnum): Int {
} }
@Composable @Composable
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String { actual fun stringValue(enum: StringEnum): String {
return stringResource(stringEnumMapper(enum), formatArgs) 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)
}

View file

@ -3,4 +3,13 @@ package dev.msfjarvis.lobsters.utils
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
@Composable @Composable
expect fun stringValue(enum: StringEnum, vararg formatArgs: Any): String 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

View file

@ -18,6 +18,21 @@ private fun stringEnumMapper(stringEnum: StringEnum): String {
} }
@Composable @Composable
actual fun stringValue(enum: StringEnum, vararg formatArgs: Any): String { actual fun stringValue(enum: StringEnum): String {
return stringEnumMapper(enum).format(formatArgs) 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)
}