If an if
's condition is var.nil?
then the type of var
in the then
branch is known by the compiler to be Nil
, and to be known as non-Nil
in the else
branch:
a = some_condition ? nil : 3 if a.nil? # here a is Nil else # here a is Int32 end
To the extent possible under law, the persons who contributed to this workhave waived
all copyright and related or neighboring rights to this workby associating CC0 with it.
https://crystal-lang.org/docs/syntax_and_semantics/if_var_nil.html