Tipo de retorno de '?:' (Operador condicional ternário)

Por que o primeiro retorna uma referência?

int x = 1;
int y = 2;
(x > y ? x : y) = 100;

Enquanto o segundo não?

int x = 1;
long y = 2;
(x > y ? x : y) = 100;

Na verdade, o segundo não foi compilado - "não lvalue restante da atribuição"

questionAnswers(3)

yourAnswerToTheQuestion