implement verbatim in prettyplease

This commit is contained in:
nora 2023-01-22 13:50:51 +01:00
parent 39c186233c
commit 045e766bf3
4 changed files with 11 additions and 43 deletions

View file

@ -686,13 +686,6 @@ impl Printer {
self.word("}"); self.word("}");
} }
#[cfg(not(feature = "verbatim"))]
fn expr_verbatim(&mut self, expr: &TokenStream) {
if !expr.is_empty() {
unimplemented!("Expr::Verbatim `{}`", expr);
}
}
#[cfg(feature = "verbatim")] #[cfg(feature = "verbatim")]
fn expr_verbatim(&mut self, tokens: &TokenStream) { fn expr_verbatim(&mut self, tokens: &TokenStream) {
use syn::parse::{Parse, ParseStream, Result}; use syn::parse::{Parse, ParseStream, Result};
@ -803,7 +796,7 @@ impl Printer {
let expr: ExprVerbatim = match syn::parse2(tokens.clone()) { let expr: ExprVerbatim = match syn::parse2(tokens.clone()) {
Ok(expr) => expr, Ok(expr) => expr,
Err(_) => unimplemented!("Expr::Verbatim `{}`", tokens), Err(_) => return self.word(tokens.to_string()),
}; };
match expr { match expr {

View file

@ -351,14 +351,6 @@ impl Printer {
self.hardbreak(); self.hardbreak();
} }
#[cfg(not(feature = "verbatim"))]
fn item_verbatim(&mut self, item: &TokenStream) {
if !item.is_empty() {
unimplemented!("Item::Verbatim `{}`", item);
}
self.hardbreak();
}
#[cfg(feature = "verbatim")] #[cfg(feature = "verbatim")]
fn item_verbatim(&mut self, tokens: &TokenStream) { fn item_verbatim(&mut self, tokens: &TokenStream) {
use syn::parse::{Parse, ParseStream, Result}; use syn::parse::{Parse, ParseStream, Result};
@ -387,7 +379,7 @@ impl Printer {
let item: ItemVerbatim = match syn::parse2(tokens.clone()) { let item: ItemVerbatim = match syn::parse2(tokens.clone()) {
Ok(item) => item, Ok(item) => item,
Err(_) => unimplemented!("Item::Verbatim `{}`", tokens), Err(_) => return self.word(tokens.to_string()),
}; };
match item { match item {
@ -532,14 +524,6 @@ impl Printer {
self.hardbreak(); self.hardbreak();
} }
#[cfg(not(feature = "verbatim"))]
fn foreign_item_verbatim(&mut self, foreign_item: &TokenStream) {
if !foreign_item.is_empty() {
unimplemented!("ForeignItem::Verbatim `{}`", foreign_item);
}
self.hardbreak();
}
#[cfg(feature = "verbatim")] #[cfg(feature = "verbatim")]
fn foreign_item_verbatim(&mut self, tokens: &TokenStream) { fn foreign_item_verbatim(&mut self, tokens: &TokenStream) {
use syn::parse::{Parse, ParseStream, Result}; use syn::parse::{Parse, ParseStream, Result};
@ -556,7 +540,11 @@ impl Printer {
let foreign_item: ForeignItemVerbatim = match syn::parse2(tokens.clone()) { let foreign_item: ForeignItemVerbatim = match syn::parse2(tokens.clone()) {
Ok(foreign_item) => foreign_item, Ok(foreign_item) => foreign_item,
Err(_) => unimplemented!("ForeignItem::Verbatim `{}`", tokens), Err(_) => {
self.word(tokens.to_string());
self.hardbreak();
return;
},
}; };
match foreign_item { match foreign_item {
@ -650,9 +638,7 @@ impl Printer {
} }
fn trait_item_verbatim(&mut self, trait_item: &TokenStream) { fn trait_item_verbatim(&mut self, trait_item: &TokenStream) {
if !trait_item.is_empty() { self.word(trait_item.to_string());
unimplemented!("TraitItem::Verbatim `{}`", trait_item);
}
self.hardbreak(); self.hardbreak();
} }
@ -747,9 +733,7 @@ impl Printer {
} }
fn impl_item_verbatim(&mut self, impl_item: &TokenStream) { fn impl_item_verbatim(&mut self, impl_item: &TokenStream) {
if !impl_item.is_empty() { self.word(impl_item.to_string());
unimplemented!("ImplItem::Verbatim `{}`", impl_item);
}
self.hardbreak(); self.hardbreak();
} }

View file

@ -191,7 +191,7 @@ impl Printer {
} }
fn pat_verbatim(&mut self, pat: &TokenStream) { fn pat_verbatim(&mut self, pat: &TokenStream) {
unimplemented!("Pat::Verbatim `{}`", pat); self.word(pat.to_string());
} }
fn pat_wild(&mut self, pat: &PatWild) { fn pat_wild(&mut self, pat: &PatWild) {

View file

@ -160,15 +160,6 @@ impl Printer {
self.word(")"); self.word(")");
} }
#[cfg(not(feature = "verbatim"))]
fn type_verbatim(&mut self, ty: &TokenStream) {
if ty.to_string() == "..." {
self.word("...");
} else {
unimplemented!("Type::Verbatim `{}`", ty);
}
}
#[cfg(feature = "verbatim")] #[cfg(feature = "verbatim")]
fn type_verbatim(&mut self, tokens: &TokenStream) { fn type_verbatim(&mut self, tokens: &TokenStream) {
use syn::parse::{Parse, ParseStream, Result}; use syn::parse::{Parse, ParseStream, Result};
@ -194,7 +185,7 @@ impl Printer {
let ty: TypeVerbatim = match syn::parse2(tokens.clone()) { let ty: TypeVerbatim = match syn::parse2(tokens.clone()) {
Ok(ty) => ty, Ok(ty) => ty,
Err(_) => unimplemented!("Type::Verbatim `{}`", tokens), Err(_) => return self.word(tokens.to_string()),
}; };
match ty { match ty {