@@ -23,21 +23,35 @@ class Github464 {
2323 }
2424 }
2525
26+ interface IValue
2627 @JvmInline
27- value class ValueClass (val value : Int? )
28+ value class ValueClass (val value : Int? ) : IValue
2829 data class WrapperClass (val inlineField : ValueClass )
2930
31+ abstract class AbstractGetter <T > {
32+ abstract val qux: T
33+
34+ fun <T > getPlugh () = qux
35+ }
36+ interface IGetter <T > {
37+ val quux: T
38+
39+ fun <T > getXyzzy () = quux
40+ }
41+
42+
3043 class Poko (
3144 val foo : ValueClass ,
3245 val bar : ValueClass ? ,
33- @JvmField
34- val baz : ValueClass ,
35- val qux : Collection <ValueClass ?>,
36- val quux : Array <ValueClass ?>,
37- val corge : WrapperClass ,
38- val grault : WrapperClass ? ,
39- val garply : Map <ValueClass , ValueClass ?>
40- )
46+ val baz : IValue ,
47+ override val qux : ValueClass ,
48+ override val quux : ValueClass ,
49+ val corge : Collection <ValueClass ?>,
50+ val grault : Array <ValueClass ?>,
51+ val garply : WrapperClass ,
52+ val waldo : WrapperClass ? ,
53+ val fred : Map <ValueClass , ValueClass ?>
54+ ) : AbstractGetter<ValueClass>(), IGetter<ValueClass>
4155
4256 private val zeroValue = ValueClass (0 )
4357 private val oneValue = ValueClass (1 )
@@ -47,11 +61,13 @@ class Github464 {
4761 foo = zeroValue,
4862 bar = null ,
4963 baz = zeroValue,
50- qux = listOf (zeroValue, null ),
51- quux = arrayOf(zeroValue, null ),
52- corge = WrapperClass (zeroValue),
53- grault = null ,
54- garply = mapOf (zeroValue to zeroValue, oneValue to null , nullValue to nullValue)
64+ qux = zeroValue,
65+ quux = zeroValue,
66+ corge = listOf (zeroValue, null ),
67+ grault = arrayOf(zeroValue, null ),
68+ garply = WrapperClass (zeroValue),
69+ waldo = null ,
70+ fred = mapOf (zeroValue to zeroValue, oneValue to null , nullValue to nullValue)
5571 )
5672
5773 @Test
@@ -67,17 +83,21 @@ class Github464 {
6783 "foo" : 0,
6884 "bar" : null,
6985 "baz" : 0,
70- "qux" : [ 0, null ],
71- "quux" : [ 0, null ],
72- "corge" : {
86+ "qux" : 0,
87+ "quux" : 0,
88+ "corge" : [ 0, null ],
89+ "grault" : [ 0, null ],
90+ "garply" : {
7391 "inlineField" : 0
7492 },
75- "grault " : null,
76- "garply " : {
93+ "waldo " : null,
94+ "fred " : {
7795 "0" : 0,
7896 "1" : null,
7997 "null-key" : null
80- }
98+ },
99+ "xyzzy" : 0,
100+ "plugh" : 0
81101 }
82102 """ .trimIndent(),
83103 writer.writeValueAsString(target)
@@ -105,17 +125,21 @@ class Github464 {
105125 "foo" : 0,
106126 "bar" : "null-value",
107127 "baz" : 0,
108- "qux" : [ 0, "null-value" ],
109- "quux" : [ 0, "null-value" ],
110- "corge" : {
128+ "qux" : 0,
129+ "quux" : 0,
130+ "corge" : [ 0, "null-value" ],
131+ "grault" : [ 0, "null-value" ],
132+ "garply" : {
111133 "inlineField" : 0
112134 },
113- "grault " : "null-value",
114- "garply " : {
135+ "waldo " : "null-value",
136+ "fred " : {
115137 "0" : 0,
116138 "1" : "null-value",
117139 "null-key" : "null-value"
118- }
140+ },
141+ "xyzzy" : 0,
142+ "plugh" : 0
119143 }
120144 """ .trimIndent(),
121145 writer.writeValueAsString(target)
0 commit comments