Modify rule S4143: Adapt to LaYC (#1931)
This commit is contained in:
parent
9e3cc3533a
commit
28657dcc74
@ -2,14 +2,16 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,cpp]
|
||||
----
|
||||
towns[i] = "London";
|
||||
towns[i] = "Chicago"; // Noncompliant
|
||||
towns[i] = "Chicago"; // Noncompliant: We never used the previous value
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,csharp]
|
||||
----
|
||||
@ -13,6 +13,8 @@ dictionary.Add(key, "value 1");
|
||||
dictionary[key] = "value 2"; // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -1 +1,3 @@
|
||||
It is highly suspicious when a value is saved for a key or index and then unconditionally overwritten. Such replacements are likely errors.
|
||||
:intro: Storing a value inside a collection at a given key or index and then unconditionally overwriting it without reading the initial value is a case of "dead store".
|
||||
|
||||
:outro: At best it is redundant and will confuse the reader, most often it is an error and not what the developer intended to do.
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,go]
|
||||
----
|
||||
@ -17,6 +17,8 @@ towns[i] = "London"
|
||||
towns[i] = "Chicago" // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -1,21 +1,25 @@
|
||||
== Why is this an issue?
|
||||
|
||||
It is highly suspicious when a value is saved for a key or index and then unconditionally overwritten. Such replacements are likely in error.
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
This rule detects repeatedly adding an element at the same index or key in a collection or adding identical elements to a set.
|
||||
|
||||
[source,javascript]
|
||||
----
|
||||
fruits[1] = "banana";
|
||||
fruits[1] = "apple"; // Noncompliant - value on index 1 is overwritten
|
||||
fruits[1] = "apple"; // Noncompliant
|
||||
|
||||
myMap.set("key", 1);
|
||||
myMap.set("key", 2); // Noncompliant - value for key "key" is replaced
|
||||
myMap.set("key", 2); // Noncompliant
|
||||
|
||||
mySet.add(1);
|
||||
mySet.add(1); // Noncompliant - element is already in the set
|
||||
mySet.add(1); // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -2,14 +2,16 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,php]
|
||||
----
|
||||
$someArray[1] = "someValue";
|
||||
$someArray[1] = "someOtherValue"; // The intention here was probably to write to another array key.
|
||||
$someArray[1] = "someOtherValue"; // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -1,13 +1,8 @@
|
||||
== Why is this an issue?
|
||||
|
||||
:link-with-uscores1: https://docs.python.org/3/reference/datamodel.html#object.__setitem__
|
||||
include::../description.adoc[]
|
||||
|
||||
It is highly suspicious when a value is saved in a collection for a given key or index and then unconditionally overwritten. Such replacements are likely errors.
|
||||
|
||||
|
||||
This rule raises an issue when the {link-with-uscores1}[``++__setitem__++``] method of the same object is called multiple times with the same index, slice or key without any other action done between the calls.
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,python]
|
||||
----
|
||||
@ -25,6 +20,8 @@ mymap['a']['b'] = 42
|
||||
mymap['a']['b'] = 42 # Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
include::description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,text]
|
||||
[source,java]
|
||||
----
|
||||
letters.put("a", "Apple");
|
||||
letters.put("a", "Boy"); // Noncompliant
|
||||
@ -13,3 +13,4 @@ towns[i] = "London";
|
||||
towns[i] = "Chicago"; // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,swift]
|
||||
----
|
||||
@ -13,6 +13,8 @@ towns[i] = "London"
|
||||
towns[i] = "Chicago" // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
include::../description.adoc[]
|
||||
|
||||
=== Noncompliant code example
|
||||
{intro}
|
||||
|
||||
[source,vbnet]
|
||||
----
|
||||
@ -10,6 +10,8 @@ towns.Item(x) = "London"
|
||||
towns.Item(x) = "Chicago"; // Noncompliant
|
||||
----
|
||||
|
||||
{outro}
|
||||
|
||||
ifdef::env-github,rspecator-view[]
|
||||
|
||||
'''
|
||||
|
Loading…
x
Reference in New Issue
Block a user