Skip to content

Commit c5c52a2

Browse files
committed
fix clippy::clone_on_ref_ptr for compiler
1 parent fa88b78 commit c5c52a2

File tree

35 files changed

+104
-96
lines changed

35 files changed

+104
-96
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3319,6 +3319,7 @@ version = "0.0.0"
33193319
dependencies = [
33203320
"itertools",
33213321
"rustc_ast",
3322+
"rustc_data_structures",
33223323
"rustc_lexer",
33233324
"rustc_span",
33243325
"thin-vec",

compiler/rustc_ast/src/token.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ impl Clone for TokenKind {
368368
// a copy. This is faster than the `derive(Clone)` version which has a
369369
// separate path for every variant.
370370
match self {
371-
Interpolated(nt) => Interpolated(nt.clone()),
371+
Interpolated(nt) => Interpolated(Lrc::clone(nt)),
372372
_ => unsafe { std::ptr::read(self) },
373373
}
374374
}

compiler/rustc_ast_lowering/src/expr.rs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::assert_matches::assert_matches;
33
use rustc_ast::ptr::P as AstP;
44
use rustc_ast::*;
55
use rustc_data_structures::stack::ensure_sufficient_stack;
6+
use rustc_data_structures::sync::Lrc;
67
use rustc_hir as hir;
78
use rustc_hir::HirId;
89
use rustc_hir::def::{DefKind, Res};
@@ -143,7 +144,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
143144
ExprKind::IncludedBytes(bytes) => {
144145
let lit = self.arena.alloc(respan(
145146
self.lower_span(e.span),
146-
LitKind::ByteStr(bytes.clone(), StrStyle::Cooked),
147+
LitKind::ByteStr(Lrc::clone(bytes), StrStyle::Cooked),
147148
));
148149
hir::ExprKind::Lit(lit)
149150
}
@@ -521,15 +522,15 @@ impl<'hir> LoweringContext<'_, 'hir> {
521522
this.mark_span_with_reason(
522523
DesugaringKind::TryBlock,
523524
expr.span,
524-
Some(this.allow_try_trait.clone()),
525+
Some(Lrc::clone(&this.allow_try_trait)),
525526
),
526527
expr,
527528
)
528529
} else {
529530
let try_span = this.mark_span_with_reason(
530531
DesugaringKind::TryBlock,
531532
this.tcx.sess.source_map().end_point(body.span),
532-
Some(this.allow_try_trait.clone()),
533+
Some(Lrc::clone(&this.allow_try_trait)),
533534
);
534535

535536
(try_span, this.expr_unit(try_span))
@@ -638,7 +639,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
638639
let unstable_span = self.mark_span_with_reason(
639640
DesugaringKind::Async,
640641
self.lower_span(span),
641-
Some(self.allow_gen_future.clone()),
642+
Some(Lrc::clone(&self.allow_gen_future)),
642643
);
643644
let resume_ty = self.make_lang_item_qpath(hir::LangItem::ResumeTy, unstable_span);
644645
let input_ty = hir::Ty {
@@ -723,7 +724,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
723724
let unstable_span = self.mark_span_with_reason(
724725
DesugaringKind::Async,
725726
span,
726-
Some(self.allow_gen_future.clone()),
727+
Some(Lrc::clone(&self.allow_gen_future)),
727728
);
728729
self.lower_attrs(inner_hir_id, &[Attribute {
729730
kind: AttrKind::Normal(ptr::P(NormalAttr::from_ident(Ident::new(
@@ -799,13 +800,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
799800

800801
let features = match await_kind {
801802
FutureKind::Future => None,
802-
FutureKind::AsyncIterator => Some(self.allow_for_await.clone()),
803+
FutureKind::AsyncIterator => Some(Lrc::clone(&self.allow_for_await)),
803804
};
804805
let span = self.mark_span_with_reason(DesugaringKind::Await, await_kw_span, features);
805806
let gen_future_span = self.mark_span_with_reason(
806807
DesugaringKind::Await,
807808
full_span,
808-
Some(self.allow_gen_future.clone()),
809+
Some(Lrc::clone(&self.allow_gen_future)),
809810
);
810811
let expr_hir_id = expr.hir_id;
811812

@@ -1811,13 +1812,13 @@ impl<'hir> LoweringContext<'_, 'hir> {
18111812
let unstable_span = self.mark_span_with_reason(
18121813
DesugaringKind::QuestionMark,
18131814
span,
1814-
Some(self.allow_try_trait.clone()),
1815+
Some(Lrc::clone(&self.allow_try_trait)),
18151816
);
18161817
let try_span = self.tcx.sess.source_map().end_point(span);
18171818
let try_span = self.mark_span_with_reason(
18181819
DesugaringKind::QuestionMark,
18191820
try_span,
1820-
Some(self.allow_try_trait.clone()),
1821+
Some(Lrc::clone(&self.allow_try_trait)),
18211822
);
18221823

18231824
// `Try::branch(<expr>)`
@@ -1911,7 +1912,7 @@ impl<'hir> LoweringContext<'_, 'hir> {
19111912
let unstable_span = self.mark_span_with_reason(
19121913
DesugaringKind::YeetExpr,
19131914
span,
1914-
Some(self.allow_try_trait.clone()),
1915+
Some(Lrc::clone(&self.allow_try_trait)),
19151916
);
19161917

19171918
let from_yeet_expr = self.wrap_in_try_constructor(

compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1915,7 +1915,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
19151915
CoroutineKind::Async { return_impl_trait_id, .. } => (return_impl_trait_id, None),
19161916
CoroutineKind::Gen { return_impl_trait_id, .. } => (return_impl_trait_id, None),
19171917
CoroutineKind::AsyncGen { return_impl_trait_id, .. } => {
1918-
(return_impl_trait_id, Some(self.allow_async_iterator.clone()))
1918+
(return_impl_trait_id, Some(Lrc::clone(&self.allow_async_iterator)))
19191919
}
19201920
};
19211921

compiler/rustc_ast_lowering/src/path.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ impl<'a, 'hir> LoweringContext<'a, 'hir> {
7070
let bound_modifier_allowed_features = if let Res::Def(DefKind::Trait, async_def_id) = res
7171
&& self.tcx.async_fn_trait_kind_from_def_id(async_def_id).is_some()
7272
{
73-
Some(self.allow_async_fn_traits.clone())
73+
Some(Lrc::clone(&self.allow_async_fn_traits))
7474
} else {
7575
None
7676
};

compiler/rustc_ast_pretty/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ edition = "2021"
77
# tidy-alphabetical-start
88
itertools = "0.12"
99
rustc_ast = { path = "../rustc_ast" }
10+
rustc_data_structures = { path = "../rustc_data_structures" }
1011
rustc_lexer = { path = "../rustc_lexer" }
1112
rustc_span = { path = "../rustc_span" }
1213
thin-vec = "0.2.12"

compiler/rustc_ast_pretty/src/pprust/state.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ use rustc_ast::{
2222
GenericBound, InlineAsmOperand, InlineAsmOptions, InlineAsmRegOrRegClass,
2323
InlineAsmTemplatePiece, PatKind, RangeEnd, RangeSyntax, Safety, SelfKind, Term, attr,
2424
};
25+
use rustc_data_structures::sync::Lrc;
2526
use rustc_span::edition::Edition;
2627
use rustc_span::source_map::{SourceMap, Spanned};
2728
use rustc_span::symbol::{Ident, IdentPrinter, Symbol, kw, sym};
@@ -106,7 +107,7 @@ fn split_block_comment_into_lines(text: &str, col: CharPos) -> Vec<String> {
106107
fn gather_comments(sm: &SourceMap, path: FileName, src: String) -> Vec<Comment> {
107108
let sm = SourceMap::new(sm.path_mapping().clone());
108109
let source_file = sm.new_source_file(path, src);
109-
let text = (*source_file.src.as_ref().unwrap()).clone();
110+
let text = Lrc::clone(&(*source_file.src.as_ref().unwrap()));
110111

111112
let text: &str = text.as_str();
112113
let start_bpos = source_file.start_pos;

compiler/rustc_borrowck/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ fn do_mir_borrowck<'tcx>(
288288
access_place_error_reported: Default::default(),
289289
reservation_error_reported: Default::default(),
290290
uninitialized_error_reported: Default::default(),
291-
regioncx: regioncx.clone(),
291+
regioncx: Rc::clone(&regioncx),
292292
used_mut: Default::default(),
293293
used_mut_upvars: SmallVec::new(),
294294
borrow_set: Rc::clone(&borrow_set),
@@ -800,7 +800,7 @@ impl<'a, 'tcx, R> rustc_mir_dataflow::ResultsVisitor<'a, 'tcx, R>
800800
TerminatorKind::Yield { value: _, resume: _, resume_arg: _, drop: _ } => {
801801
if self.movable_coroutine {
802802
// Look for any active borrows to locals
803-
let borrow_set = self.borrow_set.clone();
803+
let borrow_set = Rc::clone(&self.borrow_set);
804804
for i in state.borrows.iter() {
805805
let borrow = &borrow_set[i];
806806
self.check_for_local_borrow(borrow, span);
@@ -816,7 +816,7 @@ impl<'a, 'tcx, R> rustc_mir_dataflow::ResultsVisitor<'a, 'tcx, R>
816816
// Often, the storage will already have been killed by an explicit
817817
// StorageDead, but we don't always emit those (notably on unwind paths),
818818
// so this "extra check" serves as a kind of backup.
819-
let borrow_set = self.borrow_set.clone();
819+
let borrow_set = Rc::clone(&self.borrow_set);
820820
for i in state.borrows.iter() {
821821
let borrow = &borrow_set[i];
822822
self.check_for_invalidation_at_exit(loc, borrow, span);
@@ -1580,7 +1580,7 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, '_, 'tcx> {
15801580
// Two-phase borrow support: For each activation that is newly
15811581
// generated at this statement, check if it interferes with
15821582
// another borrow.
1583-
let borrow_set = self.borrow_set.clone();
1583+
let borrow_set = Rc::clone(&self.borrow_set);
15841584
for &borrow_index in borrow_set.activations_at_location(location) {
15851585
let borrow = &borrow_set[borrow_index];
15861586

compiler/rustc_borrowck/src/region_infer/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,7 +731,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
731731
}
732732

733733
// Now take member constraints into account.
734-
let member_constraints = self.member_constraints.clone();
734+
let member_constraints = Rc::clone(&self.member_constraints);
735735
for m_c_i in member_constraints.indices(scc_a) {
736736
self.apply_member_constraint(scc_a, m_c_i, member_constraints.choice_regions(m_c_i));
737737
}
@@ -1677,7 +1677,7 @@ impl<'tcx> RegionInferenceContext<'tcx> {
16771677
infcx: &InferCtxt<'tcx>,
16781678
errors_buffer: &mut RegionErrors<'tcx>,
16791679
) {
1680-
let member_constraints = self.member_constraints.clone();
1680+
let member_constraints = Rc::clone(&self.member_constraints);
16811681
for m_c_i in member_constraints.all_indices() {
16821682
debug!(?m_c_i);
16831683
let m_c = &member_constraints[m_c_i];

compiler/rustc_borrowck/src/region_infer/values.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,9 +281,9 @@ impl<N: Idx> RegionValues<N> {
281281
) -> Self {
282282
let num_placeholders = placeholder_indices.len();
283283
Self {
284-
elements: elements.clone(),
284+
elements: Rc::clone(elements),
285285
points: SparseIntervalMatrix::new(elements.num_points()),
286-
placeholder_indices: placeholder_indices.clone(),
286+
placeholder_indices: Rc::clone(placeholder_indices),
287287
free_regions: SparseBitMatrix::new(num_universal_regions),
288288
placeholders: SparseBitMatrix::new(num_placeholders),
289289
}

0 commit comments

Comments
 (0)