50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
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
|
|
|
|
[source,sql]
|
|
----
|
|
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
|
|
|
|
[source,sql]
|
|
----
|
|
DECLARE @v1 INTEGER = 1
|
|
DECLARE @v2 INTEGER = -@v1
|
|
DECLARE @v3 INTEGER = ~@v1
|
|
DECLARE @v4 INTEGER = @v1
|
|
|
|
IF @v1 <> @v2
|
|
BEGIN
|
|
PRINT @msg
|
|
END
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|