aboutsummaryrefslogtreecommitdiff
path: root/module/hnh/util/coverage.scm
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2023-12-04 01:58:26 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2023-12-09 00:54:20 +0100
commitffd0a028aefd203b4a42ded1e5a592e1b4d92dd7 (patch)
tree7176aa23610558fde1c020ae0b096d2f43bc9dc7 /module/hnh/util/coverage.scm
parentCleanup datetime tests. (diff)
downloadcalp-ffd0a028aefd203b4a42ded1e5a592e1b4d92dd7.tar.gz
calp-ffd0a028aefd203b4a42ded1e5a592e1b4d92dd7.tar.xz
Complete rewrite of the lens system.
The old "lens" system was more of nested accessors. This rewrites them to be much better, at the cost of some extra up-front complexity. Beside the change in lenses, and all required adjustments, also adds lens creation to the define-type macro.
Diffstat (limited to 'module/hnh/util/coverage.scm')
-rw-r--r--module/hnh/util/coverage.scm9
1 files changed, 5 insertions, 4 deletions
diff --git a/module/hnh/util/coverage.scm b/module/hnh/util/coverage.scm
index 15bdd250..8dc65bb8 100644
--- a/module/hnh/util/coverage.scm
+++ b/module/hnh/util/coverage.scm
@@ -67,14 +67,15 @@
(fold (lambda (line state)
(match (parse-coverage-line line)
(('DA line hits)
- (modify state (compose-lenses car* lines)
+ ;; TODO focus further?
+ (modify state (compose-lens car* lines*)
(lambda (lines) (cons (cons line hits) lines))))
(('SF source)
- (set state car* filename source))
+ (set state (lens-compose car* filename*) source))
(('LH hit)
- (set state car* hit-lines hit))
+ (set state (lens-compose car* hit-lines*) hit))
(('LF lines)
- (set state car* total-lines lines))
+ (set state (lens-compose car* total-lines*) lines))
(('end-of-record)
(cons (coverage-info) state))))
(list (coverage-info))