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_ABSTRACT
- Constructing an instance of a class with abstract
methods.
-
IMPLICIT_VARIANTS
- Implicit use of the variants unit.
-
NO_RETVAL
- Function result is not set.
-
SYMBOL_DEPRECATED
- Deprecated symbol.
-
SYMBOL_EXPERIMENTAL
- Experimental symbol
-
SYMBOL_LIBRARY
- Not used.
-
SYMBOL_PLATFORM
- Platform-dependent symbol.
-
SYMBOL_UNIMPLEMENTED
- Unimplemented symbol.
-
UNIT_DEPRECATED
- Deprecated unit.
-
UNIT_EXPERIMENTAL
- Experimental unit.
-
UNIT_LIBRARY
-
-
UNIT_PLATFORM
- Platform dependent unit.
-
UNIT_UNIMPLEMENTED
- Unimplemented unit.
-
ZERO_NIL_COMPAT
- Converting 0 to NIL
-
IMPLICIT_STRING_CAST
- Implicit string type conversion
-
IMPLICIT_STRING_CAST_LOSS
- Implicit string typecast with potential data loss
from ”$1” to ”$2”
-
EXPLICIT_STRING_CAST
- Explicit string type conversion
-
EXPLICIT_STRING_CAST_LOSS
- Explicit string typecast with potential data loss
from ”$1” to ”$2”
-
CVT_NARROWING_STRING_LOST
- Unicode constant cast with potential data loss
-
INTF_RAISE_VISIBILITY
- 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.