|
1 | 1 | //! `tt` crate defines a `TokenTree` data structure: this is the interface (both |
2 | 2 | //! input and output) of macros. It closely mirrors `proc_macro` crate's |
3 | 3 | //! `TokenTree`. |
4 | | -use std::{ |
5 | | - fmt::{self, Debug}, |
6 | | - panic::RefUnwindSafe, |
7 | | -}; |
| 4 | +use std::{fmt, panic::RefUnwindSafe}; |
8 | 5 |
|
9 | 6 | use stdx::impl_from; |
10 | 7 |
|
@@ -139,7 +136,7 @@ fn print_debug_token(f: &mut fmt::Formatter<'_>, tkn: &TokenTree, level: usize) |
139 | 136 | Ok(()) |
140 | 137 | } |
141 | 138 |
|
142 | | -impl Debug for Subtree { |
| 139 | +impl fmt::Debug for Subtree { |
143 | 140 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
144 | 141 | print_debug_subtree(f, self, 0) |
145 | 142 | } |
@@ -245,13 +242,13 @@ impl fmt::Display for ExpansionError { |
245 | 242 | match self { |
246 | 243 | ExpansionError::IOError(e) => write!(f, "I/O error: {}", e), |
247 | 244 | ExpansionError::JsonError(e) => write!(f, "JSON decoding error: {}", e), |
248 | | - ExpansionError::Unknown(e) => write!(f, "{}", e), |
| 245 | + ExpansionError::Unknown(e) => e.fmt(f), |
249 | 246 | ExpansionError::ExpansionError(e) => write!(f, "proc macro returned error: {}", e), |
250 | 247 | } |
251 | 248 | } |
252 | 249 | } |
253 | 250 |
|
254 | | -pub trait TokenExpander: Debug + Send + Sync + RefUnwindSafe { |
| 251 | +pub trait TokenExpander: fmt::Debug + Send + Sync + RefUnwindSafe { |
255 | 252 | fn expand(&self, subtree: &Subtree, attrs: Option<&Subtree>) |
256 | 253 | -> Result<Subtree, ExpansionError>; |
257 | 254 | } |
0 commit comments