diff --git a/pom.xml b/pom.xml
index e00df6a5..a3d6907a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
1.8
4.12
- 1.3.72
+ 1.4.10
com/fasterxml/jackson/module/kotlin
@@ -138,6 +138,11 @@
test-compile
+
+
+ -Xinline-classes
+
+
@@ -145,10 +150,10 @@
org.apache.maven.plugins
maven-surefire-plugin
-
- com/fasterxml/jackson/**/failing/*
-
-
+
+ com/fasterxml/jackson/**/failing/*
+
+
@@ -171,11 +176,11 @@
true
-
-
- de.jjohannes
- gradle-module-metadata-maven-plugin
-
+
+
+ de.jjohannes
+ gradle-module-metadata-maven-plugin
+
diff --git a/src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/failing/Github356.kt b/src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/failing/Github356.kt
new file mode 100644
index 00000000..08fc8c88
--- /dev/null
+++ b/src/test/kotlin/com/fasterxml/jackson/module/kotlin/test/failing/Github356.kt
@@ -0,0 +1,33 @@
+package com.fasterxml.jackson.module.kotlin.test.failing
+
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize
+import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
+import com.fasterxml.jackson.module.kotlin.readValue
+import org.junit.Test
+import kotlin.test.assertEquals
+
+class TestGithub356 {
+ private val mapper = jacksonObjectMapper()
+
+ @Test
+ fun deserializeInlineClass() {
+ val original = ClassWithInlineMember(InlineClass("bar"))
+ assertEquals(original, mapper.readValue(mapper.writeValueAsString(original)))
+ }
+
+ @Test
+ fun serializeInlineClass() {
+ val original = ClassWithInlineMember(InlineClass("bar"))
+ assertEquals("""{"inlineClassProperty":"bar"}""", mapper.writeValueAsString(original))
+ }
+}
+
+@Suppress("EXPERIMENTAL_FEATURE_WARNING") // Enabled in test-compile
+inline class InlineClass(val value: String)
+
+@JsonDeserialize(builder = ClassWithInlineMember.JacksonBuilder::class)
+data class ClassWithInlineMember(val inlineClassProperty: InlineClass) {
+ data class JacksonBuilder constructor(val inlineClassProperty: String) {
+ fun build() = ClassWithInlineMember(InlineClass(inlineClassProperty))
+ }
+}