summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2023-11-21 14:29:30 +0000
committerArun Isaac2023-11-21 14:29:30 +0000
commit3caf3c6379496b12a5725fbe32282e6f2f130348 (patch)
tree272f85a4f9afba9760b23bdc0117cc4420842b13
parent980dac1aa212e27ad6f512acb54c93010fd06932 (diff)
downloadccwl-3caf3c6379496b12a5725fbe32282e6f2f130348.tar.gz
ccwl-3caf3c6379496b12a5725fbe32282e6f2f130348.tar.lz
ccwl-3caf3c6379496b12a5725fbe32282e6f2f130348.zip
ccwl: Report unknown keys passed to rename.
* ccwl/ccwl.scm (collect-steps): Report unknown keys passed to rename. * tests/ccwl.scm ("rename with unknown key must raise a &ccwl-violation condition"): New test.
-rw-r--r--ccwl/ccwl.scm3
-rw-r--r--tests/ccwl.scm7
2 files changed, 9 insertions, 1 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index a398947..cdae1c5 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -617,7 +617,8 @@ represented by <step> objects."
(raise-exception
(condition (ccwl-violation new)
(formatted-message "Expected keyword (for example: #:foo, #:bar)"))))
- (unless (symbol? (syntax->datum old))
+ (unless (memq (syntax->datum old)
+ (map key-name input-keys))
(raise-exception
(condition (ccwl-violation old)
(formatted-message "Unknown key ~a. Known keys at this step are ~a."
diff --git a/tests/ccwl.scm b/tests/ccwl.scm
index 9e09a16..e876912 100644
--- a/tests/ccwl.scm
+++ b/tests/ccwl.scm
@@ -301,4 +301,11 @@
'(workflow ((message #:type string))
(rename (foo) #:foo message))))
+(test-condition "rename with unknown key must raise a &ccwl-violation condition"
+ (ccwl-violation-with-message?
+ "Unknown key ~a. Known keys at this step are ~a.")
+ (macroexpand
+ '(workflow ((foo #:type string))
+ (rename #:bar foobar))))
+
(test-end "ccwl")