diff --git a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt index ef52e4b..997138e 100644 --- a/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt +++ b/kotlin/codegen/src/main/java/com/squareup/moshi/kotlin/codegen/api/AdapterGenerator.kt @@ -36,8 +36,8 @@ import com.squareup.moshi.JsonReader import com.squareup.moshi.JsonWriter import com.squareup.moshi.Moshi import com.squareup.moshi.internal.Util -import java.lang.reflect.Constructor import com.squareup.moshi.kotlin.codegen.JsonClassCodegenProcessor +import java.lang.reflect.Constructor import java.lang.reflect.Type private val MOSHI_UTIL = Util::class.asClassName() @@ -226,13 +226,8 @@ internal class AdapterGenerator( result.addStatement("%N.endObject()", readerParam) var separator = "\n" - var useDefaultsConstructor = false - val parameterProperties = propertyList.asSequence() - .filter { it.hasConstructorParameter } - .onEach { - useDefaultsConstructor = useDefaultsConstructor || it.hasDefault - } - .toList() + val parameterProperties = propertyList.filter { it.hasConstructorParameter } + val useDefaultsConstructor = parameterProperties.any { it.hasDefault } val resultName = nameAllocator.newName("result") val hasNonConstructorProperties = nonTransientProperties.any { !it.hasConstructorParameter } diff --git a/moshi/src/main/resources/META-INF/proguard/moshi.pro b/moshi/src/main/resources/META-INF/proguard/moshi.pro index b349827..7c47e0f 100644 --- a/moshi/src/main/resources/META-INF/proguard/moshi.pro +++ b/moshi/src/main/resources/META-INF/proguard/moshi.pro @@ -22,8 +22,8 @@ # We can't _just_ keep the defaults constructor because Proguard/R8's spec doesn't allow wildcard # matching preceding parameters. -keepnames class kotlin.jvm.internal.DefaultConstructorMarker --keepclassmembers @com.squareup.moshi.JsonClass class * { - (...); +-keepclassmembers @com.squareup.moshi.JsonClass @kotlin.Metadata class * { + synthetic (...); } # Retain generated JsonAdapters if annotated type is retained.