;;;; dyn-trap-site.flan's prefix, for the three container operations: at, ;;;; set-at and push. Each trap prints the file, line and column of the call ;;;; that failed, ahead of its sentence. ;;;; ;;;; The argument chooses which one fails, one per run, because each ends the ;;;; process. The line numbers are asserted by the test, so an edit above them ;;;; moves them. (defn main [args [string]] i32 (let [which (if (> (length args) 1) (i32 (bytes->i64 (bytes-view (at args 1)))) 0) v (vec-new dyn)] (push v 1) (println "before") (cond (= which 0) (println (at v 5)) (= which 1) (set (at v 5) 2) :else (let [n (at v 0)] (push n 3)))) 0)