diff options
author | Haibo Huang <hhb@google.com> | 2020-11-04 17:00:26 -0800 |
---|---|---|
committer | Haibo Huang <hhb@google.com> | 2020-11-04 17:00:26 -0800 |
commit | 30109aca3144d129cd8d15cb86326e6732fef94a (patch) | |
tree | 575aa70a1ff92011bffbd0be827017bebd50cb29 /src/fmt.rs | |
parent | 545fd6fbe483c50e7bea9dd12d9d6e317f1863ba (diff) | |
download | thiserror-impl-30109aca3144d129cd8d15cb86326e6732fef94a.tar.gz |
Upgrade rust/crates/thiserror-impl to 1.0.22
Test: make
Change-Id: Ie03da9360a51da84cbc9f5629e9043206348b5c8
Diffstat (limited to 'src/fmt.rs')
-rw-r--r-- | src/fmt.rs | 19 |
1 files changed, 14 insertions, 5 deletions
@@ -54,8 +54,9 @@ impl Display<'_> { member } 'a'..='z' | 'A'..='Z' | '_' => { - let ident = take_ident(&mut read); - Member::Named(Ident::new(&ident, span)) + let mut ident = take_ident(&mut read); + ident.set_span(span); + Member::Named(ident) } _ => continue, }; @@ -64,6 +65,9 @@ impl Display<'_> { Member::Named(ident) => ident.clone(), }; let mut formatvar = local.clone(); + if formatvar.to_string().starts_with("r#") { + formatvar = format_ident!("r_{}", formatvar); + } if formatvar.to_string().starts_with('_') { // Work around leading underscore being rejected by 1.40 and // older compilers. https://github.com/rust-lang/rust/pull/66847 @@ -98,7 +102,7 @@ fn explicit_named_args(input: ParseStream) -> Result<Set<Ident>> { while !input.is_empty() { if input.peek(Token![,]) && input.peek2(Ident::peek_any) && input.peek3(Token![=]) { input.parse::<Token![,]>()?; - let ident: Ident = input.parse()?; + let ident = input.call(Ident::parse_any)?; input.parse::<Token![=]>()?; named_args.insert(ident); } else { @@ -123,8 +127,13 @@ fn take_int(read: &mut &str) -> String { int } -fn take_ident(read: &mut &str) -> String { +fn take_ident(read: &mut &str) -> Ident { let mut ident = String::new(); + let raw = read.starts_with("r#"); + if raw { + ident.push_str("r#"); + *read = &read[2..]; + } for (i, ch) in read.char_indices() { match ch { 'a'..='z' | 'A'..='Z' | '0'..='9' | '_' => ident.push(ch), @@ -134,5 +143,5 @@ fn take_ident(read: &mut &str) -> String { } } } - ident + Ident::parse_any.parse_str(&ident).unwrap() } |