1.5 Hint directives

Most identifiers (constants, variables, functions or methods, properties) can have a hint directive prepended to their definition:

_________________________________________________________________________________________________________Hint directives
--hintdirective -|--------------------------------------------------
             |---Deprecated----|
             |--Experimental---|
             |----Platform -----|
              -Uninmplemented--
___________________________________________________________________

Whenever an identifier marked with a hint directive is used in the rest of the source code, then a warning will be displayed, corresponding to the hint that was specified.

deprecated
The use of this identifier is deprecated, use an alternative instead.
experimental
The use of this identifier is experimental: this can be used to flag new features that should be used with caution.
platform
This is a platform-dependent identifier: it may not be defined on all platforms.
Uninmplemented
This should be used on functions and procedures only. It should be used to signal that a particular feature has not yet been implemented.

The following are examples:

Const  
  AConst = 12 deprecated;  
 
var  
  p : integer platform;  
 
Function Something : Integer; experimental;  
 
begin  
  Something:=P+AConst;  
end;  
 
begin  
  Something;  
end.

This would result in the following output:

testhd.pp(11,15) Warning: Symbol "p" is not portable  
testhd.pp(11,22) Warning: Symbol "AConst" is deprecated  
testhd.pp(15,3) Warning: Symbol "Something" is experimental

Hint directives can follow all kinds of identifiers: units, constants, types, variables, functions, procedures and methods.