crates/ruff_linter/resources/mdtest/ruff/rule-codes-in-suppression-comments.md
rule-codes-in-suppression-comments (RUF106)[lint]
preview = true
select = ["RUF106"]
external = ["EXT"]
ruff:ignoreEach Ruff rule code receives a separate diagnostic. Rule names and external or unknown codes are preserved:
# snapshot: rule-codes-in-suppression-comments
# snapshot: rule-codes-in-suppression-comments
# ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, F841]
value = 1
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:15
|
3 | # ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, F841]
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, F841]
3 + # ruff:ignore[unused-import, undefined-name, EXT001, UNKNOWN, F841]
4 | value = 1
|
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:54
|
3 | # ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, F841]
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, F841]
3 + # ruff:ignore[F401, undefined-name, EXT001, UNKNOWN, unused-variable]
4 | value = 1
|
Valid human-readable names are unaffected:
# snapshot: rule-codes-in-suppression-comments
# snapshot: rule-codes-in-suppression-comments
# ruff:ignore[F401, undefined-name, F841]
value = 1
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:7:15
|
7 | # ruff:ignore[F401, undefined-name, F841]
| ^^^^
|
help: Replace rule code with name
|
6 | # snapshot: rule-codes-in-suppression-comments
- # ruff:ignore[F401, undefined-name, F841]
7 + # ruff:ignore[unused-import, undefined-name, F841]
8 | value = 1
|
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:7:37
|
7 | # ruff:ignore[F401, undefined-name, F841]
| ^^^^
|
help: Replace rule code with name
|
6 | # snapshot: rule-codes-in-suppression-comments
- # ruff:ignore[F401, undefined-name, F841]
7 + # ruff:ignore[F401, undefined-name, unused-variable]
8 | value = 1
|
ruff:file-ignore# snapshot: rule-codes-in-suppression-comments
# snapshot: rule-codes-in-suppression-comments
# ruff:file-ignore[F401, F841]
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:20
|
3 | # ruff:file-ignore[F401, F841]
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:file-ignore[F401, F841]
3 + # ruff:file-ignore[unused-import, F841]
|
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:26
|
3 | # ruff:file-ignore[F401, F841]
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:file-ignore[F401, F841]
3 + # ruff:file-ignore[F401, unused-variable]
|
ruff:disable and ruff:enableMatching comments are reported and fixed together:
# snapshot: rule-codes-in-suppression-comments
# snapshot: rule-codes-in-suppression-comments
# ruff:disable[F401, undefined-name, F841]
value = 1
# ruff:enable[F401, undefined-name, F841]
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:16
|
3 | # ruff:disable[F401, undefined-name, F841]
| ^^^^
4 | value = 1
5 | # ruff:enable[F401, undefined-name, F841]
| ----
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:disable[F401, undefined-name, F841]
3 + # ruff:disable[unused-import, undefined-name, F841]
4 | value = 1
- # ruff:enable[F401, undefined-name, F841]
5 + # ruff:enable[unused-import, undefined-name, F841]
|
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:38
|
3 | # ruff:disable[F401, undefined-name, F841]
| ^^^^
4 | value = 1
5 | # ruff:enable[F401, undefined-name, F841]
| ----
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- # ruff:disable[F401, undefined-name, F841]
3 + # ruff:disable[F401, undefined-name, unused-variable]
4 | value = 1
- # ruff:enable[F401, undefined-name, F841]
5 + # ruff:enable[F401, undefined-name, unused-variable]
|
ruff:disableAn unmatched disable comment is still an effective suppression through the end of its indentation level:
# snapshot: rule-codes-in-suppression-comments
# ruff:disable[F401]
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:2:16
|
2 | # ruff:disable[F401]
| ^^^^
|
help: Replace rule code with name
|
1 | # snapshot: rule-codes-in-suppression-comments
- # ruff:disable[F401]
2 + # ruff:disable[unused-import]
|
ruff:enableAn unmatched enable comment is invalid and is left to invalid-suppression-comment:
# ruff:enable[F401]
Redirected codes are replaced with the name of their canonical rule:
# snapshot: rule-codes-in-suppression-comments
# ruff:ignore[PGH001]
value = 1
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:2:15
|
2 | # ruff:ignore[PGH001]
| ^^^^^^
|
help: Replace rule code with name
|
1 | # snapshot: rule-codes-in-suppression-comments
- # ruff:ignore[PGH001]
2 + # ruff:ignore[suspicious-eval-usage]
3 | value = 1
|
Only the rule codes within a nested suppression comment are replaced:
# snapshot: rule-codes-in-suppression-comments
# snapshot: rule-codes-in-suppression-comments
value = 1 # explanation # ruff:ignore[F401, F841] reason # another
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:40
|
3 | value = 1 # explanation # ruff:ignore[F401, F841] reason # another
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- value = 1 # explanation # ruff:ignore[F401, F841] reason # another
3 + value = 1 # explanation # ruff:ignore[unused-import, F841] reason # another
|
error[RUF106]: Rule code used instead of name in suppression comment
--> src/mdtest_snippet.py:3:46
|
3 | value = 1 # explanation # ruff:ignore[F401, F841] reason # another
| ^^^^
|
help: Replace rule code with name
|
2 | # snapshot: rule-codes-in-suppression-comments
- value = 1 # explanation # ruff:ignore[F401, F841] reason # another
3 + value = 1 # explanation # ruff:ignore[F401, unused-variable] reason # another
|
Comments containing only names and external or unknown codes are unchanged:
# ruff:ignore[unused-import, EXT001, UNKNOWN]
value = 1
The rule can be suppressed by its code or name:
# ruff:ignore[F401, RUF106]
value = 1
# ruff:ignore[F401, rule-codes-in-suppression-comments]
value = 1
The diagnostic can also be suppressed with a noqa comment:
value = 1 # ruff:ignore[F401] # noqa: RUF106