@@ -9,7 +9,8 @@ fn test() {
99 #[ derive( Attribute ) ]
1010 #[ attribute( ident = "test" ) ]
1111 struct Test {
12- // a: u8,
12+ #[ attribute( positional) ]
13+ a : u8 ,
1314 b : LitStr ,
1415 c : String ,
1516 oc : Option < String > ,
@@ -23,9 +24,10 @@ fn test() {
2324 }
2425
2526 let parsed = Test :: from_attributes ( [
26- parse_quote ! ( #[ test( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
27+ parse_quote ! ( #[ test( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
2728 ] . iter ( ) )
2829 . unwrap ( ) ;
30+ assert_eq ! ( parsed. a, 8 ) ;
2931 assert_eq ! ( parsed. b. value( ) , "hi" ) ;
3032 assert_eq ! ( parsed. c, "ho" ) ;
3133 assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -38,9 +40,10 @@ fn test() {
3840 assert_eq ! ( parsed. i. to_string( ) , "smth :: hello + 24 / 3 'a' , b = c" ) ;
3941
4042 let parsed = Test :: from_args (
41- quote ! ( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
43+ quote ! ( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
4244 )
4345 . unwrap ( ) ;
46+ assert_eq ! ( parsed. a, 8 ) ;
4447 assert_eq ! ( parsed. b. value( ) , "hi" ) ;
4548 assert_eq ! ( parsed. c, "ho" ) ;
4649 assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -54,10 +57,11 @@ fn test() {
5457
5558 let mut attrs = vec ! [
5659 parse_quote!( #[ something] ) ,
57- parse_quote!( #[ test( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
60+ parse_quote!( #[ test( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c) ] ) ,
5861 parse_quote!( #[ another( smth) ] ) ,
5962 ] ;
6063 let parsed = Test :: remove_attributes ( & mut attrs) . unwrap ( ) ;
64+ assert_eq ! ( parsed. a, 8 ) ;
6165 assert_eq ! ( parsed. b. value( ) , "hi" ) ;
6266 assert_eq ! ( parsed. c, "ho" ) ;
6367 assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
@@ -71,9 +75,10 @@ fn test() {
7175 assert_eq ! ( attrs. len( ) , 2 ) ;
7276
7377 let parsed: Test = parse2 (
74- quote ! ( b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
78+ quote ! ( 8 , b="hi" , c="ho" , oc="xD" , d=( ) , e=if true { "a" } else { "b" } , f= [ ( ) , Debug ] , g, i = smth:: hello + 24 /3 'a' , b = c)
7579 )
7680 . unwrap ( ) ;
81+ assert_eq ! ( parsed. a, 8 ) ;
7782 assert_eq ! ( parsed. b. value( ) , "hi" ) ;
7883 assert_eq ! ( parsed. c, "ho" ) ;
7984 assert_eq ! ( parsed. oc, Some ( "xD" . to_owned( ) ) ) ;
0 commit comments