Replace serde_derive_internal's parse_lit_str with syn::LitStr::parse
This commit is contained in:
parent
27d6628785
commit
49a911d7de
@ -1,4 +1,3 @@
|
|||||||
use internals::respan::respan;
|
|
||||||
use internals::symbol::*;
|
use internals::symbol::*;
|
||||||
use internals::{ungroup, Ctxt};
|
use internals::{ungroup, Ctxt};
|
||||||
use proc_macro2::{Spacing, Span, TokenStream, TokenTree};
|
use proc_macro2::{Spacing, Span, TokenStream, TokenTree};
|
||||||
@ -1604,7 +1603,7 @@ fn get_lit_str2<'a>(
|
|||||||
|
|
||||||
fn parse_lit_into_path(cx: &Ctxt, attr_name: Symbol, lit: &syn::Lit) -> Result<syn::Path, ()> {
|
fn parse_lit_into_path(cx: &Ctxt, attr_name: Symbol, lit: &syn::Lit) -> Result<syn::Path, ()> {
|
||||||
let string = get_lit_str(cx, attr_name, lit)?;
|
let string = get_lit_str(cx, attr_name, lit)?;
|
||||||
parse_lit_str(string).map_err(|_| {
|
string.parse().map_err(|_| {
|
||||||
cx.error_spanned_by(lit, format!("failed to parse path: {:?}", string.value()));
|
cx.error_spanned_by(lit, format!("failed to parse path: {:?}", string.value()));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -1615,7 +1614,7 @@ fn parse_lit_into_expr_path(
|
|||||||
lit: &syn::Lit,
|
lit: &syn::Lit,
|
||||||
) -> Result<syn::ExprPath, ()> {
|
) -> Result<syn::ExprPath, ()> {
|
||||||
let string = get_lit_str(cx, attr_name, lit)?;
|
let string = get_lit_str(cx, attr_name, lit)?;
|
||||||
parse_lit_str(string).map_err(|_| {
|
string.parse().map_err(|_| {
|
||||||
cx.error_spanned_by(lit, format!("failed to parse path: {:?}", string.value()));
|
cx.error_spanned_by(lit, format!("failed to parse path: {:?}", string.value()));
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -1633,7 +1632,8 @@ fn parse_lit_into_where(
|
|||||||
|
|
||||||
let where_string = syn::LitStr::new(&format!("where {}", string.value()), string.span());
|
let where_string = syn::LitStr::new(&format!("where {}", string.value()), string.span());
|
||||||
|
|
||||||
parse_lit_str::<syn::WhereClause>(&where_string)
|
where_string
|
||||||
|
.parse::<syn::WhereClause>()
|
||||||
.map(|wh| wh.predicates.into_iter().collect())
|
.map(|wh| wh.predicates.into_iter().collect())
|
||||||
.map_err(|err| cx.error_spanned_by(lit, err))
|
.map_err(|err| cx.error_spanned_by(lit, err))
|
||||||
}
|
}
|
||||||
@ -1641,7 +1641,7 @@ fn parse_lit_into_where(
|
|||||||
fn parse_lit_into_ty(cx: &Ctxt, attr_name: Symbol, lit: &syn::Lit) -> Result<syn::Type, ()> {
|
fn parse_lit_into_ty(cx: &Ctxt, attr_name: Symbol, lit: &syn::Lit) -> Result<syn::Type, ()> {
|
||||||
let string = get_lit_str(cx, attr_name, lit)?;
|
let string = get_lit_str(cx, attr_name, lit)?;
|
||||||
|
|
||||||
parse_lit_str(string).map_err(|_| {
|
string.parse().map_err(|_| {
|
||||||
cx.error_spanned_by(
|
cx.error_spanned_by(
|
||||||
lit,
|
lit,
|
||||||
format!("failed to parse type: {} = {:?}", attr_name, string.value()),
|
format!("failed to parse type: {} = {:?}", attr_name, string.value()),
|
||||||
@ -1670,7 +1670,7 @@ fn parse_lit_into_lifetimes(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Ok(BorrowedLifetimes(lifetimes)) = parse_lit_str(string) {
|
if let Ok(BorrowedLifetimes(lifetimes)) = string.parse() {
|
||||||
let mut set = BTreeSet::new();
|
let mut set = BTreeSet::new();
|
||||||
for lifetime in lifetimes {
|
for lifetime in lifetimes {
|
||||||
if !set.insert(lifetime.clone()) {
|
if !set.insert(lifetime.clone()) {
|
||||||
@ -1933,16 +1933,3 @@ fn collect_lifetimes_from_tokens(tokens: TokenStream, out: &mut BTreeSet<syn::Li
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_lit_str<T>(s: &syn::LitStr) -> syn::Result<T>
|
|
||||||
where
|
|
||||||
T: Parse,
|
|
||||||
{
|
|
||||||
let tokens = spanned_tokens(s)?;
|
|
||||||
syn::parse2(tokens)
|
|
||||||
}
|
|
||||||
|
|
||||||
fn spanned_tokens(s: &syn::LitStr) -> syn::Result<TokenStream> {
|
|
||||||
let stream = syn::parse_str(&s.value())?;
|
|
||||||
Ok(respan(stream, s.span()))
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user