Skip to content

Commit a04bf84

Browse files
authored
Merge pull request #63 from moonbitlang/hongbo/remove_unused_letrec
refactor: simplify state update logic in run_single_test and shrink_from functions
2 parents e4dbec7 + b23a0a5 commit a04bf84

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/driver.mbt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,12 @@ pub fn run_single_test(
173173
let rnd1 = self.random_state.split()
174174
let rnd2 = self.random_state
175175
let { val: res, branch: ts } = prop.inner().run(self.compute_size(), rnd1)
176-
letrec next = fn(
176+
fn update_state(st0 : State) {
177+
self.random_state = rnd2
178+
st0.update_state_from_res(res)
179+
}
180+
181+
fn next(
177182
end_with : (State, Property) -> TestSuccess raise TestError,
178183
next_state : State,
179184
p : Property
@@ -185,10 +190,6 @@ pub fn run_single_test(
185190
Err(next_state)
186191
}
187192
}
188-
and update_state = fn(st0 : State) {
189-
self.random_state = rnd2
190-
st0.update_state_from_res(res)
191-
}
192193

193194
let stc = self.clone()
194195
stc.add_coverages(res) // The failure should not be counted.

src/falsify/shrinking.mbt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,21 +104,22 @@ pub fn[A, P, N] shrink_from(
104104
ps : (P, Iter[SampleTree])
105105
) -> ShrinkExplain[P, N] {
106106
let (p, shrunk) = ps
107-
letrec go = fn(shrunk : Iter[SampleTree]) -> ShrinkHistory[P, N] {
107+
fn consider(ak) {
108+
let (a, shrunk) = ak
109+
match prop(a) {
110+
Valid(p) => Ok((p, shrunk))
111+
Invalid(n) => Err(n)
112+
}
113+
}
114+
115+
fn go(shrunk : Iter[SampleTree]) -> ShrinkHistory[P, N] {
108116
let candidates = shrunk.map(fn(x) { self.run_gen(x) |> consider })
109117
let res = partition_result(candidates)
110118
match res.0.head() {
111119
None => ShrinkDone(res.1)
112120
Some((p, shrunk)) => ShrinkTo(p, go(shrunk))
113121
}
114122
}
115-
and consider = fn(ak) {
116-
let (a, shrunk) = ak
117-
match prop(a) {
118-
Valid(p) => Ok((p, shrunk))
119-
Invalid(n) => Err(n)
120-
}
121-
}
122123

123124
{ initial: p, history: go(shrunk) }
124125
}

0 commit comments

Comments
 (0)