The compiler already knows if the variable is initialized and gives a hint. Do you want it to issue a warning for that with new syntax?
No. The problem is that there the compiler is emitting a hint for a non-initialized "var" that it really shouldn't be emitting. Here are the cases:
1. for a var, the compiler cannot make any assumptions as to whether the variable is initialized or not, any assumption in that regard is simply incorrect and should be fixed. FPC is emitting a hint for an un-initialized variable. It shouldn't be doing that since passing an uninitialized var is correct and very common.
I also want to note that, this in no way changes any of the semantics of the "var" keyword, everything stays the same _except_ for the part of the compiler that decides when to emit or not emit a hint.
That should be cleaned up because the hint is the result of an incorrect assumption or, being a bit "too helpful". Changing error handling is not the same as changing the language.
2. if there was an "inout" way of passing a variable then the compiler can emit a warning for passing an uninitialized variable because "in" tells the compiler that the variable should have been initialized (something the "var" keyword does not do) and emit a warning if the "inout" variable isn't written to in the function/procedure.
What I'm suggesting is, clean up/correct the part of the compiler that mistakenly believes that a "var" should be initialized, that's incorrect. Everything about "var" stays the same.
Add the keyword "inout" so the compiler can emit, not a hint but, a warning because "inout" explicitly tells the compiler that the variable should have been initialized. Given that knowledge, it can rightfully emit a warning.
The other thing it automatically cleans up is the currently incorrect behavior of the -gt switch. That switch _assumes_ that an "out" parameter has not been initialized, which is incorrect but, that assumption would be correct if the compiler had a way for the programmer to declare that the variable should have been initialized, because in that case, "out" should only be used when the variable is _not_ initialized since, if the variable should be initialized then the parameter should be "inout" not just "out".
It would make things clean and _precise_ which FPC is seriously lacking in its handling of parameters.
A bit of calling convention and warning management is good. Obsessing about it a poison.
It really is a terrible thing to want things done correctly. It's so much easier to have them all messed up.