Skip to content

Commit c22cfd1

Browse files
authored
Mark methods overridden from classes as isOverride() (#5412)
1 parent 67987cf commit c22cfd1

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

rewrite-java-test/src/test/java/org/openrewrite/java/JavaTypeTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,4 +179,28 @@ public J.MethodInvocation visitMethodInvocation(J.MethodInvocation method, Objec
179179
)
180180
);
181181
}
182+
183+
@Issue("https://github.com/apache/maven/pull/2291")
184+
@Test
185+
void overrideFromClass() {
186+
rewriteRun(
187+
java(
188+
"""
189+
import java.io.FileNotFoundException;
190+
class A {
191+
@Override
192+
public String toString() {
193+
return "A";
194+
}
195+
}
196+
""",
197+
spec -> spec.afterRecipe(cu -> assertThat(
198+
((J.MethodDeclaration)
199+
cu.getClasses().get(0)
200+
.getBody().getStatements().get(0))
201+
.getMethodType().isOverride())
202+
.isTrue())
203+
)
204+
);
205+
}
182206
}

rewrite-java/src/main/java/org/openrewrite/java/tree/JavaType.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,6 +1392,11 @@ public FullyQualified getDeclaringType() {
13921392

13931393
Stack<FullyQualified> interfaces = new Stack<>();
13941394
interfaces.addAll(declaringType.getInterfaces());
1395+
FullyQualified supertype = declaringType.getSupertype();
1396+
while (supertype != null) {
1397+
interfaces.add(supertype);
1398+
supertype = supertype.getSupertype();
1399+
}
13951400

13961401
while (!interfaces.isEmpty()) {
13971402
FullyQualified declaring = interfaces.pop();

0 commit comments

Comments
 (0)