Skip to content

Commit ff047a8

Browse files
committed
Use direct references to CompilerDesugaringKind
1 parent 4acfef8 commit ff047a8

File tree

2 files changed

+12
-19
lines changed

2 files changed

+12
-19
lines changed

src/librustc/hir/lowering.rs

+12-7
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ use syntax::ast::*;
5959
use syntax::errors;
6060
use syntax::ext::hygiene::{Mark, SyntaxContext};
6161
use syntax::ptr::P;
62-
use syntax::codemap::{self, respan, Spanned};
62+
use syntax::codemap::{self, respan, Spanned, CompilerDesugaringKind};
6363
use syntax::std_inject;
6464
use syntax::symbol::{Symbol, keywords};
6565
use syntax::util::small_vector::SmallVector;
@@ -396,8 +396,9 @@ impl<'a> LoweringContext<'a> {
396396
Symbol::gensym(s)
397397
}
398398

399-
fn allow_internal_unstable(&self, reason: &'static str, mut span: Span) -> Span {
400-
let reason = codemap::CompilerDesugaringKind::from(reason);
399+
fn allow_internal_unstable(&self, reason: CompilerDesugaringKind, mut span: Span)
400+
-> Span
401+
{
401402
let mark = Mark::fresh(Mark::root());
402403
mark.set_expn_info(codemap::ExpnInfo {
403404
call_site: span,
@@ -1763,7 +1764,8 @@ impl<'a> LoweringContext<'a> {
17631764
let move_val_init = ["intrinsics", "move_val_init"];
17641765
let inplace_finalize = ["ops", "InPlace", "finalize"];
17651766

1766-
let unstable_span = self.allow_internal_unstable("<-", e.span);
1767+
let unstable_span =
1768+
self.allow_internal_unstable(CompilerDesugaringKind::BackArrow, e.span);
17671769
let make_call = |this: &mut LoweringContext, p, args| {
17681770
let path = P(this.expr_std_path(unstable_span, p, ThinVec::new()));
17691771
P(this.expr_call(e.span, path, args))
@@ -1976,12 +1978,14 @@ impl<'a> LoweringContext<'a> {
19761978
e1.iter().map(|e| ("start", e)).chain(e2.iter().map(|e| ("end", e)))
19771979
.map(|(s, e)| {
19781980
let expr = P(self.lower_expr(&e));
1979-
let unstable_span = self.allow_internal_unstable("...", e.span);
1981+
let unstable_span =
1982+
self.allow_internal_unstable(CompilerDesugaringKind::DotFill, e.span);
19801983
self.field(Symbol::intern(s), expr, unstable_span)
19811984
}).collect::<P<[hir::Field]>>();
19821985

19831986
let is_unit = fields.is_empty();
1984-
let unstable_span = self.allow_internal_unstable("...", e.span);
1987+
let unstable_span =
1988+
self.allow_internal_unstable(CompilerDesugaringKind::DotFill, e.span);
19851989
let struct_path =
19861990
iter::once("ops").chain(iter::once(path))
19871991
.collect::<Vec<_>>();
@@ -2317,7 +2321,8 @@ impl<'a> LoweringContext<'a> {
23172321
// return Try::from_error(From::from(err)),
23182322
// }
23192323

2320-
let unstable_span = self.allow_internal_unstable("?", e.span);
2324+
let unstable_span =
2325+
self.allow_internal_unstable(CompilerDesugaringKind::QuestionMark, e.span);
23212326

23222327
// Try::into_result(<expr>)
23232328
let discr = {

src/libsyntax_pos/hygiene.rs

-12
Original file line numberDiff line numberDiff line change
@@ -360,18 +360,6 @@ impl CompilerDesugaringKind {
360360
}
361361
}
362362

363-
impl<'a> From<&'a str> for CompilerDesugaringKind {
364-
fn from(s: &'a str) -> Self {
365-
use CompilerDesugaringKind::*;
366-
match s {
367-
"<-" => BackArrow,
368-
"..." => DotFill,
369-
"?" => QuestionMark,
370-
_ => panic!("Invalid compiler desugaring"),
371-
}
372-
}
373-
}
374-
375363
impl Encodable for SyntaxContext {
376364
fn encode<E: Encoder>(&self, _: &mut E) -> Result<(), E::Error> {
377365
Ok(()) // FIXME(jseyfried) intercrate hygiene

0 commit comments

Comments
 (0)