implement the --nilseqs switch properly

This commit is contained in:
Andreas Rumpf
2018-08-15 16:56:32 +02:00
parent 0da91aa744
commit 27e1fbe7db
2 changed files with 4 additions and 2 deletions

View File

@@ -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,

View File

@@ -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