aboutsummaryrefslogtreecommitdiff
path: root/src/stubs/com/sun/tools/javac
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2017-11-28 00:59:37 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2017-11-28 00:59:52 +0100
commit15c44f54ccd7cc4502d12b79e6f91074e4e916bc (patch)
treea8edc6e4eacd56473b8ac7a4866c7ccad0666172 /src/stubs/com/sun/tools/javac
parentb1b49e062e5d64877891ecd327c1ffbd00df5636 (diff)
downloadlombok-15c44f54ccd7cc4502d12b79e6f91074e4e916bc.tar.gz
lombok-15c44f54ccd7cc4502d12b79e6f91074e4e916bc.tar.bz2
lombok-15c44f54ccd7cc4502d12b79e6f91074e4e916bc.zip
JDK9 support for delombok (and thus, for running the tests under JDK9).
Diffstat (limited to 'src/stubs/com/sun/tools/javac')
-rw-r--r--src/stubs/com/sun/tools/javac/code/Symbol.java85
-rw-r--r--src/stubs/com/sun/tools/javac/code/Symtab.java20
-rw-r--r--src/stubs/com/sun/tools/javac/main/JavaCompiler.java37
-rw-r--r--src/stubs/com/sun/tools/javac/main/Option.java1
4 files changed, 143 insertions, 0 deletions
diff --git a/src/stubs/com/sun/tools/javac/code/Symbol.java b/src/stubs/com/sun/tools/javac/code/Symbol.java
new file mode 100644
index 00000000..abe6c5eb
--- /dev/null
+++ b/src/stubs/com/sun/tools/javac/code/Symbol.java
@@ -0,0 +1,85 @@
+/*
+ * These are stub versions of various bits of javac-internal API (for various different versions of javac). Lombok is compiled against these.
+ */
+package com.sun.tools.javac.code;
+
+import java.lang.annotation.Annotation;
+import java.util.List;
+import java.util.Set;
+
+import javax.lang.model.element.AnnotationValue;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+import javax.lang.model.element.ElementVisitor;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.Modifier;
+import javax.lang.model.element.NestingKind;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.element.TypeParameterElement;
+import javax.lang.model.element.VariableElement;
+import javax.lang.model.type.TypeMirror;
+
+import com.sun.tools.javac.util.Name;
+
+public abstract class Symbol implements Element {
+ public Type type;
+ public Name name;
+
+ public long flags() { return 0; }
+ public boolean isStatic() { return false; }
+ public boolean isConstructor() { return false; }
+ public boolean isLocal() { return false; }
+ public Name flatName() { return null; }
+ public Name getQualifiedName() { return null; }
+ public <A extends Annotation> A[] getAnnotationsByType(Class<A> annoType) { return null; }
+ @Override public List<Attribute.Compound> getAnnotationMirrors() { return null; }
+ @Override public TypeMirror asType() { return null; }
+ public <A extends java.lang.annotation.Annotation> A getAnnotation(Class<A> annoType) { return null; }
+ @Override public Name getSimpleName() { return null; }
+ @Override public List<Symbol> getEnclosedElements() { return null; }
+ @Override public Element getEnclosingElement() { return null; }
+
+ public static abstract class TypeSymbol extends Symbol {}
+
+ public static class MethodSymbol extends Symbol implements ExecutableElement {
+ public MethodSymbol(long flags, Name name, Type type, Symbol owner) {}
+ @Override public ElementKind getKind() { return null; }
+ @Override public Set<Modifier> getModifiers() { return null; }
+ @Override public <R, P> R accept(ElementVisitor<R, P> v, P p) { return null; }
+ @Override public List<? extends TypeParameterElement> getTypeParameters() { return null; }
+ @Override public TypeMirror getReturnType() { return null; }
+ @Override public List<? extends VariableElement> getParameters() { return null; }
+ @Override public boolean isVarArgs() { return false; }
+ @Override public List<? extends TypeMirror> getThrownTypes() { return null; }
+ @Override public AnnotationValue getDefaultValue() { return null; }
+ public TypeMirror getReceiverType() { return null; }
+ public boolean isDefault() { return false; }
+ public List<VarSymbol> params() { return null; }
+ }
+
+ public static class VarSymbol extends Symbol implements VariableElement {
+ public Type type;
+ @Override public ElementKind getKind() { return null; }
+ @Override public Set<Modifier> getModifiers() { return null; }
+ @Override public <R, P> R accept(ElementVisitor<R, P> v, P p) { return null; }
+ @Override public Object getConstantValue() { return null; }
+ }
+
+ public static class ClassSymbol extends TypeSymbol implements TypeElement {
+ @Override public Name getQualifiedName() { return null; }
+ @Override public List<? extends TypeMirror> getInterfaces() { return null; }
+ @Override public TypeMirror getSuperclass() { return null; }
+ @Override public ElementKind getKind() { return null; }
+ @Override public Set<Modifier> getModifiers() { return null; }
+ @Override public NestingKind getNestingKind() { return null; }
+ @Override public <R, P> R accept(ElementVisitor<R, P> v, P p) { return null; }
+ @Override public List<? extends TypeParameterElement> getTypeParameters() { return null; }
+ }
+
+ // JDK9
+ public static class ModuleSymbol extends TypeSymbol {
+ @Override public ElementKind getKind() { return null; }
+ @Override public Set<Modifier> getModifiers() { return null; }
+ @Override public <R, P> R accept(ElementVisitor<R, P> v, P p) { return null; }
+ }
+}
diff --git a/src/stubs/com/sun/tools/javac/code/Symtab.java b/src/stubs/com/sun/tools/javac/code/Symtab.java
new file mode 100644
index 00000000..2b524e4c
--- /dev/null
+++ b/src/stubs/com/sun/tools/javac/code/Symtab.java
@@ -0,0 +1,20 @@
+/*
+ * These are stub versions of various bits of javac-internal API (for various different versions of javac). Lombok is compiled against these.
+ */
+package com.sun.tools.javac.code;
+
+import com.sun.tools.javac.code.Symbol.ClassSymbol;
+import com.sun.tools.javac.code.Symbol.ModuleSymbol;
+import com.sun.tools.javac.util.Context;
+
+public class Symtab {
+ // Shared by JDK6-9
+ public ClassSymbol methodClass;
+ public Type iterableType;
+ public Type objectType;
+ public static Symtab instance(Context context) {return null;}
+ public Type unknownType;
+
+ // JDK 9
+ public ModuleSymbol unnamedModule;
+}
diff --git a/src/stubs/com/sun/tools/javac/main/JavaCompiler.java b/src/stubs/com/sun/tools/javac/main/JavaCompiler.java
new file mode 100644
index 00000000..d0e7b38f
--- /dev/null
+++ b/src/stubs/com/sun/tools/javac/main/JavaCompiler.java
@@ -0,0 +1,37 @@
+/*
+ * These are stub versions of various bits of javac-internal API (for various different versions of javac). Lombok is compiled against these.
+ */
+package com.sun.tools.javac.main;
+
+import java.io.IOException;
+import java.util.Collection;
+import javax.annotation.processing.Processor;
+import javax.tools.JavaFileObject;
+
+import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
+import com.sun.tools.javac.util.Context;
+import com.sun.tools.javac.util.List;
+import com.sun.tools.javac.comp.Todo;
+
+public class JavaCompiler {
+ // Shared by JDK6-9
+ public boolean keepComments;
+ public boolean genEndPos;
+ public Todo todo;
+
+ public JavaCompiler(Context context) {}
+ public int errorCount() { return 0; }
+ public static String version() { return "<stub>"; }
+ public JCCompilationUnit parse(String fileName) throws IOException { return null; }
+ public List<JCCompilationUnit> enterTrees(List<JCCompilationUnit> roots) {return null;}
+
+ //JDK up to 8
+ public void initProcessAnnotations(Iterable<? extends Processor> processors) throws IOException {}
+ public JavaCompiler processAnnotations(List<JCCompilationUnit> roots, List<String> classnames) {return this;}
+
+ // JDK 9
+ public void initProcessAnnotations(Iterable<? extends Processor> processors, Collection<? extends JavaFileObject> initialFiles, Collection<String> initialClassNames) {}
+ public void processAnnotations(List<JCCompilationUnit> roots, Collection<String> classnames) {}
+ public void close() {}
+ public List<JCCompilationUnit> initModules(List<JCCompilationUnit> roots) { return null; }
+}
diff --git a/src/stubs/com/sun/tools/javac/main/Option.java b/src/stubs/com/sun/tools/javac/main/Option.java
index f3229c78..ae955772 100644
--- a/src/stubs/com/sun/tools/javac/main/Option.java
+++ b/src/stubs/com/sun/tools/javac/main/Option.java
@@ -7,4 +7,5 @@ package com.sun.tools.javac.main;
public enum Option {
;
public String text;
+ public String primaryName;
}