Open
Description
Prerequisites
- This rule has not already been suggested.
- This should be a new rule, not an improvement to an existing rule.
- This rule would be generally useful, not specific to my code or setup.
Suggested rule title
Identifiers should not shadow compiler intrinsics
Rule description
This rule forbids identifiers that share a name with a compiler intrinsic.
This would include a configurable whitelist for acceptable intrinsics to shadow.
Rationale
This can be confusing for a number of reasons:
- Compiler intrinsics have special "magic" behaviour that is not replaceable if it is shadowed (except by prefacing
System.
) - Intrinsics are almost always expected to be the intrinsic value (e.g.
Break
,Continue
,True
) - The Delphi IDE adds decorators for certain intrinsics, and does not differentiate between the intrinsic and a shadowing identifier of the same name