diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/ProguardRules.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/ProguardRules.kt index bde3eaa..7b797f0 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/ProguardRules.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/ProguardRules.kt @@ -85,7 +85,11 @@ internal data class ProguardConfig( appendln("-if class $targetName") appendln("-keepclassmembers class ${targetClass.canonicalName} {") val allParams = targetConstructorParams.toMutableList() - val maskCount = (targetConstructorParams.size % 32) + 1 + val maskCount = if (targetConstructorParams.isEmpty()) { + 0 + } else { + (targetConstructorParams.size + 31) / 32 + } repeat(maskCount) { allParams += "int" } diff --git a/kotlin/codegen/src/test/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessorTest.kt b/kotlin/codegen/src/test/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessorTest.kt index 0de2fea..ee0c9ca 100644 --- a/kotlin/codegen/src/test/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessorTest.kt +++ b/kotlin/codegen/src/test/java/com/squareup/moshi/kotlin/codegen/JsonClassCodegenProcessorTest.kt @@ -565,7 +565,7 @@ class JsonClassCodegenProcessorTest { -keepnames class kotlin.jvm.internal.DefaultConstructorMarker -if class testPackage.DefaultParams -keepclassmembers class testPackage.DefaultParams { - public synthetic (java.lang.String,int,int,kotlin.jvm.internal.DefaultConstructorMarker); + public synthetic (java.lang.String,int,kotlin.jvm.internal.DefaultConstructorMarker); } """.trimIndent()) @@ -583,7 +583,7 @@ class JsonClassCodegenProcessorTest { -keepnames class kotlin.jvm.internal.DefaultConstructorMarker -if class testPackage.Complex -keepclassmembers class testPackage.Complex { - public synthetic (java.lang.String,java.util.List,java.lang.Object,int,int,int,int,kotlin.jvm.internal.DefaultConstructorMarker); + public synthetic (java.lang.String,java.util.List,java.lang.Object,int,kotlin.jvm.internal.DefaultConstructorMarker); } """.trimIndent())