[pylint
] Don't recommend decorating staticmethods with @singledispatch
(PLE1519
, PLE1520
)
#10637
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
…andling
Summary
Fixes #10619
The behaviour, introduced in this PR, is different from original
pylint
's one, but this one is more natural.According to the docs of staticmethod, the method marked with
@staticmethod
can be called via class (C.foo()
) and via the instance (C().foo()
(UFCS:C.foo(C())
). Marking such method with@singledispatch
allows only call via class, but not via the instance. Marking such method with@singledispatchmethod
supports bothC.foo()
andC().foo()
. The latter also is supported bysingledispatchmethod
docs viaExample
prints
but
fails with
Test Plan
cargo test