diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-03-07 00:37:23 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-03-07 12:50:33 +0100 |
commit | f8bf24623c630f9eac172cd45ba4c3ea21bec30d (patch) | |
tree | dabdba2b58c40095482b86888f6c7cb77595e927 /compiler/pragmas.nim | |
parent | 2b5e48d80735be60c68023de114a586bbcc18360 (diff) | |
download | Nim-f8bf24623c630f9eac172cd45ba4c3ea21bec30d.tar.gz |
explicit default values for a leaner codegen, .cursor variables for optimization
Diffstat (limited to 'compiler/pragmas.nim')
-rw-r--r-- | compiler/pragmas.nim | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/compiler/pragmas.nim b/compiler/pragmas.nim index 364006dd1..4ef662f50 100644 --- a/compiler/pragmas.nim +++ b/compiler/pragmas.nim @@ -24,7 +24,7 @@ const wCompilerProc, wNonReloadable, wCore, wProcVar, wDeprecated, wVarargs, wCompileTime, wMerge, wBorrow, wExtern, wImportCompilerProc, wThread, wImportCpp, wImportObjC, wAsmNoStackFrame, wError, wDiscardable, wNoInit, wCodegenDecl, - wGensym, wInject, wRaises, wTags, wLocks, wDelegator, wGcSafe, wOverride, + wGensym, wInject, wRaises, wTags, wLocks, wDelegator, wGcSafe, wConstructor, wExportNims, wUsed, wLiftLocals, wStacktrace, wLinetrace} converterPragmas* = procPragmas methodPragmas* = procPragmas+{wBase}-{wImportCpp} @@ -64,7 +64,7 @@ const varPragmas* = {wImportc, wExportc, wVolatile, wRegister, wThreadVar, wNodecl, wMagic, wHeader, wDeprecated, wCompilerProc, wCore, wDynlib, wExtern, wImportCpp, wImportObjC, wError, wNoInit, wCompileTime, wGlobal, - wGensym, wInject, wCodegenDecl, wGuard, wGoto, wExportNims, wUsed} + wGensym, wInject, wCodegenDecl, wGuard, wGoto, wExportNims, wUsed, wCursor} constPragmas* = {wImportc, wExportc, wHeader, wDeprecated, wMagic, wNodecl, wExtern, wImportCpp, wImportObjC, wError, wGensym, wInject, wExportNims, wIntDefine, wStrDefine, wBoolDefine, wUsed, wCompilerProc, wCore} @@ -863,8 +863,6 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int, incl(sym.loc.flags, lfNoDecl) # implies nodecl, because otherwise header would not make sense if sym.loc.r == nil: sym.loc.r = rope(sym.name.s) - of wOverride: - sym.flags.incl sfOverriden of wNosideeffect: noVal(c, it) if sym != nil: @@ -1091,6 +1089,11 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int, invalidPragma(c, it) else: sym.flags.incl sfGoto + of wCursor: + if sym == nil or sym.kind notin {skVar, skLet}: + invalidPragma(c, it) + else: + sym.flags.incl sfCursor of wExportNims: if sym == nil: invalidPragma(c, it) else: magicsys.registerNimScriptSymbol(c.graph, sym) |