From b4eda7b6ebb146002a37e989fa3a3e4799b00aab Mon Sep 17 00:00:00 2001 From: Renaud Pawlak Date: Fri, 20 Mar 2020 11:46:07 +0100 Subject: [PATCH] fixed decorators with implicit args --- .../transpiler/Java2TypeScriptTranslator.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/transpiler/src/main/java/org/jsweet/transpiler/Java2TypeScriptTranslator.java b/transpiler/src/main/java/org/jsweet/transpiler/Java2TypeScriptTranslator.java index ef69daa6..3e572b3f 100644 --- a/transpiler/src/main/java/org/jsweet/transpiler/Java2TypeScriptTranslator.java +++ b/transpiler/src/main/java/org/jsweet/transpiler/Java2TypeScriptTranslator.java @@ -2121,7 +2121,7 @@ public class Java2TypeScriptTranslator extends AbstractTreePrinter { if (getAdapter().substituteExecutable(methodDecl.sym)) { return; } - + if (context.hasAnnotationType(methodDecl.sym, JSweetConfig.ANNOTATION_ERASED)) { // erased elements are ignored return; @@ -3144,11 +3144,11 @@ public class Java2TypeScriptTranslator extends AbstractTreePrinter { */ @Override public void visitVarDef(JCVariableDecl varDecl) { - + if (getAdapter().substituteVariable(varDecl.sym)) { return; } - + if (context.hasAnnotationType(varDecl.sym, JSweetConfig.ANNOTATION_ERASED)) { // erased elements are ignored return; @@ -5846,8 +5846,18 @@ public class Java2TypeScriptTranslator extends AbstractTreePrinter { print(" } "); isAnnotationScope = false; print(")"); - } else /*if (getParentOfParent() instanceof JCClassDecl)*/ { - print("()"); + } else { + boolean parens = true; + if (annotation.getAnnotationType() instanceof JCIdent) { + JCTree[] globalDecoratorFunction = context + .lookupGlobalMethod(((JCIdent) annotation.getAnnotationType()).sym.toString()); + if (globalDecoratorFunction != null) { + if(!((JCMethodDecl)globalDecoratorFunction[1]).sym.getParameters().isEmpty()) { + parens = false; + } + } + } + if(parens) print("()"); } println().printIndent(); }