sonar-delphi icon indicating copy to clipboard operation
sonar-delphi copied to clipboard

New rule: Identifiers should not shadow compiler intrinsics

Open fourls opened this issue 2 years ago • 1 comments

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

image

fourls avatar Oct 31 '23 05:10 fourls

Couldn't agree more, let's do it.

cirras avatar Nov 14 '23 04:11 cirras