Mercurial > hg > truffle
diff truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java @ 22326:6cec0097107f
added workaround based on JDK-8075793 to allow compilation with JDK9 javac
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 26 Oct 2015 13:28:19 +0100 |
parents | dc83cc1f94f2 |
children | 4a43dc00a654 |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Fri Oct 23 20:23:00 2015 +0200 +++ b/truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/parser/TypeSystemParser.java Mon Oct 26 13:28:19 2015 +0100 @@ -32,6 +32,7 @@ import com.oracle.truffle.dsl.processor.model.TypeCastData; import com.oracle.truffle.dsl.processor.model.TypeCheckData; import com.oracle.truffle.dsl.processor.model.TypeSystemData; + import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.Arrays; @@ -40,6 +41,7 @@ import java.util.List; import java.util.Map; import java.util.Set; + import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; @@ -60,6 +62,14 @@ return TypeSystem.class; } + /** + * @see "https://bugs.openjdk.java.net/browse/JDK-8039214" + */ + private static List<Element> newElementList(List<? extends Element> src) { + List<Element> workaround = new ArrayList<>(src); + return workaround; + } + @Override protected TypeSystemData parse(Element element, AnnotationMirror mirror) { TypeElement templateType = (TypeElement) element; @@ -94,7 +104,7 @@ verifyExclusiveMethodAnnotation(typeSystem, TypeCast.class, TypeCheck.class); - List<Element> elements = new ArrayList<>(context.getEnvironment().getElementUtils().getAllMembers(templateType)); + List<Element> elements = newElementList(context.getEnvironment().getElementUtils().getAllMembers(templateType)); List<ImplicitCastData> implicitCasts = new ImplicitCastParser(context, typeSystem).parse(elements); List<TypeCastData> casts = new TypeCastParser(context, typeSystem).parse(elements); List<TypeCheckData> checks = new TypeCheckParser(context, typeSystem).parse(elements);