Recursively box/unbox nested inline value classes
See gh-34592 Signed-off-by: Dmitry Sulman <dmitry.sulman@gmail.com>
This commit is contained in:
committed by
Sébastien Deleuze
parent
c6a9aa59a3
commit
0c2ba4e38e
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2024 the original author or authors.
|
||||
* Copyright 2002-2025 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -109,12 +109,25 @@ class InvocableHandlerMethodKotlinTests {
|
||||
Assertions.assertThat(value).isEqualTo(1L)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun nestedValueClass() {
|
||||
composite.addResolver(StubArgumentResolver(Long::class.java, 1L))
|
||||
val value = getInvocable(ValueClassHandler::nestedValueClass.javaMethod!!).invokeForRequest(request, null)
|
||||
Assertions.assertThat(value).isEqualTo(1L)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun valueClassReturnValue() {
|
||||
val value = getInvocable(ValueClassHandler::valueClassReturnValue.javaMethod!!).invokeForRequest(request, null)
|
||||
Assertions.assertThat(value).isEqualTo("foo")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun nestedValueClassReturnValue() {
|
||||
val value = getInvocable(ValueClassHandler::nestedValueClassReturnValue.javaMethod!!).invokeForRequest(request, null)
|
||||
Assertions.assertThat(value).isEqualTo("foo")
|
||||
}
|
||||
|
||||
@Test
|
||||
fun resultOfUnitReturnValue() {
|
||||
val value = getInvocable(ValueClassHandler::resultOfUnitReturnValue.javaMethod!!).invokeForRequest(request, null)
|
||||
@@ -273,10 +286,14 @@ class InvocableHandlerMethodKotlinTests {
|
||||
|
||||
fun valueClassReturnValue() = StringValueClass("foo")
|
||||
|
||||
fun nestedValueClassReturnValue() = NestedStringValueClass(StringValueClass("foo"))
|
||||
|
||||
fun resultOfUnitReturnValue() = Result.success(Unit)
|
||||
|
||||
fun longValueClass(limit: LongValueClass) = limit.value
|
||||
|
||||
fun nestedValueClass(limit: ULongValueClass) = limit.value
|
||||
|
||||
fun doubleValueClass(limit: DoubleValueClass = DoubleValueClass(3.1)) = limit.value
|
||||
|
||||
fun valueClassWithInit(valueClass: ValueClassWithInit) = valueClass
|
||||
@@ -358,9 +375,15 @@ class InvocableHandlerMethodKotlinTests {
|
||||
@JvmInline
|
||||
value class StringValueClass(val value: String)
|
||||
|
||||
@JvmInline
|
||||
value class NestedStringValueClass(val value: StringValueClass)
|
||||
|
||||
@JvmInline
|
||||
value class LongValueClass(val value: Long)
|
||||
|
||||
@JvmInline
|
||||
value class ULongValueClass(val value: ULong)
|
||||
|
||||
@JvmInline
|
||||
value class DoubleValueClass(val value: Double)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user