aboutsummaryrefslogtreecommitdiff
path: root/src/utils/lombok/javac
diff options
context:
space:
mode:
Diffstat (limited to 'src/utils/lombok/javac')
-rw-r--r--src/utils/lombok/javac/Java14Flags.java26
-rw-r--r--src/utils/lombok/javac/Javac.java6
2 files changed, 32 insertions, 0 deletions
diff --git a/src/utils/lombok/javac/Java14Flags.java b/src/utils/lombok/javac/Java14Flags.java
new file mode 100644
index 00000000..0d565dca
--- /dev/null
+++ b/src/utils/lombok/javac/Java14Flags.java
@@ -0,0 +1,26 @@
+package lombok.javac;
+
+public class Java14Flags {
+ private Java14Flags() { }
+
+ /**
+ * Flag to indicate that a class is a record. The flag is also used to mark fields that are
+ * part of the state vector of a record and to mark the canonical constructor
+ */
+ public static final long RECORD = 1L<<61; // ClassSymbols, MethodSymbols and VarSymbols
+
+ /**
+ * Flag to mark a record constructor as a compact one
+ */
+ public static final long COMPACT_RECORD_CONSTRUCTOR = 1L<<51; // MethodSymbols only
+
+ /**
+ * Flag to mark a record field that was not initialized in the compact constructor
+ */
+ public static final long UNINITIALIZED_FIELD= 1L<<51; // VarSymbols only
+
+ /** Flag is set for compiler-generated record members, it could be appplied to
+ * accessors and fields
+ */
+ public static final int GENERATED_MEMBER = 1<<24; // MethodSymbols and VarSymbols
+}
diff --git a/src/utils/lombok/javac/Javac.java b/src/utils/lombok/javac/Javac.java
index 27926507..c0bda93c 100644
--- a/src/utils/lombok/javac/Javac.java
+++ b/src/utils/lombok/javac/Javac.java
@@ -75,6 +75,12 @@ public class Javac {
private static final AtomicInteger compilerVersion = new AtomicInteger(-1);
+ /* This section includes flags that would ordinarily be in Flags, but which are 'too new' (we don't compile against older versions of javac for compatibility). */
+ public static final long RECORD = 1L << 61; // ClassSymbols, MethodSymbols, VarSymbols (Marks types as being records, as well as the 'fields' in the compact declaration, and the canonical constructor)
+ public static final long COMPACT_RECORD_CONSTRUCTOR = 1L << 51; // MethodSymbols (the 'implicit' many-args constructor that records have)
+ public static final long UNINITIALIZED_FIELD = 1L << 51; // VarSymbols (To identify fields that the compact record constructor won't initialize)
+ public static final long GENERATED_MEMBER = 1L << 24; // MethodSymbols, VarSymbols (marks methods and the constructor generated in records)
+
/**
* Returns the version of this java compiler, i.e. the JDK that it shipped in. For example, for javac v1.7, this returns {@code 7}.
*/