diff --git a/maud/tests/absolute_paths.rs b/maud/tests/absolute_paths.rs new file mode 100644 index 0000000..baee0b3 --- /dev/null +++ b/maud/tests/absolute_paths.rs @@ -0,0 +1,13 @@ +#![feature(proc_macro_hygiene)] + +// Make sure `std` is available but the prelude isn't +#![no_std] +extern crate std; + +use maud::html; + +#[test] +fn issue_170() { + let number = 42; + let _ = html! { (number) }; +} diff --git a/maud_macros/src/generate.rs b/maud_macros/src/generate.rs index d48a860..f4c9d45 100644 --- a/maud_macros/src/generate.rs +++ b/maud_macros/src/generate.rs @@ -84,7 +84,7 @@ impl Generator { quote!({ // Create a local trait alias so that autoref works trait Render: maud::Render { - fn __maud_render_to(&self, output_ident: &mut String) { + fn __maud_render_to(&self, output_ident: &mut ::std::string::String) { maud::Render::render_to(self, output_ident); } } diff --git a/maud_macros/src/lib.rs b/maud_macros/src/lib.rs index 010e3cd..1803ea7 100644 --- a/maud_macros/src/lib.rs +++ b/maud_macros/src/lib.rs @@ -46,7 +46,7 @@ fn expand(input: TokenStream) -> TokenStream { let stmts = generate::generate(markups, output_ident.clone()); quote!({ extern crate maud; - let mut $output_ident = String::with_capacity($size_hint); + let mut $output_ident = ::std::string::String::with_capacity($size_hint); $stmts maud::PreEscaped($output_ident) })