4343//! # Testing
4444//! The [`test_bake`] macro can be used to assert that a particular expression is a `Bake` fixed point.
4545//!
46- //! ```no_run
47- //! # // https://github.com/rust-lang/rust/issues/98906
46+ //! ```
4847//! # use databake::*;
4948//! # #[derive(Bake)]
5049//! # #[databake(path = my_crate)]
5958//! # fn main() {
6059//! test_bake!(
6160//! AnotherOne,
62- //! const: crate::AnotherOne(
61+ //! const, crate::AnotherOne(
6362//! crate::MyStruct {
6463//! number: 17u32,
6564//! string: "foo",
@@ -135,7 +134,7 @@ pub trait Bake {
135134///
136135/// ```
137136/// # use databake::test_bake;
138- /// test_bake!(usize, const: 18usize);
137+ /// test_bake!(usize, const, 18usize);
139138/// ```
140139///
141140/// ## Crates and imports
@@ -164,7 +163,7 @@ pub trait Bake {
164163/// `CrateEnv`. The `crate`-replacement crate will always be checked.
165164#[ macro_export]
166165macro_rules! test_bake {
167- ( $type: ty, const : $expr: expr $( , $krate: ident) ? $( , [ $( $env_crate: ident) ,+] ) ? $( , ) ?) => {
166+ ( $type: ty, const , $expr: expr $( , $krate: ident) ? $( , [ $( $env_crate: ident) ,+] ) ? $( , ) ?) => {
168167 const _: & $type = & $expr;
169168 $crate:: test_bake!( $type, $expr $( , $krate) ? $( , [ $( $env_crate) ,+] ) ?) ;
170169 } ;
@@ -173,8 +172,11 @@ macro_rules! test_bake {
173172 let env = Default :: default ( ) ;
174173 let expr: & $type = & $expr;
175174 let bake = $crate:: Bake :: bake( expr, & env) . to_string( ) ;
176- // `TokenStream::to_string` and the `stringify!` macro seem to disagree on this
175+ // For some reason `TokenStream` behaves differently in this line
177176 let expected_bake = $crate:: quote!( $expr) . to_string( ) . replace( "::<" , ":: <" ) . replace( ">::" , "> ::" ) ;
177+ // Trailing commas are a mess as well
178+ let bake = bake. replace( " ,)" , ")" ) . replace( " ,]" , "]" ) . replace( " , }" , " }" ) ;
179+ let expected_bake = expected_bake. replace( " ,)" , ")" ) . replace( " ,]" , "]" ) . replace( " , }" , " }" ) ;
178180 $(
179181 let expected_bake = expected_bake. replace( "crate" , stringify!( $krate) ) ;
180182 ) ?
0 commit comments