Messages d'avertissement (Object Pascal)

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Object Pascal - Index


Type

Commutateur

Syntaxe

{$WARN identificateur ON | OFF | ERROR | DEFAULT}

Par défaut

Tous les avertissements sont activés

Portée

Locale


Remarques

La directive $WARN vous donne un contrôle affiné sur les messages d'avertissement individuels.

Syntaxe Effet
{$WARN identificateur ON} Permet au compilateur d'afficher l'avertissement spécifié par l'identificateur
{$WARN identificateur OFF} L'avertissement spécifié n'est pas affiché
{$WARN identificateur ERROR} L'avertissement spécifié est traité comme une erreur
{$WARN identificateur DEFAULT} Utilise les paramètres par défaut de la boîte de dialogue Options de projet.

Ces avertissements sont associés aux symboles ou aux unités utilisant les directives de conseil, platform, deprecated et library.

L'identificateur de la directive $WARN peut prendre l'une des valeurs suivantes :


Les seuls avertissements pouvant être activés ou désactivés en utilisant $WARN sont ceux que nous venons d'énumérer.

Les avertissements définis par la directive inline $WARN s'appliquent à l'unité de compilation dans laquelle la directive apparaît, après quoi l'état précédent est rétabli. Les avertissements définis par une directive $WARN prennent effet à partir du point où elle apparaît dans le fichier.

La directive $WARNINGS contrôle aussi la génération des avertissements du compilateur.


Exemples

La directive $WARN suivante génère des avertissements sur toutes les références aux symboles experimental dans le module en cours :

 
 {$WARNINGS ON}
 {$WARN SYMBOL_EXPERIMENTAL ON}
 
 procedure Foo; experimental;
 begin
 end;
 
 begin
 	Foo	// Warning: W1003 Symbol 'Foo' is experimental
 end.

Si cette directive $WARN a été changée en :

 
 {$WARN SYMBOL_EXPERIMENTAL ERROR}

le message du compilateur est alors changé en :

 Error: E1003 Symbol 'Foo' is experimental

et ce module ne sera pas compilé.


