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