Make igetattr()
idempotent
#2208
Merged
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.
Type of Changes
Description
See regression test. The second time an instance's attribute is inferred with the same context (which pylint has legitimate use cases for, see existing test that was improved!), we still need to be able to get a successful inference result. Instead, we were getting Uninferable due to a performance optimization added in 2d7a87b.
This addresses some reports of varying results when running pylint with
--jobs
.Closes pylint-dev/pylint#4356
Refs #7
More info
The original inconsistency added in 2d7a87b targeted a report in #7, but we have no source for the original code being tested.
I attempted to guess what the bug report in #7 was. I came up with the following based on #7 (comment), and it lints fine:
I don't want to commit this file to the tests, though, because it's a wild guess.