[ruff] Allow dataclass attribute value instantiation from nested frozen dataclass (RUF009)
#20352
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.
Summary
Resolves #20266
Definition of the frozen dataclass attribute can be instantiation of a nested frozen dataclass as well as a non-nested one.
Problem explanation
The
function_call_in_dataclass_defaultfunction is invoked during the "defined scope" stage, after all scopes have been processed. At this point, the semantic references the top-level scope. WhenSemanticModel::lookup_attributeexecutes, it searches for bindings in the top-level module scope rather than the class scope, resulting in an error.To solve this issue, the lookup should be evaluated through the class scope.
Test Plan