about summary refs log tree commit diff
path: root/ccwl/ccwl.scm
diff options
context:
space:
mode:
authorArun Isaac2023-10-09 14:51:56 +0100
committerArun Isaac2023-10-09 20:32:39 +0100
commit7dbe776cb56803d9c66a847f5ac3613366754838 (patch)
tree19fc925dec08564921afdb3c9f96955bcf737bfb /ccwl/ccwl.scm
parent548cc54bc27b92c3a35a79d1af7440fbad896752 (diff)
downloadccwl-7dbe776cb56803d9c66a847f5ac3613366754838.tar.gz
ccwl-7dbe776cb56803d9c66a847f5ac3613366754838.tar.lz
ccwl-7dbe776cb56803d9c66a847f5ac3613366754838.zip
ccwl: Error out if steps with expression commands have no identifier.
* ccwl/ccwl.scm (collect-steps): Error out if steps with expressions
that evaluate to commands have no identifier.
* tests/ccwl.scm ("step with expression that evaluates to a command
but without a step identifier must raise a &ccwl-violation
condition"): New test.
Diffstat (limited to 'ccwl/ccwl.scm')
-rw-r--r--ccwl/ccwl.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/ccwl/ccwl.scm b/ccwl/ccwl.scm
index b158947..286fd7a 100644
--- a/ccwl/ccwl.scm
+++ b/ccwl/ccwl.scm
@@ -535,6 +535,12 @@ represented by <step> objects."
                                      (pairify (syntax->datum #'(args ...)))))))))
     ;; ccwl functions with an implicit step identifier
     ((function args ...)
+     ;; Ensure that steps with expression commands have identifiers.
+     (unless (symbol? (syntax->datum #'function))
+       (raise-exception
+        (condition (ccwl-violation #'function)
+                   (formatted-message "Step with expression ~a that evaluates to a command must have identifier"
+                                      (syntax->datum #'function)))))
      (collect-steps #'(function (function) args ...)
                     input-keys))
     ;; any other unrecognized syntax