diff options
-rw-r--r-- | changelog.md | 5 | ||||
-rw-r--r-- | compiler/commands.nim | 6 | ||||
-rw-r--r-- | compiler/options.nim | 1 | ||||
-rw-r--r-- | compiler/semtypes.nim | 3 |
4 files changed, 13 insertions, 2 deletions
diff --git a/changelog.md b/changelog.md index 07533c2d2..694d9635f 100644 --- a/changelog.md +++ b/changelog.md @@ -248,7 +248,10 @@ ``` - `getImpl` on enum type symbols now returns field syms instead of idents. This helps with writing typed macros. Old behavior for backwards compatibility can be restored - with command line switch `--useVersion:1.0`. + with `--useVersion:1.0`. +- The typed AST for proc headers will now have the arguments be syms instead of idents. + This helps with writing typed macros. Old behaviour for backwards compatibility can + be restored with `--useVersion:1.0`. - ``let`` statements can now be used without a value if declared with ``importc``/``importcpp``/``importjs``/``importobjc``. - The keyword `from` is now usable as an operator. diff --git a/compiler/commands.nim b/compiler/commands.nim index 3c6cc5919..b9199c1b0 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -883,6 +883,12 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo; undefSymbol(conf.symbols, "nimDoesntTrackDefects") ast.eqTypeFlags.excl {tfGcSafe, tfNoSideEffect} conf.globalOptions.incl optNimV1Emulation + of "1.2": + defineSymbol(conf.symbols, "NimMajor", "1") + defineSymbol(conf.symbols, "NimMinor", "2") + # always be compatible with 1.2.100: + defineSymbol(conf.symbols, "NimPatch", "100") + conf.globalOptions.incl optNimV12Emulation else: localError(conf, info, "unknown Nim version; currently supported values are: {1.0}") of "benchmarkvm": diff --git a/compiler/options.nim b/compiler/options.nim index 2f796afe6..3be7c5099 100644 --- a/compiler/options.nim +++ b/compiler/options.nim @@ -94,6 +94,7 @@ type # please make sure we have under 32 options optProduceAsm # produce assembler code optPanics # turn panics (sysFatal) into a process termination optNimV1Emulation # emulate Nim v1.0 + optNimV12Emulation # emulate Nim v1.2 optSourcemap optProfileVM # enable VM profiler optEnableDeepCopy # ORC specific: enable 'deepcopy' for all types. diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 9bb7673fa..8ef393839 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -1288,7 +1288,8 @@ proc semProcTypeNode(c: PContext, n, genericParams: PNode, addParamOrResult(c, arg, kind) styleCheckDef(c.config, a[j].info, arg) onDef(a[j].info, arg) - a[j] = newSymNode(arg) + if {optNimV1Emulation, optNimV12Emulation} * c.config.globalOptions == {}: + a[j] = newSymNode(arg) var r: PType if n[0].kind != nkEmpty: |