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.
The IDENTIFIER is the name of a warning message. The following names are recognized:
Constructing an instance of a class with abstract methods.
Implicit use of the variants unit.
Function result is not set.
Deprecated symbol.
Experimental symbol
Not used.
Platform-dependent symbol.
Unimplemented symbol.
Deprecated unit.
Experimental unit.
Platform dependent unit.
Unimplemented unit.
Converting 0 to NIL
Implicit string type conversion
Implicit string typecast with potential data loss from ”$1” to ”$2”
Explicit string type conversion
Explicit string typecast with potential data loss from ”$1” to ”$2”
Unicode constant cast with potential data loss
Using an interface raises the visibility of the implementation of a method. (this is an error for the JVM bytecode backend)
Besides the above text identifiers, the identifier can also be a message number. The numbers of the messages are displayed when the -vq command-line option is used.