File tree Expand file tree Collapse file tree 3 files changed +33
-0
lines changed 
tests/data/statements/valid Expand file tree Collapse file tree 3 files changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -664,6 +664,19 @@ fn custom_handlers(node: &Node) -> TokenStream {
664664 _ => panic!( "Unknown IndexElem {:#?}" ,  n. nulls_ordering( ) ) , 
665665 } 
666666 } , 
667+  "DefineStmt"  => quote !  { 
668+  tokens. push( TokenProperty :: from( Token :: Create ) ) ; 
669+  if  n. replace { 
670+  tokens. push( TokenProperty :: from( Token :: Or ) ) ; 
671+  tokens. push( TokenProperty :: from( Token :: Replace ) ) ; 
672+  } 
673+  match  n. kind( )  { 
674+  protobuf:: ObjectType :: ObjectOperator  => { 
675+  tokens. push( TokenProperty :: from( Token :: Operator ) ) ; 
676+  } , 
677+  _ => todo!( "Unknown DefineStmt {:#?}" ,  n. kind( ) ) 
678+  } 
679+  } , 
667680 _ => quote !  { } , 
668681 } 
669682} 
Original file line number Diff line number Diff line change @@ -224,4 +224,21 @@ mod tests {
224224 ] , 
225225 ) 
226226 } 
227+ 
228+  #[ test]  
229+  fn  test_create_operator ( )  { 
230+  test_get_node_properties ( 
231+  "create operator + ( 
232+  procedure = plusfunc, 
233+  leftarg = int4, 
234+  rightarg = int4 
235+  );" , 
236+  SyntaxKind :: DefineStmt , 
237+  vec ! [ 
238+  TokenProperty :: from( SyntaxKind :: Create ) , 
239+  TokenProperty :: from( SyntaxKind :: Operator ) , 
240+  TokenProperty :: from( "+" . to_string( ) ) , 
241+  ] , 
242+  ) 
243+  } 
227244} 
Original file line number Diff line number Diff line change 1+ CREATE OPERATOR +  (procedure =  plusfunc);
2+ CREATE OPERATOR +  (procedure =  plusfunc, leftarg =  int4, rightarg =  int4);
3+ CREATE OPERATOR +  (procedure =  plusfunc, hashes, merges);
                         You can’t perform that action at this time. 
           
                  
0 commit comments