GH-1251 Fix regression with generic type discovery

Resolves #1251
This commit is contained in:
Oleg Zhurakousky
2025-03-24 21:44:54 +01:00
parent 00ec64d7f9
commit 773f6d7fea

View File

@@ -249,9 +249,6 @@ public final class FunctionTypeUtils {
ResolvableType functionType = ResolvableType.forClass(functionalClass).as(Supplier.class); ResolvableType functionType = ResolvableType.forClass(functionalClass).as(Supplier.class);
typeToReturn = GenericTypeResolver.resolveType(functionType.getType(), functionalClass); typeToReturn = GenericTypeResolver.resolveType(functionType.getType(), functionalClass);
} }
// else {
// typeToReturn = TypeResolver.reify(functionalClass);
// }
return typeToReturn; return typeToReturn;
} }
@@ -389,20 +386,12 @@ public final class FunctionTypeUtils {
else { else {
resolvableInputType = resolvableFunctionType.as(Consumer.class); resolvableInputType = resolvableFunctionType.as(Consumer.class);
} }
if (resolvableInputType.getType() instanceof ParameterizedType) {
ResolvableType genericClass0 = resolvableInputType.getGeneric(0); return resolvableInputType.getGeneric(0).getType();
Type inputType;
if (functionType instanceof Class functionTypeClass) {
inputType = genericClass0.getType();
inputType = (inputType instanceof TypeVariable) ? Object.class : GenericTypeResolver.resolveType(inputType, functionTypeClass);
}
else if (functionType instanceof ParameterizedType) {
inputType = GenericTypeResolver.resolveType(genericClass0.getType(), getRawType(functionType));
} }
else { else {
inputType = resolvableInputType.getType(); return Object.class;
} }
return inputType instanceof TypeVariable ? Object.class : inputType;
} }
@SuppressWarnings("rawtypes") @SuppressWarnings("rawtypes")