@@ -466,13 +466,19 @@ def evaluate_multi_write_node(node, scope)
466466 value . is_a? ( Array ) ? Types . array_of ( *value ) : value
467467 end
468468
469- def evaluate_if_node ( node , scope ) = evaluate_if_unless ( node , scope )
470- def evaluate_unless_node ( node , scope ) = evaluate_if_unless ( node , scope )
471- def evaluate_if_unless ( node , scope )
469+ def evaluate_if_node ( node , scope )
472470 evaluate node . predicate , scope
473471 Types ::UnionType [ *scope . run_branches (
474472 -> { node . statements ? evaluate ( node . statements , _1 ) : Types ::NIL } ,
475- -> { node . consequent ? evaluate ( node . consequent , _1 ) : Types ::NIL }
473+ -> { node . subsequent ? evaluate ( node . subsequent , _1 ) : Types ::NIL }
474+ ) ]
475+ end
476+
477+ def evaluate_unless_node ( node , scope )
478+ evaluate node . predicate , scope
479+ Types ::UnionType [ *scope . run_branches (
480+ -> { node . statements ? evaluate ( node . statements , _1 ) : Types ::NIL } ,
481+ -> { node . else_clause ? evaluate ( node . else_clause , _1 ) : Types ::NIL }
476482 ) ]
477483 end
478484
@@ -582,10 +588,10 @@ def evaluate_rescue_node(node, scope)
582588 end
583589 node . statements ? evaluate ( node . statements , s ) : Types ::NIL
584590 end
585- if node . consequent # begin; rescue A; rescue B; end
591+ if node . subsequent # begin; rescue A; rescue B; end
586592 types = scope . run_branches (
587593 run_rescue ,
588- -> { evaluate node . consequent , _1 }
594+ -> { evaluate node . subsequent , _1 }
589595 )
590596 Types ::UnionType [ *types ]
591597 else
@@ -700,8 +706,8 @@ def evaluate_case_node(node, scope)
700706 branches = node . conditions . map do |condition |
701707 -> ( s ) { evaluate_case_when_condition condition , s }
702708 end
703- if node . consequent
704- branches << -> ( s ) { evaluate node . consequent , s }
709+ if node . else_clause
710+ branches << -> ( s ) { evaluate node . else_clause , s }
705711 else
706712 branches << -> ( _s ) { Types ::NIL }
707713 end
@@ -714,8 +720,8 @@ def evaluate_case_match_node(node, scope)
714720 branches = node . conditions . map do |condition |
715721 -> ( s ) { evaluate_case_in_condition target , condition , s }
716722 end
717- if node . consequent
718- branches << -> ( s ) { evaluate node . consequent , s }
723+ if node . else_clause
724+ branches << -> ( s ) { evaluate node . else_clause , s }
719725 end
720726 Types ::UnionType [ *scope . run_branches ( *branches ) ]
721727 end
0 commit comments