1.1 --- a/core/src/main/java/org/apidesign/bck2brwsr/core/impl/JavaScriptProcesor.java Mon Feb 25 19:10:36 2013 +0100
1.2 +++ b/core/src/main/java/org/apidesign/bck2brwsr/core/impl/JavaScriptProcesor.java Mon Feb 25 19:27:32 2013 +0100
1.3 @@ -24,6 +24,7 @@
1.4 import javax.annotation.processing.AbstractProcessor;
1.5 import javax.annotation.processing.Completion;
1.6 import javax.annotation.processing.Completions;
1.7 +import javax.annotation.processing.Messager;
1.8 import javax.annotation.processing.Processor;
1.9 import javax.annotation.processing.RoundEnvironment;
1.10 import javax.lang.model.element.AnnotationMirror;
1.11 @@ -32,6 +33,7 @@
1.12 import javax.lang.model.element.ExecutableElement;
1.13 import javax.lang.model.element.TypeElement;
1.14 import javax.lang.model.element.VariableElement;
1.15 +import javax.lang.model.type.TypeKind;
1.16 import javax.tools.Diagnostic;
1.17 import org.apidesign.bck2brwsr.core.JavaScriptBody;
1.18 import org.openide.util.lookup.ServiceProvider;
1.19 @@ -51,6 +53,7 @@
1.20
1.21 @Override
1.22 public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
1.23 + final Messager msg = processingEnv.getMessager();
1.24 for (Element e : roundEnv.getElementsAnnotatedWith(JavaScriptBody.class)) {
1.25 if (e.getKind() != ElementKind.METHOD && e.getKind() != ElementKind.CONSTRUCTOR) {
1.26 continue;
1.27 @@ -64,7 +67,10 @@
1.28 }
1.29 String[] arr = jsb.args();
1.30 if (params.size() != arr.length) {
1.31 - processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Number of args arguments does not match real arguments!", e);
1.32 + msg.printMessage(Diagnostic.Kind.ERROR, "Number of args arguments does not match real arguments!", e);
1.33 + }
1.34 + if (ee.getReturnType().getKind() == TypeKind.LONG) {
1.35 + msg.printMessage(Diagnostic.Kind.WARNING, "Don't return long. Return double and convert it to long in Java code.", e);
1.36 }
1.37 }
1.38 return true;