Refactor in preparation for #449
refactoring for #449
fix #449
if expressions, #453
refactor switch for #453
forceName with null forgets the declaration
implement switch expression for #453
tests for #449 and #453
slight optimization of if expression #453