@@ -247,7 +247,7 @@ impl ASTNode<Option<cst::Policy>> {
247
247
let ( e, is_when) = c. to_expr ( errs) ?;
248
248
for slot in e. slots ( ) {
249
249
errs. push ( c. to_ast_err ( ToASTErrorKind :: SlotsInConditionClause {
250
- slot : slot . clone ( ) . into ( ) ,
250
+ slot : ( * slot ) . into ( ) ,
251
251
clausetype : if is_when { "when" } else { "unless" } ,
252
252
} ) ) ;
253
253
}
@@ -775,13 +775,12 @@ impl ExprOrSpecial<'_> {
775
775
fn to_ast_err ( & self , kind : impl Into < ToASTErrorKind > ) -> ToASTError {
776
776
ToASTError :: new (
777
777
kind. into ( ) ,
778
- match self {
778
+ * match self {
779
779
ExprOrSpecial :: Expr ( _, span) => span,
780
780
ExprOrSpecial :: Var ( _, span) => span,
781
781
ExprOrSpecial :: Name ( _, span) => span,
782
782
ExprOrSpecial :: StrLit ( _, span) => span,
783
- }
784
- . clone ( ) ,
783
+ } ,
785
784
)
786
785
}
787
786
@@ -1620,7 +1619,7 @@ impl ASTNode<Option<cst::Member>> {
1620
1619
// move the id out of the slice as well, to avoid cloning the internal string
1621
1620
let id = mem:: replace ( i, ast:: Id :: new_unchecked ( "" ) ) ;
1622
1621
head = id
1623
- . to_meth ( construct_expr_var ( var, vl . clone ( ) ) , args, errs, src)
1622
+ . to_meth ( construct_expr_var ( var, * vl ) , args, errs, src)
1624
1623
. map ( |e| Expr ( e, src) ) ;
1625
1624
tail = rest;
1626
1625
}
@@ -1639,7 +1638,7 @@ impl ASTNode<Option<cst::Member>> {
1639
1638
let args = std:: mem:: take ( a) ;
1640
1639
let id = mem:: replace ( i, ast:: Id :: new_unchecked ( "" ) ) ;
1641
1640
let maybe_expr = match to_unescaped_string ( s) {
1642
- Ok ( s) => Some ( construct_expr_string ( s, sl . clone ( ) ) ) ,
1641
+ Ok ( s) => Some ( construct_expr_string ( s, * sl ) ) ,
1643
1642
Err ( escape_errs) => {
1644
1643
errs. extend (
1645
1644
escape_errs
@@ -1676,11 +1675,7 @@ impl ASTNode<Option<cst::Member>> {
1676
1675
let var = mem:: replace ( v, ast:: Var :: Principal ) ;
1677
1676
let id = mem:: replace ( i, ast:: Id :: new_unchecked ( "" ) ) ;
1678
1677
head = Some ( Expr (
1679
- construct_expr_attr (
1680
- construct_expr_var ( var, vl. clone ( ) ) ,
1681
- id. to_smolstr ( ) ,
1682
- src,
1683
- ) ,
1678
+ construct_expr_attr ( construct_expr_var ( var, * vl) , id. to_smolstr ( ) , src) ,
1684
1679
src,
1685
1680
) ) ;
1686
1681
tail = rest;
@@ -1696,7 +1691,7 @@ impl ASTNode<Option<cst::Member>> {
1696
1691
( Some ( StrLit ( s, sl) ) , [ Some ( Field ( i) ) , rest @ ..] ) => {
1697
1692
let id = mem:: replace ( i, ast:: Id :: new_unchecked ( "" ) ) ;
1698
1693
let maybe_expr = match to_unescaped_string ( s) {
1699
- Ok ( s) => Some ( construct_expr_string ( s, sl . clone ( ) ) ) ,
1694
+ Ok ( s) => Some ( construct_expr_string ( s, * sl ) ) ,
1700
1695
Err ( escape_errs) => {
1701
1696
errs. extend (
1702
1697
escape_errs
@@ -1715,7 +1710,7 @@ impl ASTNode<Option<cst::Member>> {
1715
1710
let var = mem:: replace ( v, ast:: Var :: Principal ) ;
1716
1711
let s = mem:: take ( i) ;
1717
1712
head = Some ( Expr (
1718
- construct_expr_attr ( construct_expr_var ( var, vl . clone ( ) ) , s, src) ,
1713
+ construct_expr_attr ( construct_expr_var ( var, * vl ) , s, src) ,
1719
1714
src,
1720
1715
) ) ;
1721
1716
tail = rest;
@@ -1731,7 +1726,7 @@ impl ASTNode<Option<cst::Member>> {
1731
1726
( Some ( StrLit ( s, sl) ) , [ Some ( Index ( i) ) , rest @ ..] ) => {
1732
1727
let id = mem:: take ( i) ;
1733
1728
let maybe_expr = match to_unescaped_string ( s) {
1734
- Ok ( s) => Some ( construct_expr_string ( s, sl . clone ( ) ) ) ,
1729
+ Ok ( s) => Some ( construct_expr_string ( s, * sl ) ) ,
1735
1730
Err ( escape_errs) => {
1736
1731
errs. extend (
1737
1732
escape_errs
@@ -2227,13 +2222,9 @@ fn construct_expr_or(
2227
2222
chained : impl IntoIterator < Item = ast:: Expr > ,
2228
2223
span : miette:: SourceSpan ,
2229
2224
) -> ast:: Expr {
2230
- let first = ast:: ExprBuilder :: new ( )
2231
- . with_source_span ( span. clone ( ) )
2232
- . or ( f, s) ;
2225
+ let first = ast:: ExprBuilder :: new ( ) . with_source_span ( span) . or ( f, s) ;
2233
2226
chained. into_iter ( ) . fold ( first, |a, n| {
2234
- ast:: ExprBuilder :: new ( )
2235
- . with_source_span ( span. clone ( ) )
2236
- . or ( a, n)
2227
+ ast:: ExprBuilder :: new ( ) . with_source_span ( span) . or ( a, n)
2237
2228
} )
2238
2229
}
2239
2230
fn construct_expr_and (
@@ -2242,13 +2233,9 @@ fn construct_expr_and(
2242
2233
chained : impl IntoIterator < Item = ast:: Expr > ,
2243
2234
span : miette:: SourceSpan ,
2244
2235
) -> ast:: Expr {
2245
- let first = ast:: ExprBuilder :: new ( )
2246
- . with_source_span ( span. clone ( ) )
2247
- . and ( f, s) ;
2236
+ let first = ast:: ExprBuilder :: new ( ) . with_source_span ( span) . and ( f, s) ;
2248
2237
chained. into_iter ( ) . fold ( first, |a, n| {
2249
- ast:: ExprBuilder :: new ( )
2250
- . with_source_span ( span. clone ( ) )
2251
- . and ( a, n)
2238
+ ast:: ExprBuilder :: new ( ) . with_source_span ( span) . and ( a, n)
2252
2239
} )
2253
2240
}
2254
2241
fn construct_expr_rel (
@@ -2276,7 +2263,7 @@ fn construct_expr_add(
2276
2263
) -> ast:: Expr {
2277
2264
let mut expr = f;
2278
2265
for ( op, next_expr) in chained {
2279
- let builder = ast:: ExprBuilder :: new ( ) . with_source_span ( span. clone ( ) ) ;
2266
+ let builder = ast:: ExprBuilder :: new ( ) . with_source_span ( span) ;
2280
2267
expr = match op {
2281
2268
cst:: AddOp :: Plus => builder. add ( expr, next_expr) ,
2282
2269
cst:: AddOp :: Minus => builder. sub ( expr, next_expr) ,
@@ -2293,7 +2280,7 @@ fn construct_expr_mul(
2293
2280
let mut expr = f;
2294
2281
for next_expr in chained {
2295
2282
expr = ast:: ExprBuilder :: new ( )
2296
- . with_source_span ( span. clone ( ) )
2283
+ . with_source_span ( span)
2297
2284
. mul ( expr, next_expr)
2298
2285
}
2299
2286
expr
0 commit comments