Skip to content

CodeWriter generates wrong nullable type in function body #1759

Open
@Tapchicoma

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:

To debug generator run ./gradlew generateAPI -Dorg.gradle.debug=true and after build start attach debugger.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions