--hint:processing (+friends) is now supported and means --hint:processing:on, like all other bool flags (#14271)

This commit is contained in:
Timothee Cour
2020-05-08 09:54:16 -07:00
committed by GitHub
parent ce16115e79
commit 411be506a3
5 changed files with 30 additions and 6 deletions

View File

@@ -137,6 +137,9 @@
nim r compiler/nim.nim --fullhelp # no recompilation
nim r --nimcache:/tmp main # binary saved to /tmp/main
```
- `--hint:processing` is now supported and means `--hint:processing:on`
(likewise with other hints and warnings), which is consistent with all other bool flags.
(since 1.3.3).
## Tool changes

View File

@@ -176,7 +176,7 @@ proc expectNoArg(conf: ConfigRef; switch, arg: string, pass: TCmdLinePass, info:
proc processSpecificNote*(arg: string, state: TSpecialWord, pass: TCmdLinePass,
info: TLineInfo; orig: string; conf: ConfigRef) =
var id = "" # arg = key:val or [key]:val; with val=on|off
var id = "" # arg = key or [key] or key:val or [key]:val; with val=on|off
var i = 0
var n = hintMin
var isBracket = false
@@ -190,7 +190,8 @@ proc processSpecificNote*(arg: string, state: TSpecialWord, pass: TCmdLinePass,
if i < arg.len and arg[i] == ']': inc(i)
else: invalidCmdLineOption(conf, pass, orig, info)
if i < arg.len and (arg[i] in {':', '='}): inc(i)
if i == arg.len: discard
elif i < arg.len and (arg[i] in {':', '='}): inc(i)
else: invalidCmdLineOption(conf, pass, orig, info)
if state == wHint:
let x = findStr(lineinfos.HintsToStr, id)
@@ -201,7 +202,8 @@ proc processSpecificNote*(arg: string, state: TSpecialWord, pass: TCmdLinePass,
if x >= 0: n = TNoteKind(x + ord(warnMin))
else: localError(conf, info, "unknown warning: " & id)
let val = substr(arg, i).normalize
var val = substr(arg, i).normalize
if val == "": val = "on"
if val notin ["on", "off"]:
localError(conf, info, errOnOrOffExpectedButXFound % arg)
elif n notin conf.cmdlineNotes or pass == passCmd1:

View File

@@ -2068,7 +2068,7 @@ const
## is the minor number of Nim's version.
## Odd for devel, even for releases.
NimPatch* {.intdefine.}: int = 1
NimPatch* {.intdefine.}: int = 3
## is the patch number of Nim's version.
import system/dollars

View File

@@ -1,5 +1,5 @@
discard """
cmd: "nim default $file"
cmd: "nim default --hint:cc:off --hint:cc $file"
output: '''hello world! 0.5'''
nimout: '''[NimScript] exec: gcc -v'''
"""

View File

@@ -7,7 +7,26 @@ exec "gcc -v"
--path: "../friends"
warning("uninit", off)
hint("processing", off)
block: # supported syntaxes for hint,warning,switch
--hint:processing
hint("processing", on)
hint("processing", off)
switch("hint", "processing")
switch("hint", "processing:on")
switch("hint", "processing:off")
switch("hint", "[processing]")
switch("hint", "[processing]:on")
switch("hint", "[processing]:off") # leave it off
--warning:UnusedImport
switch("warning", "UnusedImport:off")
switch("warning", "UnusedImport:on")
switch("warning", "[UnusedImport]:off")
switch("warning", "[UnusedImport]:on")
switch("warning", "[UnusedImport]")
switch("warning", "UnusedImport") # leave it on
#--verbosity:2
patchFile("stdlib", "math", "mymath")