class KotlinCoroutinesReturnTypeParser implements ReturnTypeParser {

	@Override
	public Type getReturnType(MethodParameter methodParameter) {<FILL_FUNCTION_BODY>}
}

		Method method = methodParameter.getMethod();
		Type returnType = Object.class;
		assert method != null;
		Optional<Parameter> continuationParameter = Arrays.stream(method.getParameters())
				.filter(parameter -> parameter.getType().getCanonicalName().equals(Continuation.class.getCanonicalName()))
				.findFirst();
		if (continuationParameter.isPresent()) {
			Type continuationType = continuationParameter.get().getParameterizedType();
			if (continuationType instanceof ParameterizedType) {
				Type actualTypeArguments = ((ParameterizedType) continuationType).getActualTypeArguments()[0];
				if (actualTypeArguments instanceof WildcardType)
					returnType = ((WildcardType) actualTypeArguments).getLowerBounds()[0];
			}
		}
		return returnType;
	
<no_super_class>