diff --git a/kotlin/codegen/pom.xml b/kotlin/codegen/pom.xml index d5cbed9..bd1ce54 100644 --- a/kotlin/codegen/pom.xml +++ b/kotlin/codegen/pom.xml @@ -217,10 +217,6 @@ com.squareup.kotlinpoet.classinspector com.squareup.moshi.kotlinpoet.classinspector - - kotlinpoet.classinspector.elements.shaded - com.squareup.moshi.kotlinpoet.classinspector.elements.shaded - kotlinx.metadata com.squareup.moshi.kotlinx.metadata diff --git a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/DualKotlinTest.kt b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/DualKotlinTest.kt index 6a1d769..e6579a7 100644 --- a/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/DualKotlinTest.kt +++ b/kotlin/tests/src/test/kotlin/com/squareup/moshi/kotlin/DualKotlinTest.kt @@ -12,6 +12,7 @@ import com.squareup.moshi.Types import com.squareup.moshi.kotlin.reflect.KotlinJsonAdapterFactory import com.squareup.moshi.kotlin.reflect.adapter import org.assertj.core.api.Assertions.assertThat +import org.intellij.lang.annotations.Language import org.junit.Assert.fail import org.junit.Test import org.junit.runner.RunWith @@ -273,13 +274,34 @@ class DualKotlinTest(useReflection: Boolean) { val consumer = InlineConsumer(InlineClass(23)) - val expectedJson= """{"inline":{"i":23}}""" + @Language("JSON") + val expectedJson = """{"inline":{"i":23}}""" assertThat(adapter.toJson(consumer)).isEqualTo(expectedJson) + @Language("JSON") val testJson = """{"inline":{"i":42}}""" val result = adapter.fromJson(testJson)!! assertThat(result.inline.i).isEqualTo(42) } + + // Regression test for https://github.com/square/moshi/issues/955 + @Test fun backwardReferencingTypeVars() { + val adapter = moshi.adapter() + + @Language("JSON") + val testJson = """{"text":"text"}""" + + assertThat(adapter.toJson(TextAssetMetaData("text"))).isEqualTo(testJson) + + val result = adapter.fromJson(testJson)!! + assertThat(result.text).isEqualTo("text") + } + + @JsonClass(generateAdapter = true) + class TextAssetMetaData(val text: String) : AssetMetaData() + class TextAsset : Asset() + abstract class Asset> + abstract class AssetMetaData> } // Has to be outside since inline classes are only allowed on top level diff --git a/pom.xml b/pom.xml index a26d3cf..48628c2 100644 --- a/pom.xml +++ b/pom.xml @@ -36,8 +36,8 @@ 0.2 1.16.0 2.1.0 - 1.3.40 - 1.4.0 + 1.3.50 + 1.4.1 0.1.0 3.1.0