diff --git a/crates/ruff_linter/src/rules/flake8_pyi/rules/generic_not_last_base_class.rs b/crates/ruff_linter/src/rules/flake8_pyi/rules/generic_not_last_base_class.rs index cd0ccd97b2..85f88f99c7 100644 --- a/crates/ruff_linter/src/rules/flake8_pyi/rules/generic_not_last_base_class.rs +++ b/crates/ruff_linter/src/rules/flake8_pyi/rules/generic_not_last_base_class.rs @@ -11,10 +11,13 @@ use crate::{Fix, FixAvailability, Violation}; /// not the last base class in the bases tuple. /// /// ## Why is this bad? +/// /// If `Generic[]` is not the final class in the bases tuple, unexpected /// behaviour can occur at runtime (See [this CPython issue][1] for an example). -/// The rule is also applied to stub files, where it won't cause issues at runtime, -/// because type checkers may also behave unpredictably in this case. +/// The rule is also applied to stub files, where it won't cause issues at +/// runtime, because type checkers may not be able to infer an accurate [MRO] +/// for the class, which could lead to unexpected or inaccurate results when +/// they analyze your code. /// /// For example: /// ```python @@ -47,6 +50,7 @@ use crate::{Fix, FixAvailability, Violation}; /// - [`typing.Generic` documentation](https://docs.python.org/3/library/typing.html#typing.Generic) /// /// [1]: https://github.com/python/cpython/issues/106102 +/// [MRO]: https://docs.python.org/3/glossary.html#term-method-resolution-order #[derive(ViolationMetadata)] pub(crate) struct GenericNotLastBaseClass;