fix: resolve function type from non-parameterized Kotlin class that implements a function type

Resolves #925
Resolves #940
Resolves #956
Resolves #964

Resolves #982
This commit is contained in:
Lars Bilger
2023-01-06 13:00:15 +01:00
committed by Oleg Zhurakousky
parent 8a5eafa58f
commit 2be70c5829

View File

@@ -75,16 +75,14 @@ public abstract class FunctionContextUtils {
param = registry.getType(actualName); param = registry.getType(actualName);
} }
if (param != null) { if (param == null) {
return param; param = definition.getResolvableType().getType();
} }
else {
Type t = definition.getResolvableType().getType(); if (!(param instanceof ParameterizedType) && beanClass != null) {
if (!(t instanceof ParameterizedType) && beanClass != null) { return FunctionTypeUtils.discoverFunctionTypeFromClass(beanClass);
return FunctionTypeUtils.discoverFunctionTypeFromClass(definition.getBeanClass());
}
return t;
} }
return param;
} }
public static Class<?>[] getParamTypesFromBeanDefinitionFactory(Class<?> factory, public static Class<?>[] getParamTypesFromBeanDefinitionFactory(Class<?> factory,