@@ -776,11 +776,10 @@ impl ExprCollector<'_> {
776
776
None => self . collect_expr_opt ( e. condition ( ) ) ,
777
777
} ;
778
778
779
- let break_expr =
780
- self . alloc_expr ( Expr :: Break { expr : None , label : None } , syntax_ptr. clone ( ) ) ;
779
+ let break_expr = self . alloc_expr ( Expr :: Break { expr : None , label : None } , syntax_ptr) ;
781
780
let if_expr = self . alloc_expr (
782
781
Expr :: If { condition, then_branch : body, else_branch : Some ( break_expr) } ,
783
- syntax_ptr. clone ( ) ,
782
+ syntax_ptr,
784
783
) ;
785
784
self . alloc_expr ( Expr :: Loop { body : if_expr, label } , syntax_ptr)
786
785
}
@@ -811,19 +810,19 @@ impl ExprCollector<'_> {
811
810
return self . alloc_expr ( Expr :: Missing , syntax_ptr) ;
812
811
} ;
813
812
let head = self . collect_expr_opt ( e. iterable ( ) ) ;
814
- let into_iter_fn_expr = self . alloc_expr ( Expr :: Path ( into_iter_fn) , syntax_ptr. clone ( ) ) ;
813
+ let into_iter_fn_expr = self . alloc_expr ( Expr :: Path ( into_iter_fn) , syntax_ptr) ;
815
814
let iterator = self . alloc_expr (
816
815
Expr :: Call {
817
816
callee : into_iter_fn_expr,
818
817
args : Box :: new ( [ head] ) ,
819
818
is_assignee_expr : false ,
820
819
} ,
821
- syntax_ptr. clone ( ) ,
820
+ syntax_ptr,
822
821
) ;
823
822
let none_arm = MatchArm {
824
823
pat : self . alloc_pat_desugared ( Pat :: Path ( Box :: new ( option_none) ) ) ,
825
824
guard : None ,
826
- expr : self . alloc_expr ( Expr :: Break { expr : None , label : None } , syntax_ptr. clone ( ) ) ,
825
+ expr : self . alloc_expr ( Expr :: Break { expr : None , label : None } , syntax_ptr) ,
827
826
} ;
828
827
let some_pat = Pat :: TupleStruct {
829
828
path : Some ( Box :: new ( option_some) ) ,
@@ -839,27 +838,25 @@ impl ExprCollector<'_> {
839
838
} ) ,
840
839
} ;
841
840
let iter_name = Name :: generate_new_name ( ) ;
842
- let iter_expr =
843
- self . alloc_expr ( Expr :: Path ( Path :: from ( iter_name. clone ( ) ) ) , syntax_ptr. clone ( ) ) ;
841
+ let iter_expr = self . alloc_expr ( Expr :: Path ( Path :: from ( iter_name. clone ( ) ) ) , syntax_ptr) ;
844
842
let iter_expr_mut = self . alloc_expr (
845
843
Expr :: Ref { expr : iter_expr, rawness : Rawness :: Ref , mutability : Mutability :: Mut } ,
846
- syntax_ptr. clone ( ) ,
844
+ syntax_ptr,
847
845
) ;
848
- let iter_next_fn_expr = self . alloc_expr ( Expr :: Path ( iter_next_fn) , syntax_ptr. clone ( ) ) ;
846
+ let iter_next_fn_expr = self . alloc_expr ( Expr :: Path ( iter_next_fn) , syntax_ptr) ;
849
847
let iter_next_expr = self . alloc_expr (
850
848
Expr :: Call {
851
849
callee : iter_next_fn_expr,
852
850
args : Box :: new ( [ iter_expr_mut] ) ,
853
851
is_assignee_expr : false ,
854
852
} ,
855
- syntax_ptr. clone ( ) ,
853
+ syntax_ptr,
856
854
) ;
857
855
let loop_inner = self . alloc_expr (
858
856
Expr :: Match { expr : iter_next_expr, arms : Box :: new ( [ none_arm, some_arm] ) } ,
859
- syntax_ptr. clone ( ) ,
857
+ syntax_ptr,
860
858
) ;
861
- let loop_outer =
862
- self . alloc_expr ( Expr :: Loop { body : loop_inner, label } , syntax_ptr. clone ( ) ) ;
859
+ let loop_outer = self . alloc_expr ( Expr :: Loop { body : loop_inner, label } , syntax_ptr) ;
863
860
let iter_binding = self . alloc_binding ( iter_name, BindingAnnotation :: Mutable ) ;
864
861
let iter_pat = self . alloc_pat_desugared ( Pat :: Bind { id : iter_binding, subpat : None } ) ;
865
862
self . add_definition_to_binding ( iter_binding, iter_pat) ;
@@ -868,7 +865,7 @@ impl ExprCollector<'_> {
868
865
expr : iterator,
869
866
arms : Box :: new ( [ MatchArm { pat : iter_pat, guard : None , expr : loop_outer } ] ) ,
870
867
} ,
871
- syntax_ptr. clone ( ) ,
868
+ syntax_ptr,
872
869
)
873
870
}
874
871
@@ -896,10 +893,10 @@ impl ExprCollector<'_> {
896
893
return self . alloc_expr ( Expr :: Missing , syntax_ptr) ;
897
894
} ;
898
895
let operand = self . collect_expr_opt ( e. expr ( ) ) ;
899
- let try_branch = self . alloc_expr ( Expr :: Path ( try_branch) , syntax_ptr. clone ( ) ) ;
896
+ let try_branch = self . alloc_expr ( Expr :: Path ( try_branch) , syntax_ptr) ;
900
897
let expr = self . alloc_expr (
901
898
Expr :: Call { callee : try_branch, args : Box :: new ( [ operand] ) , is_assignee_expr : false } ,
902
- syntax_ptr. clone ( ) ,
899
+ syntax_ptr,
903
900
) ;
904
901
let continue_name = Name :: generate_new_name ( ) ;
905
902
let continue_binding =
@@ -914,7 +911,7 @@ impl ExprCollector<'_> {
914
911
ellipsis : None ,
915
912
} ) ,
916
913
guard : None ,
917
- expr : self . alloc_expr ( Expr :: Path ( Path :: from ( continue_name) ) , syntax_ptr. clone ( ) ) ,
914
+ expr : self . alloc_expr ( Expr :: Path ( Path :: from ( continue_name) ) , syntax_ptr) ,
918
915
} ;
919
916
let break_name = Name :: generate_new_name ( ) ;
920
917
let break_binding = self . alloc_binding ( break_name. clone ( ) , BindingAnnotation :: Unannotated ) ;
@@ -928,18 +925,18 @@ impl ExprCollector<'_> {
928
925
} ) ,
929
926
guard : None ,
930
927
expr : {
931
- let it = self . alloc_expr ( Expr :: Path ( Path :: from ( break_name) ) , syntax_ptr. clone ( ) ) ;
932
- let callee = self . alloc_expr ( Expr :: Path ( try_from_residual) , syntax_ptr. clone ( ) ) ;
928
+ let it = self . alloc_expr ( Expr :: Path ( Path :: from ( break_name) ) , syntax_ptr) ;
929
+ let callee = self . alloc_expr ( Expr :: Path ( try_from_residual) , syntax_ptr) ;
933
930
let result = self . alloc_expr (
934
931
Expr :: Call { callee, args : Box :: new ( [ it] ) , is_assignee_expr : false } ,
935
- syntax_ptr. clone ( ) ,
932
+ syntax_ptr,
936
933
) ;
937
934
self . alloc_expr (
938
935
match self . current_try_block_label {
939
936
Some ( label) => Expr :: Break { expr : Some ( result) , label : Some ( label) } ,
940
937
None => Expr :: Return { expr : Some ( result) } ,
941
938
} ,
942
- syntax_ptr. clone ( ) ,
939
+ syntax_ptr,
943
940
)
944
941
} ,
945
942
} ;
@@ -1847,8 +1844,8 @@ impl ExprCollector<'_> {
1847
1844
flags as u128 ,
1848
1845
Some ( BuiltinUint :: U32 ) ,
1849
1846
) ) ) ;
1850
- let precision = self . make_count ( & precision, argmap) ;
1851
- let width = self . make_count ( & width, argmap) ;
1847
+ let precision = self . make_count ( precision, argmap) ;
1848
+ let width = self . make_count ( width, argmap) ;
1852
1849
1853
1850
let format_placeholder_new = {
1854
1851
let format_placeholder_new =
@@ -1994,7 +1991,7 @@ impl ExprCollector<'_> {
1994
1991
fn alloc_expr ( & mut self , expr : Expr , ptr : ExprPtr ) -> ExprId {
1995
1992
let src = self . expander . in_file ( ptr) ;
1996
1993
let id = self . body . exprs . alloc ( expr) ;
1997
- self . source_map . expr_map_back . insert ( id, src. clone ( ) ) ;
1994
+ self . source_map . expr_map_back . insert ( id, src) ;
1998
1995
self . source_map . expr_map . insert ( src, id) ;
1999
1996
id
2000
1997
}
@@ -2022,7 +2019,7 @@ impl ExprCollector<'_> {
2022
2019
fn alloc_pat ( & mut self , pat : Pat , ptr : PatPtr ) -> PatId {
2023
2020
let src = self . expander . in_file ( ptr) ;
2024
2021
let id = self . body . pats . alloc ( pat) ;
2025
- self . source_map . pat_map_back . insert ( id, src. clone ( ) ) ;
2022
+ self . source_map . pat_map_back . insert ( id, src) ;
2026
2023
self . source_map . pat_map . insert ( src, id) ;
2027
2024
id
2028
2025
}
@@ -2037,7 +2034,7 @@ impl ExprCollector<'_> {
2037
2034
fn alloc_label ( & mut self , label : Label , ptr : LabelPtr ) -> LabelId {
2038
2035
let src = self . expander . in_file ( ptr) ;
2039
2036
let id = self . body . labels . alloc ( label) ;
2040
- self . source_map . label_map_back . insert ( id, src. clone ( ) ) ;
2037
+ self . source_map . label_map_back . insert ( id, src) ;
2041
2038
self . source_map . label_map . insert ( src, id) ;
2042
2039
id
2043
2040
}
0 commit comments