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);
     }
+
 }