From e81fe6d32f485f721fccd87e922addc5715a5fdd Mon Sep 17 00:00:00 2001 From: LemonBoy Date: Fri, 7 Sep 2018 01:58:49 +0200 Subject: [PATCH] Allow wCodegenDecl on lambdas (#8892) --- compiler/pragmas.nim | 2 +- tests/ccgbugs/tcodegendecllambda.nim | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 tests/ccgbugs/tcodegendecllambda.nim diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim index 7aa674800..9a344c038 100644 --- a/compiler/pragmas.nim +++ b/compiler/pragmas.nim @@ -53,7 +53,7 @@ const lambdaPragmas* = {FirstCallConv..LastCallConv, wImportc, wExportc, wNodecl, wNosideeffect, wSideeffect, wNoreturn, wDynlib, wHeader, wDeprecated, wExtern, wThread, wImportCpp, wImportObjC, wAsmNoStackFrame, - wRaises, wLocks, wTags, wGcSafe} + wRaises, wLocks, wTags, wGcSafe, wCodegenDecl} typePragmas* = {wImportc, wExportc, wDeprecated, wMagic, wAcyclic, wNodecl, wPure, wHeader, wCompilerProc, wCore, wFinal, wSize, wExtern, wShallow, wImportCpp, wImportObjC, wError, wIncompleteStruct, wByCopy, wByRef, diff --git a/tests/ccgbugs/tcodegendecllambda.nim b/tests/ccgbugs/tcodegendecllambda.nim new file mode 100644 index 000000000..6dce68db5 --- /dev/null +++ b/tests/ccgbugs/tcodegendecllambda.nim @@ -0,0 +1,13 @@ +discard """ + targets: "c cpp js" + ccodecheck: "'HELLO'" +""" + +when defined(JS): + var foo = proc(): void{.codegenDecl: "/*HELLO*/function $2($3)".} = + echo "baa" +else: + var foo = proc(): void{.codegenDecl: "/*HELLO*/$1 $2 $3".} = + echo "baa" + +foo()