DART-213 Modify rules S1161, S7055: update descriptions and messages (#4799)
* DART-213 Modify rule S1161: update message details * S7055: Update description * Update rule.adoc
This commit is contained in:
parent
74068df10a
commit
d41b77b623
@ -47,8 +47,6 @@ ifdef::env-github,rspecator-view[]
|
|||||||
|
|
||||||
The member '<method name>' overrides an inherited member but isn't annotated with '@override'.
|
The member '<method name>' overrides an inherited member but isn't annotated with '@override'.
|
||||||
|
|
||||||
If the member is a setter, the method name will end with a `=` sign, to distinguish it from the corresponding getter.
|
|
||||||
|
|
||||||
=== Highlighting
|
=== Highlighting
|
||||||
|
|
||||||
The identifier of the method, property or operator.
|
The identifier of the method, property or operator.
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
== Why is this an issue?
|
== Why is this an issue?
|
||||||
|
|
||||||
In Dart, you can use wildcard names(names consisting on underscores only: `++_++`, `++__++`, `++___++`, ... ). Usually it should be used to name the variable/parameter that won't be directly used but needs to be declared. For example, as counter in the for-loop:
|
In Dart, you can use wildcard names, that are names consisting on underscores only: `++_++`, `++__++`, `++___++`, ...
|
||||||
|
|
||||||
|
Usually, wildcard names should be used to name the variable/parameter that won't be directly used but needs to be declared.
|
||||||
|
|
||||||
|
For example, as counter in the for-loop:
|
||||||
|
|
||||||
`for (var _ in [1, 2, 3]) doSomething();`
|
`for (var _ in [1, 2, 3]) doSomething();`
|
||||||
|
|
||||||
@ -16,7 +20,18 @@ void sayHello(Person p) {
|
|||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
Currently, this is possible to read such wildcard variables, for example, `print(_);`. However, such behavior is supposed to change in the next versions of the Dart language, making such variables non-binding and breaking the code, where such variables are used. To avoid problems during upgrades, it's recommended to refactor the code, to not use wildcard variables.
|
In Dart 3.6 and below, it is possible to read `++_++` wildcard variables, for example, `print(_);`.
|
||||||
|
|
||||||
|
However, such behavior has changed in Dart 3.7, making `++_++` variables non-binding and breaking the code, where those variables are used.
|
||||||
|
|
||||||
|
[source,dart]
|
||||||
|
----
|
||||||
|
void sayHello(String _) {
|
||||||
|
print('Hello, $_!'); // Compiler error in Dart 3.7 and above: _ is non-binding
|
||||||
|
}
|
||||||
|
----
|
||||||
|
|
||||||
|
To avoid problems during upgrades from Dart 3.6-, it's recommended to refactor the code, to not use wildcard variables.
|
||||||
|
|
||||||
=== What is the potential impact?
|
=== What is the potential impact?
|
||||||
|
|
||||||
@ -33,7 +48,7 @@ If the variable/parameter are supposed to be read, then give them a proper name.
|
|||||||
[source,dart,diff-id=1,diff-type=noncompliant]
|
[source,dart,diff-id=1,diff-type=noncompliant]
|
||||||
----
|
----
|
||||||
void sayHello(String __) {
|
void sayHello(String __) {
|
||||||
print('Hello, $__!');
|
print('Hello, $__!'); // Noncompliant in Dart 3.6 and below
|
||||||
}
|
}
|
||||||
----
|
----
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user