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

View file

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

View file

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

View file

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