@@ -684,6 +684,19 @@ fn test_odd_calls() {
684
684
} ) ) ,
685
685
) ]
686
686
) ;
687
+ assert_eq ! (
688
+ Ast :: from_str( "{{ a(b) |c }}" , None , & syntax) . unwrap( ) . nodes,
689
+ vec![ Node :: Expr (
690
+ Ws ( None , None ) ,
691
+ WithSpan :: no_span( Expr :: Filter ( Filter {
692
+ name: "c" ,
693
+ arguments: vec![ WithSpan :: no_span( Expr :: Call (
694
+ Box :: new( WithSpan :: no_span( Expr :: Var ( "a" ) ) ) ,
695
+ vec![ WithSpan :: no_span( Expr :: Var ( "b" ) ) ]
696
+ ) ) ]
697
+ } ) ) ,
698
+ ) ]
699
+ ) ;
687
700
}
688
701
689
702
#[ test]
@@ -833,6 +846,18 @@ fn test_parse_tuple() {
833
846
} ) ) ,
834
847
) ] ,
835
848
) ;
849
+ assert_eq ! (
850
+ Ast :: from_str( "{{ () | abs }}" , None , & syntax)
851
+ . unwrap( )
852
+ . nodes,
853
+ vec![ Node :: Expr (
854
+ Ws ( None , None ) ,
855
+ WithSpan :: no_span( Expr :: Filter ( Filter {
856
+ name: "abs" ,
857
+ arguments: vec![ WithSpan :: no_span( Expr :: Tuple ( vec![ ] ) ) ]
858
+ } ) ) ,
859
+ ) ] ,
860
+ ) ;
836
861
assert_eq ! (
837
862
Ast :: from_str( "{{ (1)|abs }}" , None , & syntax) . unwrap( ) . nodes,
838
863
vec![ Node :: Expr (
@@ -845,6 +870,20 @@ fn test_parse_tuple() {
845
870
} ) ) ,
846
871
) ] ,
847
872
) ;
873
+ assert_eq ! (
874
+ Ast :: from_str( "{{ (1) | abs }}" , None , & syntax)
875
+ . unwrap( )
876
+ . nodes,
877
+ vec![ Node :: Expr (
878
+ Ws ( None , None ) ,
879
+ WithSpan :: no_span( Expr :: Filter ( Filter {
880
+ name: "abs" ,
881
+ arguments: vec![ WithSpan :: no_span( Expr :: Group ( Box :: new( WithSpan :: no_span(
882
+ Expr :: NumLit ( "1" )
883
+ ) ) ) ) ]
884
+ } ) ) ,
885
+ ) ] ,
886
+ ) ;
848
887
assert_eq ! (
849
888
Ast :: from_str( "{{ (1,)|abs }}" , None , & syntax)
850
889
. unwrap( )
@@ -859,6 +898,20 @@ fn test_parse_tuple() {
859
898
} ) ) ,
860
899
) ] ,
861
900
) ;
901
+ assert_eq ! (
902
+ Ast :: from_str( "{{ (1,) | abs }}" , None , & syntax)
903
+ . unwrap( )
904
+ . nodes,
905
+ vec![ Node :: Expr (
906
+ Ws ( None , None ) ,
907
+ WithSpan :: no_span( Expr :: Filter ( Filter {
908
+ name: "abs" ,
909
+ arguments: vec![ WithSpan :: no_span( Expr :: Tuple ( vec![ WithSpan :: no_span(
910
+ Expr :: NumLit ( "1" )
911
+ ) ] ) ) ]
912
+ } ) ) ,
913
+ ) ] ,
914
+ ) ;
862
915
assert_eq ! (
863
916
Ast :: from_str( "{{ (1, 2)|abs }}" , None , & syntax)
864
917
. unwrap( )
@@ -874,6 +927,21 @@ fn test_parse_tuple() {
874
927
} ) ) ,
875
928
) ] ,
876
929
) ;
930
+ assert_eq ! (
931
+ Ast :: from_str( "{{ (1, 2) | abs }}" , None , & syntax)
932
+ . unwrap( )
933
+ . nodes,
934
+ vec![ Node :: Expr (
935
+ Ws ( None , None ) ,
936
+ WithSpan :: no_span( Expr :: Filter ( Filter {
937
+ name: "abs" ,
938
+ arguments: vec![ WithSpan :: no_span( Expr :: Tuple ( vec![
939
+ WithSpan :: no_span( Expr :: NumLit ( "1" ) ) ,
940
+ WithSpan :: no_span( Expr :: NumLit ( "2" ) )
941
+ ] ) ) ]
942
+ } ) ) ,
943
+ ) ] ,
944
+ ) ;
877
945
}
878
946
879
947
#[ test]
@@ -977,6 +1045,16 @@ fn test_parse_array() {
977
1045
} ) )
978
1046
) ] ,
979
1047
) ;
1048
+ assert_eq ! (
1049
+ Ast :: from_str( "{{ [] |foo }}" , None , & syntax) . unwrap( ) . nodes,
1050
+ vec![ Node :: Expr (
1051
+ Ws ( None , None ) ,
1052
+ WithSpan :: no_span( Expr :: Filter ( Filter {
1053
+ name: "foo" ,
1054
+ arguments: vec![ WithSpan :: no_span( Expr :: Array ( vec![ ] ) ) ]
1055
+ } ) )
1056
+ ) ] ,
1057
+ ) ;
980
1058
}
981
1059
982
1060
#[ test]
0 commit comments