Fix regression with if-then-else expressions Commit 0041deba4 attempted to fix an issue where then- and else- branches of an if-expression were not correctly generalized if their inherent types differed. However, it did this by just setting the inherent type to the target type of the if-expression. But this does not work since the inherent calculation must be bottom up only. By accessing the target type in the inherent type, it could lead to infinite recursion. Instead, use the generlaizeArgResultTypesForNumeric to determine numeric inherent types. For non-numeric types, the then- and else- branches must have the same type, which is a similar restriction to comparison operators.