Autre exemple :

  
 {$WARN WIDECHAR_REDUCED OFF}
   if c in ['a', 'b'] then
     // ...
 {$WARN WIDECHAR_REDUCED DEFAULT}
 Possible warnings:
  ID_DEPRECATED,			//"x1000 Symbol '%s' is deprecated%s"
 ID_LIBRARY,				//"x1001 Symbol '%s' is specific to a library"
 ID_PLATFORM,				//"x1002 Symbol '%s' is specific to a platform"
 ID_EXPERIMENTAL,			//"x1003 Symbol '%s' is experimental"
 UNIT_LIBRARY,				//"x1004 Unit '%s' is specific to a library"
 UNIT_PLATFORM,			//"x1005 Unit '%s' is specific to a platform"
 UNIT_DEPRECATED,			//"x1006 Unit '%s' is deprecated"
 UNIT_EXPERIMENTAL,			//"x1007 Unit '%s' is experimental"
 HRESULT_COMPAT,			//"x1008 Integer and HRESULT interchanged"
 HIDING_MEMBER,			//"x1009 Redeclaration of '%s' hides a member in the base class"
 HIDDEN_VIRTUAL,			//"x1010 Method '%s' hides virtual method of base type '%s'"
 GARBAGE,				//"x1011 Text after final 'END.' - ignored by compiler"
 BOUNDS_ERROR,				//"x1012 Constant expression violates subrange bounds"
 ZERO_NIL_COMPAT,			//"x1013 Constant 0 converted to NIL"
 STRING_CONST_TRUNCED,			//"x1014 String constant truncated to fit STRING[%ld]"
 FOR_LOOP_VAR_VARPAR,			//"x1015 FOR-Loop variable '%s' cannot be passed as var parameter"
 TYPED_CONST_VARPAR,			//"x1016 Typed constant '%s' passed as var parameter"
 ASG_TO_TYPED_CONST,			//"x1017 Assignment to typed constant '%s'"
 CASE_LABEL_RANGE,			//"x1018 Case label outside of range of case expression"
 FOR_VARIABLE,				//"x1019 For loop control variable must be simple local variable"
 CONSTRUCTING_ABSTRACT,		//"x1020 Constructing instance of '%s' containing abstract method '%s.%s'"
 COMPARISON_FALSE,			//"x1021 Comparison always evaluates to False"
 COMPARISON_TRUE,			//"x1022 Comparison always evaluates to True"
 COMPARING_SIGNED_UNSIGNED,		//"x1023 Comparing signed and unsigned types - widened both operands"
 COMBINING_SIGNED_UNSIGNED,		//"x1024 Combining signed and unsigned types - widened both operands"
 UNSUPPORTED_CONSTRUCT,		//"x1025 Unsupported language feature: '%s'"
 FILE_OPEN,				//"x1026 File not found: '%s'"
 FILE_OPEN_UNITSRC,			//"F1027 Unit not found: '%s' or binary equivalents (%s)"
 BAD_GLOBAL_SYMBOL,			//"x1028 Bad global symbol definition: '%s' in object file '%s'"
 DUPLICATE_CTOR_DTOR,			//"x1029 Duplicate %s '%s' with identical parameters will be inacessible"
 INVALID_DIRECTIVE,			//"x1030 Invalid compiler directive: '%s'"
 PACKAGE_NO_LINK,			//"x1031 Package '%s' will not be written to disk because -J option is enabled"
 PACKAGED_THREADVAR,			//"x1032 Exported package threadvar '%s.%s' cannot be used outside of this package"
 IMPLICIT_IMPORT,			//"x1033 Unit '%s' implicitly imported into package '%s'"
 HPPEMIT_IGNORED,			//"x1034 $HPPEMIT '%s' ignored"
 NO_RETVAL,				//"x1035 Return value of function '%s' might be undefined"
 USE_BEFORE_DEF,			//"x1036 Variable '%s' might not have been initialized"
 FOR_LOOP_VAR_UNDEF,			//"x1037 FOR-Loop variable '%s' may be undefined after loop"
 UNIT_NAME_MISMATCH,			//"E1038 Unit identifier '%s' does not match file name"
 NO_CFG_FILE_FOUND,			//"x1039 No configuration files found"
 IMPLICIT_VARIANTS,			//"x1040 Implicit use of Variants unit"
 UNICODE_TO_LOCALE,			//"x1041 Error converting Unicode char to locale charset. String truncated. Is your LANG environment variable set correctly?"
 LOCALE_TO_UNICODE,			//"x1042 Error converting locale string '%s' to Unicode. String truncated. Is your LANG environment variable set correctly?"
 IMAGEBASE_MULTIPLE,			//"x1043 Imagebase $%X is not a multiple of 64k.  Rounding down to $%X"
 SUSPICIOUS_TYPECAST,			//"x1044 Suspicious typecast of %s to %s"
 PRIVATE_PROPACCESSOR,			//"x1045 Property declaration references ancestor private '%s.%s'"
 UNSAFE_TYPE, 				//"x1046 Unsafe type '%s%s%s'"
 UNSAFE_CODE,				//"x1047 Unsafe code '%s'"
 UNSAFE_CAST,				//"x1048 Unsafe typecast of '%s' to '%s'"
 OPTION_TRUNCATED,			//"x1049 value '%s' for option %s was truncated"
 WIDECHAR_REDUCED,			//"x1050 WideChar reduced to byte char in set expressions.  Consider using 'CharInSet' function in 'SysUtils' unit."
 DUPLICATES_IGNORED,			//"x1051 Duplicate symbol names in namespace.  Using '%s.%s' found in %s.  Ignoring duplicate in %s"
 UNIT_INIT_SEQ,			//"x1052 Can't find System.Runtime.CompilerServices.RunClassConstructor.  Unit initialization order will not follow uses clause order"
 LOCAL_PINVOKE,			//"x1053 Local PInvoke code has not been made because external routine '%s' in package '%s' is defined using package local types in its custom attributes" // (.Net only)
 MESSAGE_DIRECTIVE,			//"x1054 %s"
 TYPEINFO_IMPLICITLY_ADDED,		//"x1055 PUBLISHED caused RTTI ($M+) to be added to type '%s'"
 RLINK_WARNING,			//"x1056 %s%s%s"
 IMPLICIT_STRING_CAST,			//"x1057 Implicit string cast from '%s' to '%s'"
 IMPLICIT_STRING_CAST_LOSS,		//"x1058 Implicit string cast with potential data loss from '%s' to '%s'"
 EXPLICIT_STRING_CAST,			//"x1059 Explicit string cast from '%s' to '%s'"
 EXPLICIT_STRING_CAST_LOSS,		//"x1060 Explicit string cast with potential data loss from '%s' to '%s'"
 CVT_WCHAR_TO_ACHAR,			//"x1061 Narrowing given WideChar constant (#$%04X) to AnsiChar lost information"
 CVT_NARROWING_STRING_LOST,		//"x1062 Narrowing given wide string constant lost information"
 CVT_ACHAR_TO_WCHAR,			//"x1063 Widening given AnsiChar constant (#$%02X) to WideChar lost information"
 CVT_WIDENING_STRING_LOST,		//"x1064 Widening given AnsiString constant lost information"
 NON_PORTABLE_TYPECAST,		//"x1065 Typecast of %s to %s is non-portable; code may run differently on 32bit and 64bit platforms"
 LOST_EXT80_PRECISION,			//"x1066 Lost Extended floating point precision. Reduced to Double"
 LNKDFM_NOTFOUND,			//"x1067 Unable to load DLL %s"
 IMMUTABLE_STRINGS,			//"x1068 Modifying strings in place may not be supported in the future"
 MOBILE_DELPHI,			//"x1069 %s"
 UNSAFE_VOID_POINTER,			//"x1070 Use of untype pointer can disrupt instance reference counts"

 XML_WHITESPACE_NOT_ALLOWED,		//"x1201 XML comment on '%s' has badly formed XML -- 'Whitespace is not allowed at this location.'"
 XML_UNKNOWN_ENTITY,			//"x1202 XML comment on '%s' has badly formed XML -- 'Reference to undefined entity '%s'.'"
 XML_INVALID_NAME_START,		//"x1203 XML comment on '%s' has badly formed XML -- 'A name was started with an invalid character.'"
 XML_INVALID_NAME,			//"x1204 XML comment on '%s' has badly formed XML -- 'A name contained an invalid character.'"
 XML_EXPECTED_CHARACTER,		//"x1205 XML comment on '%s' has badly formed XML -- 'The character '%c' was expected.'"
 XML_CREF_NO_RESOLVE,			//"x1206 XML comment on '%s' has cref attribute '%s' that could not be resolved"
 XML_NO_PARM,				//"x1207 XML comment on '%s' has a param tag for '%s', but there is no parameter by that name"
 XML_NO_MATCHING_PARM,			//"x1208 Parameter '%s' has no matching param tag in the XML comment for '%s' (but other parameters do)"

Voir aussi