# HG changeset patch # User Jaroslav Tulach # Date 1361816852 -3600 # Node ID caedc26b6dbfe69778778b78f53ed89c1fa0306a # Parent 227192d826825c3cca20bfcb0fbbf5e802c8608b# Parent 70ff060e1674197dd8ed1bb0a5d861fb24a2505b Merge in the detection of long return type diff -r 227192d82682 -r caedc26b6dbf core/src/main/java/org/apidesign/bck2brwsr/core/impl/JavaScriptProcesor.java --- a/core/src/main/java/org/apidesign/bck2brwsr/core/impl/JavaScriptProcesor.java Mon Feb 25 19:10:36 2013 +0100 +++ b/core/src/main/java/org/apidesign/bck2brwsr/core/impl/JavaScriptProcesor.java Mon Feb 25 19:27:32 2013 +0100 @@ -24,6 +24,7 @@ import javax.annotation.processing.AbstractProcessor; import javax.annotation.processing.Completion; import javax.annotation.processing.Completions; +import javax.annotation.processing.Messager; import javax.annotation.processing.Processor; import javax.annotation.processing.RoundEnvironment; import javax.lang.model.element.AnnotationMirror; @@ -32,6 +33,7 @@ import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.VariableElement; +import javax.lang.model.type.TypeKind; import javax.tools.Diagnostic; import org.apidesign.bck2brwsr.core.JavaScriptBody; import org.openide.util.lookup.ServiceProvider; @@ -51,6 +53,7 @@ @Override public boolean process(Set annotations, RoundEnvironment roundEnv) { + final Messager msg = processingEnv.getMessager(); for (Element e : roundEnv.getElementsAnnotatedWith(JavaScriptBody.class)) { if (e.getKind() != ElementKind.METHOD && e.getKind() != ElementKind.CONSTRUCTOR) { continue; @@ -64,7 +67,10 @@ } String[] arr = jsb.args(); if (params.size() != arr.length) { - processingEnv.getMessager().printMessage(Diagnostic.Kind.ERROR, "Number of args arguments does not match real arguments!", e); + msg.printMessage(Diagnostic.Kind.ERROR, "Number of args arguments does not match real arguments!", e); + } + if (ee.getReturnType().getKind() == TypeKind.LONG) { + msg.printMessage(Diagnostic.Kind.WARNING, "Don't return long. Return double and convert it to long in Java code.", e); } } return true;