Skip to content

Commit 18321e5

Browse files
authored
[epilogue] Fix epilogue with package-info files (#7749)
1 parent b31fd17 commit 18321e5

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

epilogue-processor/src/main/java/edu/wpi/first/epilogue/processor/AnnotationProcessor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@ public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment
6868
customLoggers.putAll(processCustomLoggers(roundEnv, customLogger));
6969
});
7070

71+
// Get all root types (classes and interfaces), excluding packages and modules
7172
roundEnv.getRootElements().stream()
73+
.filter(e -> e instanceof TypeElement)
7274
.filter(
7375
e ->
7476
processingEnv

epilogue-processor/src/test/java/edu/wpi/first/epilogue/processor/AnnotationProcessorTest.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1974,6 +1974,37 @@ public void update(EpilogueBackend backend, Example object) {
19741974
assertLoggerGenerates(source, expectedRootLogger);
19751975
}
19761976

1977+
@Test
1978+
void doesNotBreakWithPackageInfo() {
1979+
String source =
1980+
"""
1981+
package example;
1982+
1983+
import edu.wpi.first.epilogue.*;
1984+
1985+
@Logged
1986+
class Example {}
1987+
""";
1988+
1989+
String packageInfo = """
1990+
package example;
1991+
""";
1992+
1993+
Compilation compilation =
1994+
javac()
1995+
.withOptions(kJavaVersionOptions)
1996+
.withProcessors(new AnnotationProcessor())
1997+
.compile(
1998+
JavaFileObjects.forSourceString("example.Example", source),
1999+
JavaFileObjects.forSourceString("example.package-info", packageInfo));
2000+
2001+
assertThat(compilation).succeeded();
2002+
compilation.generatedSourceFiles().stream()
2003+
.filter(jfo -> jfo.getName().contains("Example"))
2004+
.findFirst()
2005+
.orElseThrow(() -> new IllegalStateException("Logger file was not generated!"));
2006+
}
2007+
19772008
private void assertCompilationError(
19782009
String message, long lineNumber, long col, Diagnostic<? extends JavaFileObject> diagnostic) {
19792010
assertAll(

0 commit comments

Comments
 (0)