Yes, constants don't have a type, but if you 'type' a constant, it's no longer a constant but an initialised variable. (Thank you, Turbo Pascal...)
it's interesting to me that
is fine, even when it's known at compile time that both n and i = 1.
(And I still think the compiler should realise that the end result is an integer expression and not jump to conclusions just because evaluation of it starts with two words.)