1234567891011121314151617181920212223242526272829303132333435363738394041openPpxlibopenExtension(* An expect declaration resembles [%%expect {tag|...|tag}]. We allow arbitrary tags so
that users can escape their strings properly if need be. *)letexpect=Expert.declare"expect"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Normal)(* An expect extension without pretty formatting *)letexpect_exact=Expert.declare"expect_exact"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Exact)letexpect_output=Expert.declare"@expect.output"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Output)letexpect_unreachable=Expert.declare"@expect.unreachable"Context.expression(Ppx_expect_payload.pattern())(Ppx_expect_payload.make~kind:Unreachable)letexpectations=[expect;expect_exact;expect_output;expect_unreachable]letmatch_expectatione=matche.pexp_descwith|Pexp_extensionextension->beginmatchExpert.convertexpectations~loc:e.pexp_locextensionwith|None->None|Somef->Some(f~extension_id_loc:(fstextension).loc)end|_->None;;