Compiler: Directive {$WARN} does not accept "+"/"-" instead of "ON"/"OFF"
Summary
The documentation gives an example of usage that does not compile:
This directive allows to selectively turn on or off the emission of warnings. It takes the following form
{$WARN IDENTIFIER ON}
{$WARN IDENTIFIER OFF}
{$WARN IDENTIFIER +}
{$WARN IDENTIFIER -}
{$WARN IDENTIFIER ERROR}
ON or + turns on emission of the warning. The OFF or - values suppress the warning. ERROR promotes the warning to an error, and the compiler will treat it as such.
Another question is, is there a need for a space between the number and the plus/minus (see documentation#39390 (closed))?
Example
program Project1;
// id
{$WARN 5023 ON} // compiles
{$WARN 5023 OFF} // compiles
{$WARN 5023 +} // ERROR
{$WARN 5023 -} // ERROR
{$WARN 5023+} // ERROR
{$WARN 5023-} // ERROR
{$WARN 5023 ERROR} // compiles
// name
{$WARN NO_RETVAL ON} // compiles
{$WARN NO_RETVAL OFF} // compiles
{$WARN NO_RETVAL +} // ERROR
{$WARN NO_RETVAL -} // ERROR
{$WARN NO_RETVAL+} // ERROR
{$WARN NO_RETVAL-} // ERROR
{$WARN NO_RETVAL ERROR} // compiles
begin
end.