Skip to content

Missing space before extends/implements using ClassDeclaration#withExtends/withImplements #3289

@MBoegers

Description

@MBoegers

What version of OpenRewrite are you using?

I am using https://github.com/openrewrite/rewrite Branch: main Commit: 9d567a3

How are you running OpenRewrite?

I wrote a reproducing test.

What is the smallest, simplest way to reproduce the problem?

Find a reproducer test here https://gist.github.com/MBoegers/072b1412e9fee01b4728a61e68f44562

What did you expect to see?

Extending a class with java.util.ArrayList:
Input:

class CustomList {}

Result:

class CustomList extends java.util.ArrayList {}

A class implementing java.io.Serializable:
Input:

class CustomList {}

Result:

class CustomList implements java.io.Serializable {}

What did you see instead?

Extending a class with java.util.ArrayList:

class CustomListextends java.util.ArrayList {}

A class implementing java.io.Serializable:

class CustomListimplements java.io.Serializable {}

What is the full stack trace of any errors you encountered?

Extending a class with java.util.ArrayList:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

[Unexpected result in "de/example/CustomList.java"
diff --git a/de/example/CustomList.java b/de/example/CustomList.java
index e454a71..a71d73b 100644
--- a/de/example/CustomList.java
+++ b/de/example/CustomList.java
@@ -1,4 +1,4 @@ 
 package de.example;
 
-class CustomList extends java.util.ArrayList {
+class CustomListextends java.util.ArrayList {
 }
\ No newline at end of file
] 
expected: 
  "package de.example;
  
  class CustomList extends java.util.ArrayList {
  }"
 but was: 
  "package de.example;
  
  class CustomListextends java.util.ArrayList {
  }"
org.opentest4j.AssertionFailedError: [Unexpected result in "de/example/CustomList.java"
diff --git a/de/example/CustomList.java b/de/example/CustomList.java
index e454a71..a71d73b 100644
--- a/de/example/CustomList.java
+++ b/de/example/CustomList.java
@@ -1,4 +1,4 @@ 
 package de.example;
 
-class CustomList extends java.util.ArrayList {
+class CustomListextends java.util.ArrayList {
 }
\ No newline at end of file
] 
expected: 
  "package de.example;
  
  class CustomList extends java.util.ArrayList {
  }"
 but was: 
  "package de.example;
  
  class CustomListextends java.util.ArrayList {
  }"
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:446)
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:130)
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:125)
	at app//org.openrewrite.java.tree.WithMissPaddingReproducer$WithExtendsTest.triggerIt(WithMissPaddingReproducer.java:90)

A class implementing java.io.Serializable:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

[Unexpected result in "de/example/CustomList.java"
diff --git a/de/example/CustomList.java b/de/example/CustomList.java
index 5be0342..4514ef4 100644
--- a/de/example/CustomList.java
+++ b/de/example/CustomList.java
@@ -1,4 +1,4 @@ 
 package de.example;
 
-class CustomList implements java.io.Serializable {
+class CustomListimplements java.io.Serializable {
 }
\ No newline at end of file
] 
expected: 
  "package de.example;
  
  class CustomList implements java.io.Serializable {
  }"
 but was: 
  "package de.example;
  
  class CustomListimplements java.io.Serializable {
  }"
org.opentest4j.AssertionFailedError: [Unexpected result in "de/example/CustomList.java"
diff --git a/de/example/CustomList.java b/de/example/CustomList.java
index 5be0342..4514ef4 100644
--- a/de/example/CustomList.java
+++ b/de/example/CustomList.java
@@ -1,4 +1,4 @@ 
 package de.example;
 
-class CustomList implements java.io.Serializable {
+class CustomListimplements java.io.Serializable {
 }
\ No newline at end of file
] 
expected: 
  "package de.example;
  
  class CustomList implements java.io.Serializable {
  }"
 but was: 
  "package de.example;
  
  class CustomListimplements java.io.Serializable {
  }"
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:446)
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:130)
	at app//org.openrewrite.test.RewriteTest.rewriteRun(RewriteTest.java:125)
	at app//org.openrewrite.java.tree.WithMissPaddingReproducer$WithImplementsTest.triggerIt(WithMissPaddingReproducer.java:119)

Are you interested in contributing a fix to OpenRewrite?

Maybe after my current PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggood first issueGood for newcomerstest providedAlready replicated with a unit test, using JUnit pioneer's ExpectedToFail

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions