From 27e1fbe7dbefd1846c5c801205881b2ce65c233d Mon Sep 17 00:00:00 2001 From: Andreas Rumpf Date: Wed, 15 Aug 2018 16:56:32 +0200 Subject: [PATCH] implement the --nilseqs switch properly --- compiler/commands.nim | 1 + lib/system.nim | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/commands.nim b/compiler/commands.nim index aae976038..1e5384f16 100644 --- a/compiler/commands.nim +++ b/compiler/commands.nim @@ -278,6 +278,7 @@ proc testCompileOption*(conf: ConfigRef; switch: string, info: TLineInfo): bool of "implicitstatic": result = contains(conf.options, optImplicitStatic) of "patterns": result = contains(conf.options, optPatterns) of "excessivestacktrace": result = contains(conf.globalOptions, optExcessiveStackTrace) + of "nilseqs": result = contains(conf.options, optNilSeqs) else: invalidCmdLineOption(conf, passCmd1, switch, info) proc processPath(conf: ConfigRef; path: string, info: TLineInfo, diff --git a/lib/system.nim b/lib/system.nim index 0a721d940..40447fd93 100644 --- a/lib/system.nim +++ b/lib/system.nim @@ -4049,8 +4049,9 @@ proc `==`*(x, y: cstring): bool {.magic: "EqCString", noSideEffect, else: result = strcmp(x, y) == 0 when defined(nimNoNilSeqs2): - proc `==`*(x: string; y: type(nil)): bool {.error.} = discard - proc `==`*(x: type(nil); y: string): bool {.error.} = discard + when not compileOption("nilseqs"): + proc `==`*(x: string; y: type(nil)): bool {.error.} = discard + proc `==`*(x: type(nil); y: string): bool {.error.} = discard template closureScope*(body: untyped): untyped = ## Useful when creating a closure in a loop to capture local loop variables by