diff --git a/gen/ford-turbo.hoon b/gen/ford-turbo.hoon index 3f4c1b085..ba5e1c4c3 100644 --- a/gen/ford-turbo.hoon +++ b/gen/ford-turbo.hoon @@ -106,7 +106,7 @@ test-bunt test-volt test-vale -:: test-vale-error :: broken until type system is fixed + test-vale-error test-cast test-cast-grow test-mute @@ -5223,12 +5223,14 @@ :: ^= moves :~ :* duct=~[/path] %give %made ~1234.5.6 %complete %error - :- %leaf - %+ weld - "ford: %vale failed: invalid input for mark: " - "/~nul/home/~1234.5.6/mar/foo/hoon" - ~ - == == == + :~ :- %leaf + %+ weld + "ford: %vale failed: invalid input for mark: " + "/~nul/home/~1234.5.6/mar/foo/hoon" + :: + :- %leaf + "ford: %call execution failed:" + == == == == :: ;: weld results1 diff --git a/sys/vane/ford.hoon b/sys/vane/ford.hoon index d380e672e..1fbb5414c 100644 --- a/sys/vane/ford.hoon +++ b/sys/vane/ford.hoon @@ -4548,11 +4548,18 @@ ?~ call-result (return-blocks [call-build]~) :: - ?. ?=([~ %success %call *] call-result) - (wrap-error call-result) + ?: ?=([~ %error *] call-result) + :: + %- return-error + =/ =beam + [[ship.disc desk.disc %da date.build] spur.rail.u.path-result] + :* :- %leaf + "ford: %vale failed: invalid input for mark: {<(en-beam beam)>}" + message.u.call-result + == :: + ?> ?=([~ %success %call *] call-result) =/ product=vase vase.u.call-result - ~& [%call-result u.call-result] :: +grab might produce the wrong type :: ?. (~(nest ut p.mark-sample) | p.product) @@ -4560,17 +4567,11 @@ :~ leaf+"ford: %vale failed" leaf+"+grab has wrong type in mark {} on disc {}" == - :: check mold idempotence; if different, nest fail :: - ?: =(q.product input) - =/ =build-result - [%success %vale [mark p.mark-sample q.product]] - :: - (return-result build-result) + =/ =build-result + [%success %vale [mark p.mark-sample q.product]] :: - %- return-error - =/ =beam [[ship.disc desk.disc %da date.build] spur.rail.u.path-result] - [leaf+"ford: %vale failed: invalid input for mark: {<(en-beam beam)>}"]~ + (return-result build-result) :: ++ make-walk ~% %make-walk ..^^$ ~