Skip to content

Document fix safety #15584

@dylwil3

Description

@dylwil3

The rules found in the locations listed below need to have a ## Fix safety section added to their doc comment to explain whether and why their fix is sometimes or always unsafe.

If you're interested in picking any of these up then first of all - thank you, it's a big help! To help make the review process quick and get your PR merged, please include the following information in your PR:

  1. (In your PR summary) A link to the PR where the fix was introduced and/or made unsafe
  2. (In your PR summary) If present, a link to a comment in the original PR or in the codebase where some reasoning is given around the safety
  3. In your PR summary) If possible, a code sample demonstrating the unsafety
  4. (In the section on fix safety) Please distinguish between whether the fix is always unsafe or sometimes unsafe.
  5. (In your section on fix safety) Be sure to double check grammar and spelling!

Thank you again!

Checklist of rules
  • crates/ruff_linter/src/rules/ruff/rules/quadratic_list_summation.rs
  • crates/ruff_linter/src/rules/ruff/rules/invalid_formatter_suppression_comment.rs ([ruff] add fix safety section (RUF028) #17722)
  • crates/ruff_linter/src/rules/ruff/rules/collection_literal_concatenation.rs
  • crates/ruff_linter/src/rules/ruff/rules/implicit_optional.rs
  • crates/ruff_linter/src/rules/ruff/rules/unnecessary_round.rs
  • crates/ruff_linter/src/rules/ruff/rules/missing_fstring_syntax.rs
  • crates/ruff_linter/src/rules/ruff/rules/zip_instead_of_pairwise.rs ([ruff] add fix safety section (RUF007) #17755)
  • crates/ruff_linter/src/rules/ruff/rules/post_init_default.rs
  • crates/ruff_linter/src/rules/flynt/rules/static_join_to_fstring.rs
  • crates/ruff_linter/src/rules/pylint/rules/useless_import_alias.rs
  • crates/ruff_linter/src/rules/pylint/rules/modified_iterating_set.rs ([pylint] add fix safety section (PLE4703) #17824)
  • crates/ruff_linter/src/rules/pylint/rules/unnecessary_dunder_call.rs ([pylint] add fix safety section (PLC2801) #17825)
  • crates/ruff_linter/src/rules/pylint/rules/sys_exit_alias.rs
  • crates/ruff_linter/src/rules/pylint/rules/nested_min_max.rs ([pylint] add fix safety section (PLW3301) #17878)
  • crates/ruff_linter/src/rules/pylint/rules/unspecified_encoding.rs
  • crates/ruff_linter/src/rules/pylint/rules/repeated_equality_comparison.rs
  • crates/ruff_linter/src/rules/pycodestyle/rules/lambda_assignment.rs
  • crates/ruff_linter/src/rules/pycodestyle/rules/trailing_whitespace.rs
  • crates/ruff_linter/src/rules/flake8_pytest_style/rules/assertion.rs
  • crates/ruff_linter/src/rules/flake8_pytest_style/rules/fixture.rs
  • crates/ruff_linter/src/rules/flake8_pytest_style/rules/marks.rs
  • crates/ruff_linter/src/rules/flake8_pie/rules/duplicate_class_field_definition.rs
  • crates/ruff_linter/src/rules/flake8_return/rules/function.rs
  • crates/ruff_linter/src/rules/flake8_bugbear/rules/mutable_argument_default.rs ([flake8-bugbear ] Add fix safety section (B006)  #17652)
  • crates/ruff_linter/src/rules/flake8_bugbear/rules/unused_loop_control_variable.rs
  • crates/ruff_linter/src/rules/flake8_logging/rules/invalid_get_logger_argument.rs
  • crates/ruff_linter/src/rules/flake8_logging/rules/direct_logger_instantiation.rs
  • crates/ruff_linter/src/rules/flake8_pyi/rules/docstring_in_stubs.rs
  • crates/ruff_linter/src/rules/pydocstyle/rules/one_liner.rs
  • crates/ruff_linter/src/rules/pydocstyle/rules/ends_with_period.rs
  • crates/ruff_linter/src/rules/pydocstyle/rules/ends_with_punctuation.rs
  • crates/ruff_linter/src/rules/pydocstyle/rules/backslashes.rs
  • crates/ruff_linter/src/rules/flake8_type_checking/rules/typing_only_runtime_import.rs
  • crates/ruff_linter/src/rules/flake8_type_checking/rules/runtime_import_in_type_checking_block.rs
  • crates/ruff_linter/src/rules/numpy/rules/numpy_2_0_deprecation.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/needless_bool.rs ([flake8-simplify] add fix safety section (SIM103) #18086)
  • crates/ruff_linter/src/rules/flake8_simplify/rules/ast_with.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/collapsible_if.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/if_else_block_instead_of_dict_get.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/suppressible_exception.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/ast_bool_op.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/ast_expr.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/reimplemented_builtin.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/ast_ifexp.rs
  • crates/ruff_linter/src/rules/flake8_simplify/rules/if_else_block_instead_of_if_exp.rs
  • crates/ruff_linter/src/rules/flake8_import_conventions/rules/unconventional_import_alias.rs
  • crates/ruff_linter/src/rules/flake8_annotations/rules/definition.rs
  • crates/ruff_linter/src/rules/flake8_raise/rules/unnecessary_paren_on_raise_exception.rs
  • crates/ruff_linter/src/rules/perflint/rules/manual_list_comprehension.rs
  • crates/ruff_linter/src/rules/fastapi/rules/fastapi_non_annotated_dependency.rs
  • crates/ruff_linter/src/rules/fastapi/rules/fastapi_redundant_response_model.rs
  • crates/ruff_linter/src/rules/pandas_vet/rules/inplace_argument.rs
  • crates/ruff_linter/src/rules/refurb/rules/unnecessary_enumerate.rs
  • crates/ruff_linter/src/rules/refurb/rules/check_and_remove_from_set.rs
  • crates/ruff_linter/src/rules/refurb/rules/repeated_append.rs
  • crates/ruff_linter/src/rules/refurb/rules/print_empty_string.rs
  • crates/ruff_linter/src/rules/refurb/rules/delete_full_slice.rs
  • crates/ruff_linter/src/rules/refurb/rules/implicit_cwd.rs
  • crates/ruff_linter/src/rules/refurb/rules/readlines_in_for.rs
  • crates/ruff_linter/src/rules/flake8_async/rules/long_sleep_not_forever.rs
  • crates/ruff_linter/src/rules/flake8_errmsg/rules/string_in_exception.rs
  • crates/ruff_linter/src/rules/flake8_tidy_imports/rules/relative_imports.rs
  • crates/ruff_linter/src/rules/pyupgrade/rules/unnecessary_builtin_import.rs
  • crates/ruff_linter/src/rules/pyupgrade/rules/use_pep695_type_alias.rs
  • crates/ruff_linter/src/rules/pyupgrade/rules/use_pep604_isinstance.rs
  • crates/ruff_linter/src/rules/pyupgrade/rules/format_literals.rs ([pyupgrade] Add fix safety section to docs (UP030) #17443)
  • crates/ruff_linter/src/rules/pyupgrade/rules/outdated_version_block.rs ([pyupgrade] Add fix safety section to docs (UP036) #17444)
  • crates/ruff_linter/src/rules/pyupgrade/rules/replace_stdout_stderr.rs ([pyupgrade] Add fix safety section to docs (UP008, UP022) #17441)
  • crates/ruff_linter/src/rules/pyupgrade/rules/super_call_with_parameters.rs ([pyupgrade] Add fix safety section to docs (UP008, UP022) #17441)
  • crates/ruff_linter/src/rules/pyflakes/rules/repeated_keys.rs ([pyflakes] Add fix safety section to docs (F601, F602) #17440)
  • crates/ruff_linter/src/rules/pyflakes/rules/unused_variable.rs ([pyflakes] Add fix safety section (F841) #17410)

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions