| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| Expand Up | @@ -251,6 +251,27 @@ def visit_sequence_pattern(self, o: SequencePattern) -> PatternType: | |
| # get inner types of original type | ||
| # | ||
| unpack_index = None | ||
|
|
||
| if isinstance(current_type, UnionType): | ||
| union_captures: dict[Expression, Type] = {} | ||
| union_items: list[Type] = [] | ||
| for t in current_type.items: | ||
| typ, _, capture = self.accept(o, t) | ||
| if not is_uninhabited(get_proper_type(typ)): | ||
| union_items.append(typ) | ||
| union_captures.update(capture) | ||
|
|
||
| rest_items: list[Type] = [] | ||
|
Comment thread
Copy link
Copy Markdown
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Qualityiiuc this should use conditional_types_with_intersection
Sorry, something went wrong.
All reactions
|
||
| for item in current_type.items: | ||
| if all(used_item != item for used_item in union_items): | ||
| rest_items.append(item) | ||
|
|
||
| return PatternType( | ||
| type=UnionType.make_union(items=union_items), | ||
| rest_type=UnionType.make_union(items=rest_items), | ||
| captures=union_captures, | ||
| ) | ||
|
|
||
| if isinstance(current_type, TupleType): | ||
| inner_types = current_type.items | ||
| unpack_index = find_unpack_in_list(inner_types) | ||
| Expand Down | ||
| Back | FazBrowse Home | New Git URL |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Qualityhmm shouldn't the values in union_captures be a union of all the things, instead of potentially clobbering?
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.