in compiler/src/main/kotlin/motif/compiler/XFunSpec.kt [34:53]
fun overriding(
executableElement: XExecutableElement,
enclosing: XType,
env: XProcessingEnv,
): FunSpec.Builder {
val methodElement =
(executableElement as? XMethodElement)
?: throw AssertionError("Element is not a method: $executableElement")
val method = methodElement.asMemberOf(enclosing)
val returnType =
if (method.returnType.typeArguments.isNotEmpty()) {
method.returnType
} else {
// ensures that type arguments get loaded
env.requireType(method.returnType.typeName)
}
return overriding(methodElement, method.parameterTypes).returns(javaToKotlinType(returnType))
}