@@ -14,10 +14,10 @@ use syn::{
1414} ;
1515
1616use crate :: {
17- extract_doc_comment , extract_feeds_attribute , extract_receiver , get_feed_exprs ,
18- has_custom_attribute , has_empty_body , parse , validate , validate_feed_type_match , ContractData ,
19- CustomDataDriverHandler , DataDriverRole , EmitVisitor , EventInfo , FunctionInfo , ImportInfo ,
20- ParameterInfo , TraitImplInfo ,
17+ ContractData , CustomDataDriverHandler , DataDriverRole , EmitVisitor , EventInfo , FunctionInfo ,
18+ ImportInfo , ParameterInfo , TraitImplInfo , extract_doc_comment , extract_feeds_attribute ,
19+ extract_receiver , get_feed_exprs , has_custom_attribute , has_empty_body , parse , validate ,
20+ validate_feed_type_match ,
2121} ;
2222
2323/// Validate feed-related attributes for a method.
@@ -31,7 +31,7 @@ use crate::{
3131fn validate_feeds (
3232 method : & ImplItemFn ,
3333 name : & Ident ,
34- feed_type : & Option < TokenStream2 > ,
34+ feed_type : Option < & TokenStream2 > ,
3535) -> Result < ( ) , syn:: Error > {
3636 let feed_exprs = get_feed_exprs ( method) ;
3737
@@ -52,7 +52,7 @@ fn validate_feeds(
5252 ) ) ;
5353 }
5454
55- if let Some ( ref ft) = feed_type {
55+ if let Some ( ft) = feed_type {
5656 // Has feeds attribute - validate it matches the expressions
5757 if let Some ( mismatch_msg) = validate_feed_type_match ( & ft. to_string ( ) , & feed_exprs) {
5858 return Err ( syn:: Error :: new_spanned ( & method. sig , mismatch_msg) ) ;
@@ -156,7 +156,7 @@ pub(crate) fn trait_methods(trait_impl: &TraitImplInfo) -> Result<Vec<FunctionIn
156156 // Validate feed-related attributes
157157 // (only check non-empty bodies since empty bodies delegate to trait defaults)
158158 if !is_default_impl {
159- validate_feeds ( method, & name, & feed_type) ?;
159+ validate_feeds ( method, & name, feed_type. as_ref ( ) ) ?;
160160 }
161161
162162 // Extract parameters (name and type)
@@ -236,7 +236,7 @@ pub(crate) fn public_methods(impl_block: &ItemImpl) -> Result<Vec<FunctionInfo>,
236236 let receiver = extract_receiver ( method) ;
237237
238238 // Validate feed-related attributes
239- validate_feeds ( method, & name, & feed_type) ?;
239+ validate_feeds ( method, & name, feed_type. as_ref ( ) ) ?;
240240
241241 // Extract parameters (name and type)
242242 let params = parameters ( method) ;
@@ -884,7 +884,7 @@ mod tests {
884884 }
885885 } ;
886886 let name = format_ident ! ( "stream_data" ) ;
887- let result = validate_feeds ( & method, & name, & None ) ;
887+ let result = validate_feeds ( & method, & name, None ) ;
888888
889889 let Err ( err) = result else {
890890 panic ! ( "expected error for missing feeds attribute" ) ;
@@ -911,7 +911,7 @@ mod tests {
911911 } ;
912912 let name = format_ident ! ( "stream_multiple" ) ;
913913 let feed_type: TokenStream2 = quote ! { u64 } ;
914- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
914+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
915915
916916 let Err ( err) = result else {
917917 panic ! ( "expected error for multiple feed calls" ) ;
@@ -936,7 +936,7 @@ mod tests {
936936 } ;
937937 let name = format_ident ! ( "stream_mismatch" ) ;
938938 let feed_type: TokenStream2 = quote ! { ( u64 , u64 ) } ;
939- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
939+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
940940
941941 let Err ( err) = result else {
942942 panic ! ( "expected error for tuple mismatch" ) ;
@@ -958,7 +958,7 @@ mod tests {
958958 } ;
959959 let name = format_ident ! ( "stream_valid" ) ;
960960 let feed_type: TokenStream2 = quote ! { u64 } ;
961- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
961+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
962962
963963 assert ! ( result. is_ok( ) , "valid feeds usage should not error" ) ;
964964 }
@@ -971,7 +971,7 @@ mod tests {
971971 }
972972 } ;
973973 let name = format_ident ! ( "regular_method" ) ;
974- let result = validate_feeds ( & method, & name, & None ) ;
974+ let result = validate_feeds ( & method, & name, None ) ;
975975
976976 assert ! (
977977 result. is_ok( ) ,
@@ -991,7 +991,7 @@ mod tests {
991991 } ;
992992 let name = format_ident ! ( "stream_in_loop" ) ;
993993 let feed_type: TokenStream2 = quote ! { u64 } ;
994- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
994+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
995995
996996 // A single feed call inside a loop is valid
997997 assert ! ( result. is_ok( ) , "single feed call in loop should be valid" ) ;
@@ -1010,7 +1010,7 @@ mod tests {
10101010 } ;
10111011 let name = format_ident ! ( "stream_multiple_in_loop" ) ;
10121012 let feed_type: TokenStream2 = quote ! { u64 } ;
1013- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
1013+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
10141014
10151015 let Err ( err) = result else {
10161016 panic ! ( "expected error for multiple feed calls in loop" ) ;
@@ -1034,7 +1034,7 @@ mod tests {
10341034 } ;
10351035 let name = format_ident ! ( "stream_conditional" ) ;
10361036 let feed_type: TokenStream2 = quote ! { u64 } ;
1037- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
1037+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
10381038
10391039 assert ! (
10401040 result. is_ok( ) ,
@@ -1056,7 +1056,7 @@ mod tests {
10561056 } ;
10571057 let name = format_ident ! ( "stream_branches" ) ;
10581058 let feed_type: TokenStream2 = quote ! { u64 } ;
1059- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
1059+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
10601060
10611061 let Err ( err) = result else {
10621062 panic ! ( "expected error for feed calls in multiple branches" ) ;
@@ -1078,7 +1078,7 @@ mod tests {
10781078 } ;
10791079 let name = format_ident ! ( "stream_wants_tuple" ) ;
10801080 let feed_type: TokenStream2 = quote ! { ( u64 , String ) } ;
1081- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
1081+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
10821082
10831083 let Err ( err) = result else {
10841084 panic ! ( "expected error for tuple mismatch" ) ;
@@ -1097,7 +1097,7 @@ mod tests {
10971097 } ;
10981098 let name = format_ident ! ( "stream_sends_tuple" ) ;
10991099 let feed_type: TokenStream2 = quote ! { u64 } ;
1100- let result = validate_feeds ( & method, & name, & Some ( feed_type) ) ;
1100+ let result = validate_feeds ( & method, & name, Some ( & feed_type) ) ;
11011101
11021102 let Err ( err) = result else {
11031103 panic ! ( "expected error for tuple mismatch" ) ;
0 commit comments