Skip to content

Commit 787d49e

Browse files
authored
Rollup merge of rust-lang#60960 - matthewjasper:remove-lowering-gensym, r=petrochenkov
Stop using gensyms in HIR lowering These names aren't ever handled by resolve, so there's no reason to make them gensyms. Diagnostics wanting to behave differently for these variables should inspect either the `MatchSource`/`LocalSource` or the `Span`. All current diagnostics appear to do this. r? @petrochenkov
2 parents 986aa36 + 6bb3980 commit 787d49e

File tree

2 files changed

+22
-22
lines changed

2 files changed

+22
-22
lines changed

src/librustc/hir/lowering.rs

+15-22
Original file line numberDiff line numberDiff line change
@@ -855,10 +855,6 @@ impl<'a> LoweringContext<'a> {
855855
self.sess.diagnostic()
856856
}
857857

858-
fn str_to_ident(&self, s: &'static str) -> Ident {
859-
Ident::with_empty_ctxt(Symbol::gensym(s))
860-
}
861-
862858
fn with_anonymous_lifetime_mode<R>(
863859
&mut self,
864860
anonymous_lifetime_mode: AnonymousLifetimeMode,
@@ -4621,18 +4617,18 @@ impl<'a> LoweringContext<'a> {
46214617
);
46224618
head.span = desugared_span;
46234619

4624-
let iter = self.str_to_ident("iter");
4620+
let iter = Ident::with_empty_ctxt(sym::iter);
46254621

4626-
let next_ident = self.str_to_ident("__next");
4622+
let next_ident = Ident::with_empty_ctxt(sym::__next);
46274623
let (next_pat, next_pat_hid) = self.pat_ident_binding_mode(
46284624
desugared_span,
46294625
next_ident,
46304626
hir::BindingAnnotation::Mutable,
46314627
);
46324628

4633-
// `::std::option::Option::Some(val) => next = val`
4629+
// `::std::option::Option::Some(val) => __next = val`
46344630
let pat_arm = {
4635-
let val_ident = self.str_to_ident("val");
4631+
let val_ident = Ident::with_empty_ctxt(sym::val);
46364632
let (val_pat, val_pat_hid) = self.pat_ident(pat.span, val_ident);
46374633
let val_expr = P(self.expr_ident(pat.span, val_ident, val_pat_hid));
46384634
let next_expr = P(self.expr_ident(pat.span, next_ident, next_pat_hid));
@@ -4771,17 +4767,13 @@ impl<'a> LoweringContext<'a> {
47714767
let unstable_span = self.sess.source_map().mark_span_with_reason(
47724768
CompilerDesugaringKind::QuestionMark,
47734769
e.span,
4774-
Some(vec![
4775-
Symbol::intern("try_trait")
4776-
].into()),
4770+
Some(vec![sym::try_trait].into()),
47774771
);
47784772
let try_span = self.sess.source_map().end_point(e.span);
47794773
let try_span = self.sess.source_map().mark_span_with_reason(
47804774
CompilerDesugaringKind::QuestionMark,
47814775
try_span,
4782-
Some(vec![
4783-
Symbol::intern("try_trait")
4784-
].into()),
4776+
Some(vec![sym::try_trait].into()),
47854777
);
47864778

47874779
// `Try::into_result(<expr>)`
@@ -4802,7 +4794,8 @@ impl<'a> LoweringContext<'a> {
48024794
// `allow(unreachable_code)`
48034795
let allow = {
48044796
let allow_ident = Ident::with_empty_ctxt(sym::allow).with_span_pos(e.span);
4805-
let uc_ident = Ident::from_str("unreachable_code").with_span_pos(e.span);
4797+
let uc_ident = Ident::with_empty_ctxt(sym::unreachable_code)
4798+
.with_span_pos(e.span);
48064799
let uc_nested = attr::mk_nested_word_item(uc_ident);
48074800
attr::mk_list_item(e.span, allow_ident, vec![uc_nested])
48084801
};
@@ -4812,7 +4805,7 @@ impl<'a> LoweringContext<'a> {
48124805

48134806
// `Ok(val) => #[allow(unreachable_code)] val,`
48144807
let ok_arm = {
4815-
let val_ident = self.str_to_ident("val");
4808+
let val_ident = Ident::with_empty_ctxt(sym::val);
48164809
let (val_pat, val_pat_nid) = self.pat_ident(e.span, val_ident);
48174810
let val_expr = P(self.expr_ident_with_attrs(
48184811
e.span,
@@ -4828,7 +4821,7 @@ impl<'a> LoweringContext<'a> {
48284821
// `Err(err) => #[allow(unreachable_code)]
48294822
// return Try::from_error(From::from(err)),`
48304823
let err_arm = {
4831-
let err_ident = self.str_to_ident("err");
4824+
let err_ident = Ident::with_empty_ctxt(sym::err);
48324825
let (err_local, err_local_nid) = self.pat_ident(try_span, err_ident);
48334826
let from_expr = {
48344827
let from_path = &[sym::convert, sym::From, sym::from];
@@ -5552,7 +5545,7 @@ impl<'a> LoweringContext<'a> {
55525545
// match ::std::future::poll_with_tls_context(unsafe {
55535546
// ::std::pin::Pin::new_unchecked(&mut pinned)
55545547
// }) {
5555-
// ::std::task::Poll::Ready(x) => break x,
5548+
// ::std::task::Poll::Ready(result) => break result,
55565549
// ::std::task::Poll::Pending => {},
55575550
// }
55585551
// yield ();
@@ -5580,12 +5573,12 @@ impl<'a> LoweringContext<'a> {
55805573
let gen_future_span = self.sess.source_map().mark_span_with_reason(
55815574
CompilerDesugaringKind::Await,
55825575
await_span,
5583-
Some(vec![Symbol::intern("gen_future")].into()),
5576+
Some(vec![sym::gen_future].into()),
55845577
);
55855578

55865579
// let mut pinned = <expr>;
55875580
let expr = P(self.lower_expr(expr));
5588-
let pinned_ident = self.str_to_ident("pinned");
5581+
let pinned_ident = Ident::with_empty_ctxt(sym::pinned);
55895582
let (pinned_pat, pinned_pat_hid) = self.pat_ident_binding_mode(
55905583
span,
55915584
pinned_ident,
@@ -5621,11 +5614,11 @@ impl<'a> LoweringContext<'a> {
56215614
))
56225615
};
56235616

5624-
// `::std::task::Poll::Ready(x) => break x`
5617+
// `::std::task::Poll::Ready(result) => break result`
56255618
let loop_node_id = self.sess.next_node_id();
56265619
let loop_hir_id = self.lower_node_id(loop_node_id);
56275620
let ready_arm = {
5628-
let x_ident = self.str_to_ident("x");
5621+
let x_ident = Ident::with_empty_ctxt(sym::result);
56295622
let (x_pat, x_pat_hid) = self.pat_ident(span, x_ident);
56305623
let x_expr = P(self.expr_ident(span, x_ident, x_pat_hid));
56315624
let ready_pat = self.pat_std_enum(

src/libsyntax_pos/symbol.rs

+7
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ symbols! {
229229
eh_personality,
230230
eh_unwind_resume,
231231
enable,
232+
err,
232233
Err,
233234
except,
234235
exclusive_range_pattern,
@@ -260,6 +261,7 @@ symbols! {
260261
fundamental,
261262
future,
262263
Future,
264+
gen_future,
263265
generators,
264266
generic_associated_types,
265267
generic_param_attrs,
@@ -361,6 +363,7 @@ symbols! {
361363
never,
362364
never_type,
363365
next,
366+
__next,
364367
nll,
365368
no_builtins,
366369
no_core,
@@ -406,6 +409,7 @@ symbols! {
406409
Pending,
407410
pin,
408411
Pin,
412+
pinned,
409413
platform_intrinsics,
410414
plugin,
411415
plugin_registrar,
@@ -569,6 +573,7 @@ symbols! {
569573
trivial_bounds,
570574
Try,
571575
try_blocks,
576+
try_trait,
572577
tuple_indexing,
573578
ty,
574579
type_alias_enum_variants,
@@ -587,6 +592,7 @@ symbols! {
587592
uniform_paths,
588593
universal_impl_trait,
589594
unmarked_api,
595+
unreachable_code,
590596
unrestricted_attribute_tokens,
591597
unsafe_destructor_blind_to_params,
592598
unsafe_no_drop_flag,
@@ -601,6 +607,7 @@ symbols! {
601607
use_nested_groups,
602608
usize,
603609
v1,
610+
val,
604611
vis,
605612
visible_private_types,
606613
volatile,

0 commit comments

Comments
 (0)