@@ -7,7 +7,7 @@ use std::fmt::Debug;
77use std:: slice:: SliceIndex ;
88use std:: sync:: Arc ;
99
10- use crate :: core:: semantics:: { self , ArcValue , Elim , Head , SpanValue , Value } ;
10+ use crate :: core:: semantics:: { self , ArcValue , Elim , Head , Spanned , Value } ;
1111use crate :: core:: { Const , Prim , UIntStyle } ;
1212use crate :: env:: { EnvLen , SliceEnv } ;
1313use crate :: source:: Span ;
@@ -307,7 +307,10 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
307307 reader : & mut BufferReader < ' data > ,
308308 format : & ArcValue < ' arena > ,
309309 ) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
310- let SpanValue ( format_span, val) = self . elim_context ( ) . force ( format) ;
310+ let Spanned {
311+ span : format_span,
312+ inner : val,
313+ } = self . elim_context ( ) . force ( format) ;
311314 match val. as_ref ( ) {
312315 Value :: Stuck ( Head :: Prim ( prim) , slice) => {
313316 self . read_prim ( reader, * prim, slice, format_span)
@@ -324,14 +327,17 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
324327 formats = next_formats ( expr) ;
325328 }
326329
327- Ok ( SpanValue (
328- format_span,
329- Arc :: new ( Value :: RecordLit ( labels, exprs) ) ,
330- ) )
330+ Ok ( Spanned {
331+ span : format_span,
332+ inner : Arc :: new ( Value :: RecordLit ( labels, exprs) ) ,
333+ } )
331334 }
332335 Value :: FormatCond ( _label, format, cond) => {
333336 let value = self . read_format ( reader, & format) ?;
334- let SpanValue ( _, cond_res) = self . elim_context ( ) . apply_closure ( cond, value. clone ( ) ) ;
337+ let Spanned {
338+ span : _,
339+ inner : cond_res,
340+ } = self . elim_context ( ) . apply_closure ( cond, value. clone ( ) ) ;
335341
336342 match * cond_res {
337343 Value :: ConstLit ( Const :: Bool ( true ) ) => Ok ( value) ,
@@ -367,10 +373,10 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
367373 // reached in loop above.
368374 reader. set_relative_offset ( max_relative_offset) . unwrap ( ) ;
369375
370- Ok ( SpanValue (
371- format_span,
372- Arc :: new ( Value :: RecordLit ( labels, exprs) ) ,
373- ) )
376+ Ok ( Spanned {
377+ span : format_span,
378+ inner : Arc :: new ( Value :: RecordLit ( labels, exprs) ) ,
379+ } )
374380 }
375381
376382 Value :: Stuck ( Head :: RigidVar ( _) , _)
@@ -444,7 +450,7 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
444450 len : & ArcValue < ' arena > ,
445451 elem_format : & ArcValue < ' arena > ,
446452 ) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
447- let len = match self . elim_context ( ) . force ( len) . 1 . as_ref ( ) {
453+ let len = match self . elim_context ( ) . force ( len) . inner . as_ref ( ) {
448454 Value :: ConstLit ( Const :: U8 ( len, _) ) => u64:: from ( * len) ,
449455 Value :: ConstLit ( Const :: U16 ( len, _) ) => u64:: from ( * len) ,
450456 Value :: ConstLit ( Const :: U32 ( len, _) ) => u64:: from ( * len) ,
@@ -456,7 +462,10 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
456462 . map ( |_| self . read_format ( reader, elem_format) )
457463 . collect :: < Result < _ , _ > > ( ) ?;
458464
459- Ok ( SpanValue ( span, Arc :: new ( Value :: ArrayLit ( elem_exprs) ) ) )
465+ Ok ( Spanned {
466+ span,
467+ inner : Arc :: new ( Value :: ArrayLit ( elem_exprs) ) ,
468+ } )
460469 }
461470
462471 fn read_repeat_until_end (
@@ -477,10 +486,10 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
477486 // unwrap shouldn't panic as we're rewinding to a known good offset
478487 // Should this be set to the end of the current buffer?
479488 reader. set_relative_offset ( current_offset) . unwrap ( ) ;
480- return Ok ( SpanValue (
481- elem_format. span ( ) ,
482- Arc :: new ( Value :: ArrayLit ( elems) ) ,
483- ) ) ;
489+ return Ok ( Spanned {
490+ span : elem_format. span ( ) ,
491+ inner : Arc :: new ( Value :: ArrayLit ( elems) ) ,
492+ } ) ;
484493 }
485494 Err ( err) => return Err ( err) ,
486495 } ;
@@ -494,7 +503,7 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
494503 elem_format : & ArcValue < ' arena > ,
495504 ) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
496505 let len_span = len. span ( ) ;
497- let len = match self . elim_context ( ) . force ( len) . 1 . as_ref ( ) {
506+ let len = match self . elim_context ( ) . force ( len) . inner . as_ref ( ) {
498507 Value :: ConstLit ( Const :: U8 ( len, _) ) => Some ( usize:: from ( * len) ) ,
499508 Value :: ConstLit ( Const :: U16 ( len, _) ) => Some ( usize:: from ( * len) ) ,
500509 Value :: ConstLit ( Const :: U32 ( len, _) ) => usize:: try_from ( * len) . ok ( ) ,
@@ -517,22 +526,25 @@ impl<'arena, 'env, 'data> Context<'arena, 'env, 'data> {
517526 pos_value : & ArcValue < ' arena > ,
518527 elem_format : & ArcValue < ' arena > ,
519528 ) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
520- let pos = match self . elim_context ( ) . force ( pos_value) . 1 . as_ref ( ) {
529+ let pos = match self . elim_context ( ) . force ( pos_value) . inner . as_ref ( ) {
521530 Value :: ConstLit ( Const :: Pos ( pos) ) => * pos,
522531 _ => return Err ( ReadError :: InvalidValue ( pos_value. span ( ) ) ) ,
523532 } ;
524533
525534 self . pending_formats . push ( ( pos, elem_format. clone ( ) ) ) ;
526535
527- Ok ( SpanValue ( span, Arc :: new ( Value :: ConstLit ( Const :: Ref ( pos) ) ) ) )
536+ Ok ( Spanned {
537+ span,
538+ inner : Arc :: new ( Value :: ConstLit ( Const :: Ref ( pos) ) ) ,
539+ } )
528540 }
529541
530542 fn read_deref (
531543 & mut self ,
532544 format : & ArcValue < ' arena > ,
533545 r#ref : & ArcValue < ' arena > ,
534546 ) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
535- let pos = match self . elim_context ( ) . force ( r#ref) . 1 . as_ref ( ) {
547+ let pos = match self . elim_context ( ) . force ( r#ref) . inner . as_ref ( ) {
536548 Value :: ConstLit ( Const :: Ref ( pos) ) => * pos,
537549 _ => return Err ( ReadError :: InvalidValue ( r#ref. span ( ) ) ) ,
538550 } ;
@@ -593,12 +605,12 @@ fn read_stream_pos<'arena, 'data>(
593605 reader : & mut BufferReader < ' data > ,
594606 span : Span ,
595607) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
596- Ok ( SpanValue (
608+ Ok ( Spanned {
597609 span,
598- Arc :: new ( Value :: ConstLit ( Const :: Pos (
610+ inner : Arc :: new ( Value :: ConstLit ( Const :: Pos (
599611 reader. offset ( ) . map_err ( |err| err. with_span ( span) ) ?,
600612 ) ) ) ,
601- ) )
613+ } )
602614}
603615
604616fn read_const < ' arena , ' data , T > (
@@ -608,7 +620,10 @@ fn read_const<'arena, 'data, T>(
608620 wrap_const : fn ( T ) -> Const ,
609621) -> Result < ArcValue < ' arena > , ReadError < ' arena > > {
610622 let data = read ( reader) . map_err ( |err| err. with_span ( span) ) ?;
611- Ok ( SpanValue ( span, Arc :: new ( Value :: ConstLit ( wrap_const ( data) ) ) ) )
623+ Ok ( Spanned {
624+ span,
625+ inner : Arc :: new ( Value :: ConstLit ( wrap_const ( data) ) ) ,
626+ } )
612627}
613628
614629fn read_u8 < ' data > ( reader : & mut BufferReader < ' data > ) -> Result < u8 , BufferError > {
0 commit comments