Skip to content

Commit 6dfc8ee

Browse files
author
Adrien Poupard
committed
Migrate kotlin TypeUtils methods to java KotlinUtils for improved Kotlin type handling and consistency.
Signed-off-by: Adrien Poupard <[email protected]>
1 parent 76537c1 commit 6dfc8ee

16 files changed

+248
-165
lines changed

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinConsumerFlowWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import reactor.core.publisher.Flux;
2626

2727
import org.springframework.cloud.function.context.config.FunctionUtils;
28-
import org.springframework.cloud.function.context.config.TypeUtils;
28+
import org.springframework.cloud.function.utils.KotlinUtils;
2929
import org.springframework.core.ResolvableType;
3030

3131

@@ -40,7 +40,7 @@ public final class KotlinConsumerFlowWrapper
4040
implements KotlinFunctionWrapper, Consumer<Flux<Object>>, Function1<Flow<Object>, Unit> {
4141

4242
public static Boolean isValid(Type functionType, Type[] types) {
43-
return FunctionUtils.isValidKotlinConsumer(functionType, types) && TypeUtils.isFlowType(types[0]);
43+
return FunctionUtils.isValidKotlinConsumer(functionType, types) && KotlinUtils.isFlowType(types[0]);
4444
}
4545

4646
public static KotlinConsumerFlowWrapper asRegistrationFunction(String functionName, Object kotlinLambdaTarget,
@@ -75,7 +75,7 @@ public String getName() {
7575

7676
@Override
7777
public void accept(Flux<Object> props) {
78-
Flow<Object> flow = TypeUtils.convertToFlow(props);
78+
Flow<Object> flow = KotlinUtils.convertToFlow(props);
7979
invoke(flow);
8080
}
8181

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinConsumerPlainWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import kotlin.jvm.functions.Function1;
2424

2525
import org.springframework.cloud.function.context.config.FunctionUtils;
26-
import org.springframework.cloud.function.context.config.TypeUtils;
26+
import org.springframework.cloud.function.utils.KotlinUtils;
2727
import org.springframework.core.ResolvableType;
2828

2929
/**
@@ -36,7 +36,7 @@
3636
public final class KotlinConsumerPlainWrapper implements KotlinFunctionWrapper, Consumer<Object>, Function1<Object, Unit> {
3737

3838
public static Boolean isValid(Type functionType, Type[] types) {
39-
return FunctionUtils.isValidKotlinConsumer(functionType, types) && !TypeUtils.isFlowType(types[0]);
39+
return FunctionUtils.isValidKotlinConsumer(functionType, types) && !KotlinUtils.isFlowType(types[0]);
4040
}
4141

4242
public static KotlinConsumerPlainWrapper asRegistrationFunction(String functionName, Object kotlinLambdaTarget,

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinConsumerSuspendFlowWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2727
import org.springframework.cloud.function.context.config.FunctionUtils;
28-
import org.springframework.cloud.function.context.config.TypeUtils;
28+
import org.springframework.cloud.function.utils.KotlinUtils;
2929
import org.springframework.core.ResolvableType;
3030

3131
/**
@@ -38,12 +38,12 @@
3838
public final class KotlinConsumerSuspendFlowWrapper implements KotlinFunctionWrapper, Consumer<Flux<Object>>, Function1<Flux<Object>, Unit> {
3939

4040
public static Boolean isValid(Type functionType, Type[] types) {
41-
return FunctionUtils.isValidKotlinSuspendConsumer(functionType, types) && TypeUtils.isFlowType(types[0]);
41+
return FunctionUtils.isValidKotlinSuspendConsumer(functionType, types) && KotlinUtils.isFlowType(types[0]);
4242
}
4343

4444
public static KotlinConsumerSuspendFlowWrapper asRegistrationFunction(String functionName,
4545
Object kotlinLambdaTarget, Type[] propsTypes) {
46-
ResolvableType continuationArgType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
46+
ResolvableType continuationArgType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
4747
ResolvableType functionType = ResolvableType.forClassWithGenerics(Consumer.class,
4848
ResolvableType.forClassWithGenerics(Flux.class, continuationArgType));
4949
return new KotlinConsumerSuspendFlowWrapper(kotlinLambdaTarget, functionType, functionName);

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinConsumerSuspendPlainWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -37,12 +37,12 @@
3737
public final class KotlinConsumerSuspendPlainWrapper implements KotlinFunctionWrapper, Consumer<Object>, Function1<Object, Unit> {
3838

3939
public static Boolean isValid(Type functionType, Type[] types) {
40-
return FunctionUtils.isValidKotlinSuspendConsumer(functionType, types) && !TypeUtils.isFlowType(types[0]);
40+
return FunctionUtils.isValidKotlinSuspendConsumer(functionType, types) && !KotlinUtils.isFlowType(types[0]);
4141
}
4242

4343
public static KotlinConsumerSuspendPlainWrapper asRegistrationFunction(String functionName,
4444
Object kotlinLambdaTarget, Type[] propsTypes) {
45-
ResolvableType continuationArgType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
45+
ResolvableType continuationArgType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
4646
ResolvableType functionType = ResolvableType.forClassWithGenerics(Consumer.class, continuationArgType);
4747
return new KotlinConsumerSuspendPlainWrapper(kotlinLambdaTarget, functionType, functionName);
4848
}

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionFlowToFlowWrapper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import reactor.core.publisher.Flux;
2525

2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -39,7 +39,7 @@ public final class KotlinFunctionFlowToFlowWrapper
3939

4040
public static Boolean isValid(Type functionType, Type[] types) {
4141
return FunctionUtils.isValidKotlinFunction(functionType, types) && types.length == 2
42-
&& TypeUtils.isFlowType(types[0]) && TypeUtils.isFlowType(types[1]);
42+
&& KotlinUtils.isFlowType(types[0]) && KotlinUtils.isFlowType(types[1]);
4343
}
4444

4545
public static KotlinFunctionFlowToFlowWrapper asRegistrationFunction(String functionName, Object kotlinLambdaTarget,
@@ -73,16 +73,16 @@ public Flux<Object> apply(Flux<Object> input) {
7373

7474
@Override
7575
public Flux<Object> invoke(Flux<Object> arg0) {
76-
Flow<Object> flow = TypeUtils.convertToFlow(arg0);
76+
Flow<Object> flow = KotlinUtils.convertToFlow(arg0);
7777
if (kotlinLambdaTarget instanceof Function1) {
7878
Function1<Flow<Object>, Flow<Object>> target = (Function1<Flow<Object>, Flow<Object>>) kotlinLambdaTarget;
7979
Flow<Object> result = target.invoke(flow);
80-
return TypeUtils.convertToFlux(result);
80+
return KotlinUtils.convertToFlux(result);
8181
}
8282
else if (kotlinLambdaTarget instanceof Function<?, ?>) {
8383
Function<Flow<Object>, Flow<Object>> target = (Function<Flow<Object>, Flow<Object>>) kotlinLambdaTarget;
8484
Flow<Object> result = target.apply(flow);
85-
return TypeUtils.convertToFlux(result);
85+
return KotlinUtils.convertToFlux(result);
8686
}
8787
else {
8888
throw new IllegalArgumentException("Unsupported target type: " + kotlinLambdaTarget.getClass());

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionFlowToPlainWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import reactor.core.publisher.Flux;
2525

2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -39,7 +39,7 @@ public final class KotlinFunctionFlowToPlainWrapper
3939

4040
public static Boolean isValid(Type functionType, Type[] types) {
4141
return FunctionUtils.isValidKotlinFunction(functionType, types) && types.length == 2
42-
&& TypeUtils.isFlowType(types[0]) && !TypeUtils.isFlowType(types[1]);
42+
&& KotlinUtils.isFlowType(types[0]) && !KotlinUtils.isFlowType(types[1]);
4343
}
4444

4545
public static KotlinFunctionFlowToPlainWrapper asRegistrationFunction(String functionName,
@@ -64,7 +64,7 @@ public KotlinFunctionFlowToPlainWrapper(Object kotlinLambdaTarget, ResolvableTyp
6464

6565
@Override
6666
public Object invoke(Flux<Object> arg0) {
67-
Flow<Object> flow = TypeUtils.convertToFlow(arg0);
67+
Flow<Object> flow = KotlinUtils.convertToFlow(arg0);
6868
if (kotlinLambdaTarget instanceof Function<?, ?>) {
6969
Function<Flow<Object>, Object> target = (Function<Flow<Object>, Object>) kotlinLambdaTarget;
7070
return target.apply(flow);

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionPlainToFlowWrapper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import reactor.core.publisher.Flux;
2525

2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -40,7 +40,7 @@ public final class KotlinFunctionPlainToFlowWrapper
4040

4141
public static Boolean isValid(Type functionType, Type[] types) {
4242
return FunctionUtils.isValidKotlinFunction(functionType, types) && types.length == 2
43-
&& !TypeUtils.isFlowType(types[0]) && TypeUtils.isFlowType(types[1]);
43+
&& !KotlinUtils.isFlowType(types[0]) && KotlinUtils.isFlowType(types[1]);
4444
}
4545

4646
public static KotlinFunctionPlainToFlowWrapper asRegistrationFunction(String functionName,
@@ -68,12 +68,12 @@ public Flux<Object> invoke(Object arg0) {
6868
if (kotlinLambdaTarget instanceof Function<?, ?>) {
6969
Function<Object, Flow<Object>> target = (Function<Object, Flow<Object>>) kotlinLambdaTarget;
7070
Flow<Object> result = target.apply(arg0);
71-
return TypeUtils.convertToFlux(result);
71+
return KotlinUtils.convertToFlux(result);
7272
}
7373
else if (kotlinLambdaTarget instanceof Function1) {
7474
Function1<Object, Flow<Object>> target = (Function1<Object, Flow<Object>>) kotlinLambdaTarget;
7575
Flow<Object> result = target.invoke(arg0);
76-
return TypeUtils.convertToFlux(result);
76+
return KotlinUtils.convertToFlux(result);
7777
}
7878
else {
7979
throw new IllegalArgumentException("Unsupported target type: " + kotlinLambdaTarget.getClass());

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionSuspendFlowToFlowWrapper.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2727
import org.springframework.cloud.function.context.config.FunctionUtils;
28-
import org.springframework.cloud.function.context.config.TypeUtils;
28+
import org.springframework.cloud.function.utils.KotlinUtils;
2929
import org.springframework.core.ResolvableType;
3030

3131
/**
@@ -41,13 +41,13 @@ public final class KotlinFunctionSuspendFlowToFlowWrapper
4141

4242
public static Boolean isValid(Type functionType, Type[] types) {
4343
return FunctionUtils.isValidKotlinSuspendFunction(functionType, types) && types.length == 3
44-
&& TypeUtils.isFlowType(types[0]) && TypeUtils.isContinuationFlowType(types[1]);
44+
&& KotlinUtils.isFlowType(types[0]) && KotlinUtils.isContinuationFlowType(types[1]);
4545
}
4646

4747
public static KotlinFunctionSuspendFlowToFlowWrapper asRegistrationFunction(String functionName,
4848
Object kotlinLambdaTarget, Type[] propsTypes) {
49-
ResolvableType argType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
50-
ResolvableType returnType = TypeUtils.getSuspendingFunctionReturnType(propsTypes[1]);
49+
ResolvableType argType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
50+
ResolvableType returnType = KotlinUtils.getSuspendingFunctionReturnType(propsTypes[1]);
5151
ResolvableType functionType = ResolvableType.forClassWithGenerics(Function.class,
5252
ResolvableType.forClassWithGenerics(Flux.class, argType),
5353
ResolvableType.forClassWithGenerics(Flux.class, returnType));
@@ -68,7 +68,7 @@ public KotlinFunctionSuspendFlowToFlowWrapper(Object kotlinLambdaTarget, Resolva
6868

6969
@Override
7070
public Flux<Object> invoke(Flux<Object> arg0) {
71-
Flow<Object> flow = TypeUtils.convertToFlow(arg0);
71+
Flow<Object> flow = KotlinUtils.convertToFlow(arg0);
7272
return CoroutinesUtils.invokeSuspendingFlowFunction(kotlinLambdaTarget, flow);
7373
}
7474

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionSuspendFlowToPlainWrapper.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2727
import org.springframework.cloud.function.context.config.FunctionUtils;
28-
import org.springframework.cloud.function.context.config.TypeUtils;
28+
import org.springframework.cloud.function.utils.KotlinUtils;
2929
import org.springframework.core.ResolvableType;
3030

3131
/**
@@ -40,14 +40,14 @@ public final class KotlinFunctionSuspendFlowToPlainWrapper
4040

4141
public static Boolean isValid(Type functionType, Type[] types) {
4242
return FunctionUtils.isValidKotlinSuspendFunction(functionType, types) && types.length == 3
43-
&& TypeUtils.isFlowType(types[0]) && TypeUtils.isContinuationType(types[1])
44-
&& !TypeUtils.isContinuationFlowType(types[1]);
43+
&& KotlinUtils.isFlowType(types[0]) && KotlinUtils.isContinuationType(types[1])
44+
&& !KotlinUtils.isContinuationFlowType(types[1]);
4545
}
4646

4747
public static KotlinFunctionSuspendFlowToPlainWrapper asRegistrationFunction(String functionName,
4848
Object kotlinLambdaTarget, Type[] propsTypes) {
49-
ResolvableType argType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
50-
ResolvableType result = TypeUtils.getSuspendingFunctionReturnType(propsTypes[1]);
49+
ResolvableType argType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
50+
ResolvableType result = KotlinUtils.getSuspendingFunctionReturnType(propsTypes[1]);
5151
ResolvableType functionType = ResolvableType.forClassWithGenerics(Function.class,
5252
ResolvableType.forClassWithGenerics(Flux.class, argType), result);
5353
return new KotlinFunctionSuspendFlowToPlainWrapper(kotlinLambdaTarget, functionType, functionName);
@@ -73,7 +73,7 @@ public ResolvableType getResolvableType() {
7373

7474
@Override
7575
public Object invoke(Flux<Object> arg0) {
76-
Flow<Object> flow = TypeUtils.convertToFlow(arg0);
76+
Flow<Object> flow = KotlinUtils.convertToFlow(arg0);
7777
return CoroutinesUtils.invokeSuspendingFlowFunction(kotlinLambdaTarget, flow);
7878
}
7979

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionSuspendPlainToFlowWrapper.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -40,13 +40,13 @@ public final class KotlinFunctionSuspendPlainToFlowWrapper
4040

4141
public static Boolean isValid(Type functionType, Type[] types) {
4242
return FunctionUtils.isValidKotlinSuspendFunction(functionType, types) && types.length == 3
43-
&& !TypeUtils.isFlowType(types[0]) && TypeUtils.isContinuationFlowType(types[1]);
43+
&& !KotlinUtils.isFlowType(types[0]) && KotlinUtils.isContinuationFlowType(types[1]);
4444
}
4545

4646
public static KotlinFunctionSuspendPlainToFlowWrapper asRegistrationFunction(String functionName,
4747
Object kotlinLambdaTarget, Type[] propsTypes) {
48-
ResolvableType argType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
49-
ResolvableType returnType = TypeUtils.getSuspendingFunctionReturnType(propsTypes[1]);
48+
ResolvableType argType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
49+
ResolvableType returnType = KotlinUtils.getSuspendingFunctionReturnType(propsTypes[1]);
5050
ResolvableType functionType = ResolvableType.forClassWithGenerics(Function.class, argType,
5151
ResolvableType.forClassWithGenerics(Flux.class, returnType));
5252
return new KotlinFunctionSuspendPlainToFlowWrapper(kotlinLambdaTarget, functionType, functionName);

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinFunctionSuspendPlainToPlainWrapper.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

3030
/**
@@ -43,8 +43,8 @@ public static Boolean isValid(Type functionType, Type[] types) {
4343

4444
public static KotlinFunctionSuspendPlainToPlainWrapper asRegistrationFunction(String functionName,
4545
Object kotlinLambdaTarget, Type[] propsTypes) {
46-
ResolvableType argType = TypeUtils.getSuspendingFunctionArgType(propsTypes[0]);
47-
ResolvableType returnType = TypeUtils.getSuspendingFunctionReturnType(propsTypes[1]);
46+
ResolvableType argType = KotlinUtils.getSuspendingFunctionArgType(propsTypes[0]);
47+
ResolvableType returnType = KotlinUtils.getSuspendingFunctionReturnType(propsTypes[1]);
4848
ResolvableType functionType = ResolvableType.forClassWithGenerics(Function.class, argType,
4949
ResolvableType.forClassWithGenerics(Flux.class, returnType));
5050
return new KotlinFunctionSuspendPlainToPlainWrapper(kotlinLambdaTarget, functionType, functionName);

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinSupplierFlowWrapper.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,9 @@
2424
import reactor.core.publisher.Flux;
2525

2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929

30-
import static org.springframework.cloud.function.context.config.TypeUtils.convertToFlux;
3130

3231
/**
3332
* The KotlinSupplierFlowWrapper class serves as a wrapper to integrate Kotlin's Function0
@@ -41,7 +40,7 @@ public final class KotlinSupplierFlowWrapper
4140
implements KotlinFunctionWrapper, Supplier<Flux<Object>>, Function0<Flow<Object>> {
4241

4342
public static Boolean isValid(Type functionType, Type[] types) {
44-
return FunctionUtils.isValidKotlinSupplier(functionType) && types.length == 1 && TypeUtils.isFlowType(types[0]);
43+
return FunctionUtils.isValidKotlinSupplier(functionType) && types.length == 1 && KotlinUtils.isFlowType(types[0]);
4544
}
4645

4746
public static KotlinSupplierFlowWrapper asRegistrationFunction(String functionName, Object kotlinLambdaTarget,
@@ -78,7 +77,7 @@ public String getName() {
7877
@Override
7978
public Flux<Object> get() {
8079
Flow<Object> result = invoke();
81-
return convertToFlux(result);
80+
return KotlinUtils.convertToFlux(result);
8281
}
8382

8483
@Override

spring-cloud-function-context/src/main/java/org/springframework/cloud/function/context/wrapper/KotlinSupplierSuspendWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import org.springframework.cloud.function.context.config.CoroutinesUtils;
2626
import org.springframework.cloud.function.context.config.FunctionUtils;
27-
import org.springframework.cloud.function.context.config.TypeUtils;
27+
import org.springframework.cloud.function.utils.KotlinUtils;
2828
import org.springframework.core.ResolvableType;
2929
import org.springframework.util.ObjectUtils;
3030

@@ -43,7 +43,7 @@ public static Boolean isValid(Type functionType, Type[] types) {
4343

4444
public static KotlinSupplierSuspendWrapper asRegistrationFunction(String functionName, Object kotlinLambdaTarget,
4545
Type[] propsTypes) {
46-
ResolvableType returnType = TypeUtils.getSuspendingFunctionReturnType(propsTypes[0]);
46+
ResolvableType returnType = KotlinUtils.getSuspendingFunctionReturnType(propsTypes[0]);
4747
ResolvableType functionType = ResolvableType.forClassWithGenerics(Supplier.class,
4848
ResolvableType.forClassWithGenerics(Flux.class, returnType));
4949
return new KotlinSupplierSuspendWrapper(kotlinLambdaTarget, functionType, functionName);

0 commit comments

Comments
 (0)