[REF-2682] Foreach over dict uses Tuple arg value #3160
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.
When iterating over a Var with _var_type dict, the resulting arg value _var_type should be Tuple[key, value] so it can be correctly used with other var operations.
Fix #3157
Additionally: Correct _var_type for iteration over Tuple of multiple types
The arg value when iterating over a tuple could be any of the possible values mentioned in the annotation.
When only one type is used, the Union collapses to the base type
The type ignore comments are there because pyright doesn't like the fact that i'm passing an unknown tuple to
Tuple
andUnion
__getitem__
, but this is essentially identical to writing a literal tuple inside the square brackets.