Open
Description
Describe the bug
Consider I want to generate the following code:
class Test {
fun doSomething(): Test? {
// do something
return something as Test?
}
}
kotlinpoet actually generates the following code:
class Test {
fun doSomething(): Test? {
// do something
return something as ?Test
}
}
I highly suspect that this line should be also called on !deferred
condition. Otherwise ?
is emitted immediately and the type is emitted somewhat later.
To Reproduce
I failed to reproduce this issue with unit test – it seems I lack the knowledge when deferred
can be in true
state and it is not happening in the simple case.
Please use the following steps to reproduce on a real project:
- Checkout https://github.com/Tapchicoma/godot-kotlin-jvm/tree/update-kotlin-1921
- enter
kt
directory and run./gradlew generateAPI
task - observe error in
Control
,Mesh
,RenderingDevice
andNode
generated classes.
To debug generator run ./gradlew generateAPI -Dorg.gradle.debug=true
and after build start attach debugger.
Activity