sonar-delphi
sonar-delphi copied to clipboard
New rule: Identifiers should not shadow compiler intrinsics
Prerequisites
- [X] This rule has not already been suggested.
- [X] This should be a new rule, not an improvement to an existing rule.
- [X] 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
Couldn't agree more, let's do it.