817bd51d

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Take the assertion scope from the keyword rather than overwriting it

The assertion production hardcoded AssertionScopeReal and extra_assertion then
rewrote it, so the first write was always dead and a third way to build an
assertion that forgot the rewriter would have silently got Real.  The
production now yields a function awaiting the scope, so there is one write and
nowhere to forget.

The assertion failure error also names which of the two balances it computed.
'Calculated:' was unambiguous only while there was one balance to mean.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 16s 16s 17s 0s
Build 15s 4m36s 2m15s 2m31s 0s
Suite 0s 4m54s 2m31s 2m31s 0s

Timeline

0s20s40s1m1m20s1m40s2m2m20s