aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/lombok/javac/JavacAST.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/core/lombok/javac/JavacAST.java b/src/core/lombok/javac/JavacAST.java
index bb5cfc61..86ff7646 100644
--- a/src/core/lombok/javac/JavacAST.java
+++ b/src/core/lombok/javac/JavacAST.java
@@ -79,6 +79,8 @@ public class JavacAST extends AST<JavacAST, JavacNode, JCTree> {
private final Log log;
private final ErrorLog errorLogger;
private final Context context;
+ private static final URI NOT_CALCULATED_MARKER = URI.create("https://projectlombok.org/not/calculated");
+ private URI memoizedAbsoluteFileLocation = NOT_CALCULATED_MARKER;
/**
* Creates a new JavacAST of the provided Compilation Unit.
@@ -102,7 +104,10 @@ public class JavacAST extends AST<JavacAST, JavacNode, JCTree> {
}
@Override public URI getAbsoluteFileLocation() {
- return getAbsoluteFileLocation((JCCompilationUnit) top().get());
+ if (memoizedAbsoluteFileLocation == NOT_CALCULATED_MARKER) {
+ memoizedAbsoluteFileLocation = getAbsoluteFileLocation((JCCompilationUnit) top().get());
+ }
+ return memoizedAbsoluteFileLocation;
}
public static URI getAbsoluteFileLocation(JCCompilationUnit cu) {