Skip to content

Unexpected new line when assigning to a class member #638

Closed
@mgansler

Description

@mgansler

Prettier-Java 2.5.0

# Options (if any):
--print-width 140

Input:

class Foo {

    public Foo(String a, String b, String c, String d, String e, String f) {}
}

public class MyPrettierTest {

    private Foo foo;

    @BeforeEach
    void beforeEach() {
        foo = new Foo("aaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccc", "dddddddddddddddddddd", "eeeeeeeeeeeeeeeeeeee", "ffffffffffffffffffff");
        final Foo bar = new Foo("aaaaaaaaaaaaaaaaaaaa", "bbbbbbbbbbbbbbbbbbbb", "cccccccccccccccccccc", "dddddddddddddddddddd", "eeeeeeeeeeeeeeeeeeee", "ffffffffffffffffffff");
    }
}

Output:

    void beforeEach() {
        foo =
            new Foo(
                "aaaaaaaaaaaaaaaaaaaa",
                "bbbbbbbbbbbbbbbbbbbb",
                "cccccccccccccccccccc",
                "dddddddddddddddddddd",
                "eeeeeeeeeeeeeeeeeeee",
                "ffffffffffffffffffff"
            );
        final Foo bar = new Foo(
            "aaaaaaaaaaaaaaaaaaaa",
            "bbbbbbbbbbbbbbbbbbbb",
            "cccccccccccccccccccc",
            "dddddddddddddddddddd",
            "eeeeeeeeeeeeeeeeeeee",
            "ffffffffffffffffffff"
        );
    }

Expected behavior:

    void beforeEach() {
        foo = new Foo(
            "aaaaaaaaaaaaaaaaaaaa",
            "bbbbbbbbbbbbbbbbbbbb",
            "cccccccccccccccccccc",
            "dddddddddddddddddddd",
            "eeeeeeeeeeeeeeeeeeee",
            "ffffffffffffffffffff"
        );
        final Foo bar = new Foo(
            "aaaaaaaaaaaaaaaaaaaa",
            "bbbbbbbbbbbbbbbbbbbb",
            "cccccccccccccccccccc",
            "dddddddddddddddddddd",
            "eeeeeeeeeeeeeeeeeeee",
            "ffffffffffffffffffff"
        );
    }

I would expect no new line in both cases, weather I assign to a class member or local variable. Personally, I wouldn't mind too much but we are also using SonarLint which reports a false positive (Unwritten field) for

foo =
    new Foo(...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions