|
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