summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2020-11-18 14:28:52 -0800
committerGitHub <noreply@github.com>2020-11-18 23:28:52 +0100
commit557dcfd87d6801138702e087935ad3c7053d5e87 (patch)
tree282f49699de8e937782a5bcbb56223950542009f
parent2773efa03463edc6c98614d895cc21221080f6cf (diff)
downloadNim-557dcfd87d6801138702e087935ad3c7053d5e87.tar.gz
fix #16033 nim js --gc:arc works and ignores --gc:arc (#16036)
-rw-r--r--compiler/commands.nim5
-rw-r--r--tests/arc/t16033.nim10
2 files changed, 14 insertions, 1 deletions
diff --git a/compiler/commands.nim b/compiler/commands.nim
index 7a94fb612..1ad5ec64c 100644
--- a/compiler/commands.nim
+++ b/compiler/commands.nim
@@ -499,7 +499,10 @@ proc processSwitch*(switch, arg: string, pass: TCmdLinePass, info: TLineInfo;
   of "project":
     processOnOffSwitchG(conf, {optWholeProject, optGenIndex}, arg, pass, info)
   of "gc":
-    if conf.backend == backendJs:
+    if conf.backend == backendJs or conf.command == "js":
+      # for: bug #16033
+      # This might still be imperfect, in rarse corner cases
+      # (where command is reset in nimscript, maybe).
       return
     expectArg(conf, switch, arg, pass, info)
     if pass in {passCmd2, passPP}:
diff --git a/tests/arc/t16033.nim b/tests/arc/t16033.nim
new file mode 100644
index 000000000..59ed22e4d
--- /dev/null
+++ b/tests/arc/t16033.nim
@@ -0,0 +1,10 @@
+discard """
+  targets: "c js"
+  matrix: "--gc:arc"
+"""
+
+# bug #16033
+when defined js:
+  doAssert not compileOption("gc", "arc")
+else:
+  doAssert compileOption("gc", "arc")