Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing unused imports leaves extra blank line after package statement, isn't idempotent #598

Open
Allc9001 opened this issue Apr 22, 2021 · 1 comment · May be fixed by #667
Open

Removing unused imports leaves extra blank line after package statement, isn't idempotent #598

Allc9001 opened this issue Apr 22, 2021 · 1 comment · May be fixed by #667
Labels

Comments

@Allc9001
Copy link

I have a class that if I format it twice with google java formatter it will produce 2 different results. This is not what I would expect - I would think that you can format a file any number of times and google java formatter should always produce the exact same result. Is my assumption wrong ?

Here is an example:

original class:

$ cat inital_class.java
package com.sun.something;

import com.x;
import com.y;
import com.z;

public class MockedLiveServiceExecutionContext {


}
$

If I then format it I get this:

$ java -jar ./google-java-format-1.9-all-deps.jar --replace inital_class.java
$ cat inital_class.java
package com.sun.something;


public class MockedLiveServiceExecutionContext {}
$ cat inital_class.java | cksum
42955951 79
$

And if I format it again I get this (it's removed an extra space):

$ java -jar ./google-java-format-1.9-all-deps.jar --replace inital_class.java
$ cat inital_class.java
package com.sun.something;

public class MockedLiveServiceExecutionContext {}
$ cat inital_class.java | cksum
2486624596 78
$
@Allc9001 Allc9001 changed the title edge case where google java formatter not Idempotence edge case where google java formatter is not idempotence Apr 22, 2021
@Allc9001 Allc9001 changed the title edge case where google java formatter is not idempotence edge case where google java formatter is not idempotent Apr 22, 2021
@kevinb9n
Copy link
Contributor

kevinb9n commented Jun 14, 2021

Thanks for finding this. We would agree that any non-idempotence is a bug. Since it at least reaches a fixed point quickly (it's like "idempotence, once removed") it might not be a high-priority fix, but we're glad to keep this open until then.

@kevinb9n kevinb9n added the bug label Jun 14, 2021
@uc4w6c uc4w6c linked a pull request Sep 24, 2021 that will close this issue
@cushon cushon changed the title edge case where google java formatter is not idempotent Removing unused imports leaves extra blank line after package statement, isn't idempotent Dec 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants