if-expression (?:) type propagation bug