Skip to content

Presence of a private backing field breaks having multiple Java setters #2992

@owengray-google

Description

@owengray-google

Describe the bug
The second assert fails:

@Test
    fun `Can have two setters in Java`() {
        var classlike = """
            |public class HasTwoSettersAndNoPrivateBackingField {
            |   public String setFoo(String foo) { return "Setter One"; }
            |   public String setFoo(String foo, String anotherArg) { return "Setter Two"; }
            |}
        """.render(java = true).page("HasTwoSettersAndNoPrivateBackingField").data.content
        var setListenerMethods =
            classlike.data.publicFunctionsSummary.data.items.filter { it.name() == "setFoo" }
        assertThat(setListenerMethods.size).isEqualTo(2)

        classlike = """
            |public class HasTwoSettersAndPrivateBackingField {
            |   private String foo;
            |   public String setFoo(String foo) { return "Setter One"; }
            |   public String setFoo(String foo, String anotherArg) { return "Setter Two"; }
            |}
        """.render(java = true).page("HasTwoSettersAndPrivateBackingField").data.content
        setListenerMethods =
            classlike.data.publicFunctionsSummary.data.items.filter { it.name() == "setFoo" }
        assertThat(setListenerMethods.size).isEqualTo(2)
    }

Expected behaviour
The second assert passes

Screenshots
Screenshot 2023-05-03 at 7 15 37 AM
Screenshot 2023-05-03 at 7 16 02 AM

Installation

  • Dokka version: 1.8.10-dev-203

This is very related to #2603

Metadata

Metadata

Assignees

Labels

bugfeedback: GoogleAn issue/PR submitted by colleagues at Google, most likely related to the Android API reference docslanguage: JavaIssue/PR related to the Java language feature/analysis/docs

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions