File tree Expand file tree Collapse file tree 2 files changed +46
-0
lines changed
Expand file tree Collapse file tree 2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change @@ -56,6 +56,35 @@ fn test_fn_like_macro_clone_ident_subtree() {
5656 ) ;
5757}
5858
59+ #[ test]
60+ fn test_fn_like_macro_clone_raw_ident ( ) {
61+ assert_expand (
62+ "fn_like_clone_tokens" ,
63+ "r#\" ident\" #" ,
64+ expect ! [ [ r##"
65+ SUBTREE $
66+ LITERAL r#"ident"# 4294967295"## ] ] ,
67+ ) ;
68+ }
69+
70+ #[ test]
71+ fn test_fn_like_mk_literals ( ) {
72+ assert_expand (
73+ "fn_like_mk_literals" ,
74+ r#""# ,
75+ expect ! [ [ r#"
76+ SUBTREE $
77+ LITERAL b"byte_string" 4294967295
78+ LITERAL 'c' 4294967295
79+ LITERAL "string" 4294967295
80+ LITERAL "maybe \"raw\"?" 4294967295
81+ LITERAL 3.14f64 4294967295
82+ LITERAL 3.14 4294967295
83+ LITERAL 123i64 4294967295
84+ LITERAL 123 4294967295"# ] ] ,
85+ ) ;
86+ }
87+
5988#[ test]
6089fn test_fn_like_macro_clone_literals ( ) {
6190 assert_expand (
@@ -105,6 +134,7 @@ fn list_test_macros() {
105134 fn_like_panic [FuncLike]
106135 fn_like_error [FuncLike]
107136 fn_like_clone_tokens [FuncLike]
137+ fn_like_mk_literals [FuncLike]
108138 attr_noop [Attr]
109139 attr_panic [Attr]
110140 attr_error [Attr]
Original file line number Diff line number Diff line change @@ -24,6 +24,22 @@ pub fn fn_like_clone_tokens(args: TokenStream) -> TokenStream {
2424 clone_stream ( args)
2525}
2626
27+ #[ proc_macro]
28+ pub fn fn_like_mk_literals ( _args : TokenStream ) -> TokenStream {
29+ let trees: Vec < TokenTree > = vec ! [
30+ TokenTree :: from( Literal :: byte_string( b"byte_string" ) ) ,
31+ TokenTree :: from( Literal :: character( 'c' ) ) ,
32+ TokenTree :: from( Literal :: string( "string" ) ) ,
33+ // as of 2022-07-21, there's no method on `Literal` to build a raw
34+ // string or a raw byte string
35+ TokenTree :: from( Literal :: f64_suffixed( 3.14 ) ) ,
36+ TokenTree :: from( Literal :: f64_unsuffixed( 3.14 ) ) ,
37+ TokenTree :: from( Literal :: i64_suffixed( 123 ) ) ,
38+ TokenTree :: from( Literal :: i64_unsuffixed( 123 ) ) ,
39+ ] ;
40+ TokenStream :: from_iter ( trees)
41+ }
42+
2743#[ proc_macro_attribute]
2844pub fn attr_noop ( _args : TokenStream , item : TokenStream ) -> TokenStream {
2945 item
You can’t perform that action at this time.
0 commit comments