diff options
| author | Estevan Castilho <tevo@riajuu.net> | 2026-05-30 01:43:10 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-05-30 01:43:10 +0000 |
| commit | 8106d31690dad61ee0ec649ae6de7f4e3fe1830e (patch) | |
| tree | fc50ca3bdf755cee7157540b79ba26d6ecef7e62 /lib/listener.ml | |
| parent | 1378202e6b0b51d7d338a1042824860f19fcbc9b (diff) | |
| download | Sakura-8106d31690dad61ee0ec649ae6de7f4e3fe1830e.tar.gz Sakura-8106d31690dad61ee0ec649ae6de7f4e3fe1830e.zip | |
Some scaffolding for sublanguage tests (#72)
* No need to take the multigroup name as an argument
* Record backtraces when instantiating conditions
* Equality for abstract values
* Move `make_ctx` out of the listener
* Include the return code on `handle-error` conditions
* Do not include brackets around stringified condition properties
* Equality for materialized attributes
* Equality for materialized tuples
* Scaffolding for a test suite
Diffstat (limited to 'lib/listener.ml')
| -rw-r--r-- | lib/listener.ml | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/lib/listener.ml b/lib/listener.ml index ba61a50..b3090a7 100644 --- a/lib/listener.ml +++ b/lib/listener.ml @@ -8,6 +8,7 @@ functor module Sess = Session.Make (NT) module B = Branch.Make (NT) + module SC = Sublanguage_context.Make (NT) module Error = struct open Condition @@ -37,30 +38,8 @@ functor state. Called at the top of every handle_sublanguage so it always reflects the live branch after any prior VCL switch. **) - let make_ctx (state : conn_state) : Sublanguage_context.t = - let br = state.session#branch in - let claims = state.claims in - let session = state.session in - { - Sublanguage_context.write_handle = br#branch_handle; - branch = (br :> Sublanguage_context.branch_view); - resolve = br#path; - switch_branch = fun name -> - match br#close () with - | Error e -> Error e - | Ok () -> - begin match B.open_branch claims name with - | Error e -> - begin match B.open_branch claims "master" with - | Ok mbr -> session#set_branch mbr - | Error _ -> () - end; - Error e - | Ok new_br -> - session#set_branch new_br; - Ok new_br#multigroups - end - } + let make_ctx ({ session; claims } : conn_state) : Sublanguage_context.t = + SC.make_ctx session claims let read_command input = try Ok (Sexplib.Sexp.input_sexp input) |
