This rule is deprecated, and will eventually be removed.
Why is this an issue?
There are valid cases for passing a variable multiple times into the same function or procedure call, but usually doing so is a mistake, and
something else was intended for one of the arguments.
Noncompliant code example
SET @result = dbo.MyAdd(@val1, @val1) -- Noncompliant
Compliant solution
SET @result = dbo.MyAdd(@val1, @val2)