/src/test/ui/proc-macro/auxiliary/attr-stmt-expr-rpass.rs
https://gitlab.com/rust-lang/rust · Rust · 51 lines · 39 code · 10 blank · 2 comment · 0 complexity · cef299a9790824d6b5b99c6d0383d656 MD5 · raw file
- // force-host
- // no-prefer-dynamic
- #![crate_type = "proc-macro"]
- extern crate proc_macro;
- use proc_macro::TokenStream;
- #[proc_macro_attribute]
- pub fn expect_let(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert_eq!(item.to_string(), "let string = \"Hello, world!\" ;");
- item
- }
- #[proc_macro_attribute]
- pub fn expect_print_stmt(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert_eq!(item.to_string(), "println! (\"{}\", string) ;");
- item
- }
- #[proc_macro_attribute]
- pub fn expect_expr(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert_eq!(item.to_string(), "print_str(\"string\")");
- item
- }
- #[proc_macro_attribute]
- pub fn expect_print_expr(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert_eq!(item.to_string(), "println! (\"{}\", string)");
- item
- }
- #[proc_macro_attribute]
- pub fn no_output(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert!(!item.to_string().is_empty());
- "".parse().unwrap()
- }
- #[proc_macro_attribute]
- pub fn noop(attr: TokenStream, item: TokenStream) -> TokenStream {
- assert!(attr.to_string().is_empty());
- assert!(!item.to_string().is_empty());
- item
- }