aboutsummaryrefslogtreecommitdiff
path: root/src/utils/lombok/eclipse
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/lombok/eclipse')
-rw-r--r--src/utils/lombok/eclipse/Eclipse.java20
-rw-r--r--src/utils/lombok/eclipse/Java14Bits.java11
2 files changed, 27 insertions, 4 deletions
diff --git a/src/utils/lombok/eclipse/Eclipse.java b/src/utils/lombok/eclipse/Eclipse.java
index 31979955..8af481b9 100644
--- a/src/utils/lombok/eclipse/Eclipse.java
+++ b/src/utils/lombok/eclipse/Eclipse.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2019 The Project Lombok Authors.
+ * Copyright (C) 2009-2021 The Project Lombok Authors.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@@ -60,6 +60,13 @@ public class Eclipse {
*/
public static final int ECLIPSE_DO_NOT_TOUCH_FLAG = ASTNode.Bit24;
+ /* This section includes flags that are in ecj files too new vs. the deps we compile against.
+ * Specifically: org.eclipse.jdt.internal.compiler.ast.ASTNode and org.eclipse.jdt.internal.compiler.lookup.ExtraCompilerModifiers
+ */
+ public static final int AccRecord = ASTNode.Bit25; // ECM.AccRecord
+ public static final int IsCanonicalConstructor = ASTNode.Bit10; // ASTNode.IsCanonicalConstructor
+ public static final int IsImplicit = ASTNode.Bit11; // ASTNode.IsImplicit
+
private static final Pattern SPLIT_AT_DOT = Pattern.compile("\\.");
private Eclipse() {
@@ -239,9 +246,14 @@ public class Eclipse {
for (Field f : CompilerOptions.class.getDeclaredFields()) {
try {
- if (f.getName().startsWith("VERSION_1_")) {
- ecjCompilerVersionCached = Math.max(ecjCompilerVersionCached, Integer.parseInt(f.getName().substring("VERSION_1_".length())));
- }
+ String fName = f.getName();
+ String versionNumber = null;
+ if (fName.startsWith("VERSION_1_")) {
+ versionNumber = fName.substring("VERSION_1_".length());
+ } else if (fName.startsWith("VERSION_")) {
+ versionNumber = fName.substring("VERSION_".length());
+ } else continue;
+ ecjCompilerVersionCached = Math.max(ecjCompilerVersionCached, Integer.parseInt(versionNumber));
} catch (Exception ignore) {}
}
diff --git a/src/utils/lombok/eclipse/Java14Bits.java b/src/utils/lombok/eclipse/Java14Bits.java
new file mode 100644
index 00000000..c7e00c39
--- /dev/null
+++ b/src/utils/lombok/eclipse/Java14Bits.java
@@ -0,0 +1,11 @@
+package lombok.eclipse;
+
+import org.eclipse.jdt.internal.compiler.ast.ASTNode;
+
+public class Java14Bits {
+ private Java14Bits() { }
+
+ public static final int AccRecord = ASTNode.Bit25;
+ public static final int IsCanonicalConstructor = ASTNode.Bit10; // record declaration
+ public static final int IsImplicit = ASTNode.Bit11; // record declaration / generated statements in compact constructor
+}