@@ -23,21 +23,35 @@ class Github464 {
23
23
}
24
24
}
25
25
26
+ interface IValue
26
27
@JvmInline
27
- value class ValueClass (val value : Int? )
28
+ value class ValueClass (val value : Int? ) : IValue
28
29
data class WrapperClass (val inlineField : ValueClass )
29
30
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
+
30
43
class Poko (
31
44
val foo : ValueClass ,
32
45
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>
41
55
42
56
private val zeroValue = ValueClass (0 )
43
57
private val oneValue = ValueClass (1 )
@@ -47,11 +61,13 @@ class Github464 {
47
61
foo = zeroValue,
48
62
bar = null ,
49
63
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)
55
71
)
56
72
57
73
@Test
@@ -67,17 +83,21 @@ class Github464 {
67
83
"foo" : 0,
68
84
"bar" : null,
69
85
"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" : {
73
91
"inlineField" : 0
74
92
},
75
- "grault " : null,
76
- "garply " : {
93
+ "waldo " : null,
94
+ "fred " : {
77
95
"0" : 0,
78
96
"1" : null,
79
97
"null-key" : null
80
- }
98
+ },
99
+ "xyzzy" : 0,
100
+ "plugh" : 0
81
101
}
82
102
""" .trimIndent(),
83
103
writer.writeValueAsString(target)
@@ -105,17 +125,21 @@ class Github464 {
105
125
"foo" : 0,
106
126
"bar" : "null-value",
107
127
"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" : {
111
133
"inlineField" : 0
112
134
},
113
- "grault " : "null-value",
114
- "garply " : {
135
+ "waldo " : "null-value",
136
+ "fred " : {
115
137
"0" : 0,
116
138
"1" : "null-value",
117
139
"null-key" : "null-value"
118
- }
140
+ },
141
+ "xyzzy" : 0,
142
+ "plugh" : 0
119
143
}
120
144
""" .trimIndent(),
121
145
writer.writeValueAsString(target)
0 commit comments