Skip to content

Commit bbd31a1

Browse files
committed
GROOVY-11905: Optimize non-capturing lambdas
1 parent dda906c commit bbd31a1

File tree

5 files changed

+2123
-119
lines changed

5 files changed

+2123
-119
lines changed

src/main/java/org/codehaus/groovy/ast/ClassNode.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1452,17 +1452,21 @@ public ClassNode getOuterClass() {
14521452
return null;
14531453
}
14541454

1455+
private List<ClassNode> outerClasses;
14551456
public List<ClassNode> getOuterClasses() {
1457+
List<ClassNode> ocs = outerClasses;
1458+
if (ocs != null) return ocs;
1459+
14561460
ClassNode outer = getOuterClass();
14571461
if (outer == null) {
1458-
return Collections.emptyList();
1462+
return outerClasses = Collections.emptyList();
14591463
}
14601464
List<ClassNode> result = new ArrayList<>(4);
14611465
do {
14621466
result.add(outer);
14631467
} while ((outer = outer.getOuterClass()) != null);
14641468

1465-
return result;
1469+
return outerClasses = Collections.unmodifiableList(result);
14661470
}
14671471

14681472
/**

0 commit comments

Comments
 (0)