@@ -2426,7 +2426,7 @@ mod input_types {
24262426 add_declarations ( & mut engine_state) ;
24272427
24282428 let mut working_set = StateWorkingSet :: new ( & engine_state) ;
2429- parse (
2429+ let block = parse (
24302430 & mut working_set,
24312431 None ,
24322432 b"if false { 'a' } else { $foo }" ,
@@ -2437,6 +2437,30 @@ mod input_types {
24372437 working_set. parse_errors. first( ) ,
24382438 Some ( ParseError :: VariableNotFound ( _, _) )
24392439 ) ) ;
2440+
2441+ let element = & block
2442+ . pipelines
2443+ . first ( )
2444+ . unwrap ( )
2445+ . elements
2446+ . first ( )
2447+ . unwrap ( )
2448+ . expr ;
2449+ let Expr :: Call ( call) = & element. expr else {
2450+ eprintln ! ( "{:?}" , element. expr) ;
2451+ panic ! ( "Expected Expr::Call" ) ;
2452+ } ;
2453+ let Expr :: Keyword ( else_kwd) = & call
2454+ . arguments
2455+ . get ( 2 )
2456+ . expect ( "This call of `if` should have 3 arguments" )
2457+ . expr ( )
2458+ . unwrap ( )
2459+ . expr
2460+ else {
2461+ panic ! ( "Expected Expr::Keyword" ) ;
2462+ } ;
2463+ assert ! ( !matches!( else_kwd. expr. expr, Expr :: Garbage ) )
24402464 }
24412465
24422466 #[ test]
@@ -2597,7 +2621,7 @@ mod record {
25972621 let engine_state = EngineState :: new ( ) ;
25982622 let mut working_set = StateWorkingSet :: new ( & engine_state) ;
25992623 let block = parse ( & mut working_set, None , expr, false ) ;
2600- assert ! ( working_set. parse_errors. first ( ) . is_none ( ) ) ;
2624+ assert ! ( working_set. parse_errors. is_empty ( ) ) ;
26012625 let pipeline_el_expr = & block
26022626 . pipelines
26032627 . first ( )
0 commit comments