Why is this an issue?
Calling the +
, -
, ~
or NOT
prefix operator twice does nothing: the second invocation undoes the
first. Such mistakes are typically caused by accidentally double-tapping the key in question without noticing.
Either this is a bug, if the operator was actually meant to be called once, or misleading if done on purpose.
Noncompliant code example
DECLARE @v1 INTEGER = 1
DECLARE @v2 INTEGER = - - -@v1 -- Noncompliant; -@v1 should be used instead
DECLARE @v3 INTEGER = ~~~@v1 -- Noncompliant; ~@v1 should be used instead
DECLARE @v4 INTEGER = ++@v1 -- Noncompliant; operators are useless here
IF NOT NOT @v1 <> @v2 -- Noncompliant
BEGIN
PRINT @msg
END
Compliant solution
DECLARE @v1 INTEGER = 1
DECLARE @v2 INTEGER = -@v1
DECLARE @v3 INTEGER = ~@v1
DECLARE @v4 INTEGER = @v1
IF @v1 <> @v2
BEGIN
PRINT @msg
END