diff --git a/knee-compiler-plugin/src/main/kotlin/utils/PoetUtils.kt b/knee-compiler-plugin/src/main/kotlin/utils/PoetUtils.kt index 1704da2..03ebd27 100644 --- a/knee-compiler-plugin/src/main/kotlin/utils/PoetUtils.kt +++ b/knee-compiler-plugin/src/main/kotlin/utils/PoetUtils.kt @@ -203,7 +203,7 @@ fun IrValueParameter.defaultValueForCodegen(functionExpects: List) { return when (val kind = expression.kind) { is IrConstKind.Null -> CodeBlock.of("null") - is IrConstKind.String -> CodeBlock.of(kind.valueOf(expression)) + is IrConstKind.String -> CodeBlock.of("%S", kind.valueOf(expression)) else -> CodeBlock.of("%L", kind.valueOf(expression)) // is IrConstKind.Boolean -> CodeBlock.of(kind.valueOf(expression).toString()) // is IrConstKind.Int -> CodeBlock.of(kind.valueOf(expression).toString()) diff --git a/tests/test-misc/src/androidInstrumentedTest/kotlin/io/deepmedia/tools/knee/tests/DefaultValuesTests.kt b/tests/test-misc/src/androidInstrumentedTest/kotlin/io/deepmedia/tools/knee/tests/DefaultValuesTests.kt index 56535fb..81efbbc 100644 --- a/tests/test-misc/src/androidInstrumentedTest/kotlin/io/deepmedia/tools/knee/tests/DefaultValuesTests.kt +++ b/tests/test-misc/src/androidInstrumentedTest/kotlin/io/deepmedia/tools/knee/tests/DefaultValuesTests.kt @@ -21,4 +21,9 @@ class DefaultValuesTests { ConcreteClassWithDefaultValues().withNull() } + @Test + fun testDefaultValue_emptyString() { + emptyStringDefaultValue() + } + } diff --git a/tests/test-misc/src/backendMain/kotlin/DefaultValuesDefinitions.kt b/tests/test-misc/src/backendMain/kotlin/DefaultValuesDefinitions.kt index b451f9c..a4fc6b3 100644 --- a/tests/test-misc/src/backendMain/kotlin/DefaultValuesDefinitions.kt +++ b/tests/test-misc/src/backendMain/kotlin/DefaultValuesDefinitions.kt @@ -18,4 +18,8 @@ interface BaseInterfaceWithDefaultValues { override fun withNull(foo: Int?) { } +} + +@Knee +fun emptyStringDefaultValue(foo: String = "") { } \ No newline at end of file