diff options
-rw-r--r-- | compiler/nimconf.nim | 4 | ||||
-rw-r--r-- | tests/misc/trunner.nim | 19 | ||||
-rw-r--r-- | tests/newconfig/bar/config.nims | 0 | ||||
-rw-r--r-- | tests/newconfig/bar/mfoo.nim | 0 | ||||
-rw-r--r-- | tests/newconfig/bar/mfoo.nim.cfg | 0 | ||||
-rw-r--r-- | tests/newconfig/bar/mfoo.nims | 0 | ||||
-rw-r--r-- | tests/newconfig/bar/nim.cfg | 0 |
7 files changed, 21 insertions, 2 deletions
diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim index 01a79c1e3..1691e7ccf 100644 --- a/compiler/nimconf.nim +++ b/compiler/nimconf.nim @@ -281,6 +281,8 @@ proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef; idgen: if optSkipProjConfigFile notin conf.globalOptions: readConfigFile(pd / cfg) + if cfg == DefaultConfig: + runNimScriptIfExists(pd / DefaultConfigNims) if conf.projectName.len != 0: # new project wide config file: @@ -289,8 +291,6 @@ proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef; idgen: projectConfig = changeFileExt(conf.projectFull, "nim.cfg") readConfigFile(projectConfig) - if cfg == DefaultConfig: - runNimScriptIfExists(pd / DefaultConfigNims) let scriptFile = conf.projectFull.changeFileExt("nims") let scriptIsProj = scriptFile == conf.projectFull diff --git a/tests/misc/trunner.nim b/tests/misc/trunner.nim index 530561cd9..874ad66d6 100644 --- a/tests/misc/trunner.nim +++ b/tests/misc/trunner.nim @@ -224,6 +224,25 @@ sub/mmain.idx""", context let cmd = fmt"{nim} r -b:cpp --hints:off --nimcache:{nimcache} --warningAsError:ProveInit {file}" check execCmdEx(cmd) == ("witness\n", 0) + block: # config.nims, nim.cfg, hintConf, bug #16557 + let cmd = fmt"{nim} r {defaultHintsOff} --hint:conf tests/newconfig/bar/mfoo.nim" + let (outp, exitCode) = execCmdEx(cmd, options = {poStdErrToStdOut}) + doAssert exitCode == 0 + let dir = getCurrentDir() + let files = """ +config/nim.cfg +config/config.nims +tests/config.nims +tests/newconfig/bar/nim.cfg +tests/newconfig/bar/config.nims +tests/newconfig/bar/mfoo.nim.cfg +tests/newconfig/bar/mfoo.nims""".splitLines + var expected = "" + for a in files: + let b = dir / a + expected.add &"Hint: used config file '{b}' [Conf]\n" + doAssert outp == expected, outp & "\n" & expected + block: # nim --eval let opt = "--hints:off" check fmt"""{nim} {opt} --eval:"echo defined(nimscript)"""".execCmdEx == ("true\n", 0) diff --git a/tests/newconfig/bar/config.nims b/tests/newconfig/bar/config.nims new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/newconfig/bar/config.nims diff --git a/tests/newconfig/bar/mfoo.nim b/tests/newconfig/bar/mfoo.nim new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/newconfig/bar/mfoo.nim diff --git a/tests/newconfig/bar/mfoo.nim.cfg b/tests/newconfig/bar/mfoo.nim.cfg new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/newconfig/bar/mfoo.nim.cfg diff --git a/tests/newconfig/bar/mfoo.nims b/tests/newconfig/bar/mfoo.nims new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/newconfig/bar/mfoo.nims diff --git a/tests/newconfig/bar/nim.cfg b/tests/newconfig/bar/nim.cfg new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/newconfig/bar/nim.cfg |