@@ -720,18 +720,17 @@ impl Spanner {
720720 }
721721 #[ allow( clippy:: match_single_binding) ]
722722 Word :: Subscripted ( sub) => {
723- let n = Some ( sub. script . value ) ;
723+ let n = Some ( sub. script . value . clone ( ) ) ;
724724 match & sub. word . value {
725725 Word :: Modified ( m) => {
726726 match & m. modifier . value {
727727 Modifier :: Primitive ( p) => {
728728 spans. push (
729- m. modifier . span . clone ( ) . sp ( SpanKind :: Primitive ( * p, n) ) ,
729+ ( m. modifier . span . clone ( ) )
730+ . sp ( SpanKind :: Primitive ( * p, n. clone ( ) ) ) ,
730731 ) ;
731732 spans. push (
732- sub. script
733- . span
734- . clone ( )
733+ ( sub. script . span . clone ( ) )
735734 . sp ( SpanKind :: Subscript ( Some ( * p) , n) ) ,
736735 ) ;
737736 }
@@ -758,7 +757,9 @@ impl Spanner {
758757 spans. extend ( self . words_spans ( & m. operands ) ) ;
759758 }
760759 Word :: Primitive ( p) => {
761- spans. push ( ( sub. word . span . clone ( ) ) . sp ( SpanKind :: Primitive ( * p, n) ) ) ;
760+ spans. push (
761+ ( sub. word . span . clone ( ) ) . sp ( SpanKind :: Primitive ( * p, n. clone ( ) ) ) ,
762+ ) ;
762763 spans
763764 . push ( sub. script . span . clone ( ) . sp ( SpanKind :: Subscript ( Some ( * p) , n) ) ) ;
764765 }
@@ -1599,7 +1600,7 @@ mod server {
15991600 let mut tokens = Vec :: new ( ) ;
16001601 let mut prev_line = 0 ;
16011602 let mut prev_char = 0 ;
1602- let for_prim = |p : Primitive , sub : Option < Subscript > | {
1603+ let for_prim = |p : Primitive , sub : Option < & Subscript > | {
16031604 let args = p. subscript_sig ( sub) . map ( |sig| sig. args ( ) ) . or ( p. args ( ) ) ;
16041605 Some ( match p. class ( ) {
16051606 PrimClass :: Stack | PrimClass :: Debug | PrimClass :: Planet
@@ -1625,7 +1626,7 @@ mod server {
16251626 SpanKind :: Number => UIUA_NUMBER_STT ,
16261627 SpanKind :: Comment | SpanKind :: OutputComment => SemanticTokenType :: COMMENT ,
16271628 SpanKind :: Primitive ( p, sub) => {
1628- let Some ( stt) = for_prim ( * p, * sub) else {
1629+ let Some ( stt) = for_prim ( * p, sub. as_ref ( ) ) else {
16291630 continue ;
16301631 } ;
16311632 stt
@@ -1653,7 +1654,7 @@ mod server {
16531654 BindingDocsKind :: Error => continue ,
16541655 } ,
16551656 SpanKind :: Subscript ( Some ( prim) , n) => {
1656- let Some ( stt) = for_prim ( * prim, * n ) else {
1657+ let Some ( stt) = for_prim ( * prim, n . as_ref ( ) ) else {
16571658 continue ;
16581659 } ;
16591660 stt
0 commit comments