Mercurial > hg > truffle
diff graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java @ 21494:f5b49d881909
Truffle-DSL: move internal @ExpectError annotation from public API to the test package only; share expect error handling between new processors.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 26 May 2015 20:04:08 +0200 |
parents | bb51b9a142b3 |
children | 31fc2fce38f3 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java Tue May 26 20:04:07 2015 +0200 +++ b/graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/LanguageRegistrationProcessor.java Tue May 26 20:04:08 2015 +0200 @@ -22,30 +22,18 @@ */ package com.oracle.truffle.dsl.processor; -import com.oracle.truffle.api.TruffleLanguage; +import java.io.*; +import java.util.*; + +import javax.annotation.processing.*; +import javax.lang.model.*; +import javax.lang.model.element.*; +import javax.lang.model.type.*; +import javax.tools.Diagnostic.Kind; +import javax.tools.*; + +import com.oracle.truffle.api.*; import com.oracle.truffle.api.TruffleLanguage.Registration; -import com.oracle.truffle.api.dsl.ExpectError; -import java.io.IOException; -import java.io.OutputStream; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; -import javax.annotation.processing.AbstractProcessor; -import javax.annotation.processing.RoundEnvironment; -import javax.annotation.processing.SupportedAnnotationTypes; -import javax.lang.model.SourceVersion; -import javax.lang.model.element.AnnotationMirror; -import javax.lang.model.element.AnnotationValue; -import javax.lang.model.element.Element; -import javax.lang.model.element.ElementKind; -import javax.lang.model.element.ExecutableElement; -import javax.lang.model.element.Modifier; -import javax.lang.model.element.TypeElement; -import javax.lang.model.type.TypeMirror; -import javax.tools.Diagnostic.Kind; -import javax.tools.FileObject; -import javax.tools.StandardLocation; @SupportedAnnotationTypes("com.oracle.truffle.api.*") public final class LanguageRegistrationProcessor extends AbstractProcessor { @@ -123,35 +111,14 @@ } void assertNoErrorExpected(Element e) { - TypeElement eee = processingEnv.getElementUtils().getTypeElement(ExpectError.class.getName()); - for (AnnotationMirror am : e.getAnnotationMirrors()) { - if (am.getAnnotationType().asElement().equals(eee)) { - processingEnv.getMessager().printMessage(Kind.ERROR, "Expected an error, but none found!", e); - } - } + ExpectError.assertNoErrorExpected(processingEnv, e); } void emitError(String msg, Element e) { - TypeElement eee = processingEnv.getElementUtils().getTypeElement(ExpectError.class.getName()); - for (AnnotationMirror am : e.getAnnotationMirrors()) { - if (am.getAnnotationType().asElement().equals(eee)) { - Map<? extends ExecutableElement, ? extends AnnotationValue> vals = am.getElementValues(); - if (vals.size() == 1) { - AnnotationValue av = vals.values().iterator().next(); - if (av.getValue() instanceof List) { - List<?> arr = (List<?>) av.getValue(); - for (Object o : arr) { - if (o instanceof AnnotationValue) { - AnnotationValue ov = (AnnotationValue) o; - if (msg.equals(ov.getValue())) { - return; - } - } - } - } - } - } + if (ExpectError.isExpectedError(processingEnv, e, msg)) { + return; } processingEnv.getMessager().printMessage(Kind.ERROR, msg, e); } + }