diff --git a/src/main/java/spoon/support/modelobs/ChangeCollector.java b/src/main/java/spoon/support/modelobs/ChangeCollector.java index 52efdccbfc6..1d957feb8b3 100644 --- a/src/main/java/spoon/support/modelobs/ChangeCollector.java +++ b/src/main/java/spoon/support/modelobs/ChangeCollector.java @@ -138,6 +138,9 @@ public void exit(CtElement element) { } private static class Scanner extends EarlyTerminatingScanner { + Scanner() { + setVisitCompilationUnitContent(true); + } CtRole getScannedRole() { return scannedRole; } diff --git a/src/test/java/spoon/test/change/ChangeCollectorTest.java b/src/test/java/spoon/test/change/ChangeCollectorTest.java index 7ef6a36ebb9..c78f86a7b57 100644 --- a/src/test/java/spoon/test/change/ChangeCollectorTest.java +++ b/src/test/java/spoon/test/change/ChangeCollectorTest.java @@ -63,6 +63,9 @@ public void testChangeCollector() throws Exception { assertEquals(new HashSet<>(Arrays.asList(CtRole.CONTAINED_TYPE)), changeCollector.getChanges(ctClass.getPackage())); assertEquals(new HashSet<>(Arrays.asList()), changeCollector.getDirectChanges(ctClass.getPackage())); + assertEquals(new HashSet<>(Arrays.asList(CtRole.DECLARED_TYPE)), changeCollector.getChanges(ctClass.getPosition().getCompilationUnit())); + assertEquals(new HashSet<>(Arrays.asList()), changeCollector.getDirectChanges(ctClass.getPosition().getCompilationUnit())); + assertEquals(new HashSet<>(Arrays.asList(CtRole.NAME)), changeCollector.getChanges(ctClass)); assertEquals(new HashSet<>(Arrays.asList(CtRole.NAME)), changeCollector.getDirectChanges(ctClass));