This trick can only save people who remember to use it. Warnings emitted by tooling save everyone.
Also it's slightly awkward to read, as mentioned by others already.
Also it's slightly awkward to read, as mentioned by others already.
Re: awkwardness, it doesn't feel awkward at all to me; given that Erlang and Elixir use assignment for destructuring and pattern-matching, Yoda conditionals feel very natural to me in comparison.
For example, this is valid Elixir code:
foo = {1, 2}
bar = if {baz, 2} = foo do
525600
end
IO.inspect foo # prints {1,2}
IO.inspect bar # prints 525600
IO.inspect baz # prints 1You can't force everyone who edits your code to have linters and warnings turned on. Not everyone follows bests practices.