Skip to content

gccrs: Implement compilation of IdentifierPattern's subpattern bindings #3822

New issue

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

Merged
merged 3 commits into from
Jun 15, 2025

Conversation

Polygonalr
Copy link
Contributor

Includes renaming of get_pattern_to_bind to get_subpattern which I missed out in my previous PR.

I'm aware that there are still other visit functions that lack support for subpattern - some changes for those are currently under my draft branch in my fork which I'll eventually get around to fully implementing and testing. For now, I think I want to move on and focus on implementing minimal support for other unsupported patterns first.

gcc/rust/ChangeLog:

	* ast/rust-ast-collector.cc: Rename get_pattern_to_bind to get_subpattern
	* ast/rust-ast-visitor.cc: Ditto.
	* ast/rust-pattern.h: Ditto.
	* expand/rust-cfg-strip.cc: Ditto.
	* hir/rust-ast-lower-pattern.cc: Ditto.

Signed-off-by: Yap Zhi Heng <[email protected]>
gcc/rust/ChangeLog:

	* resolve/rust-ast-resolve-pattern.cc: Implement name resolution for
		IdentifierPattern's subpattern.
	* resolve/rust-late-name-resolver-2.0.cc: Ditto, but for nr2.

Signed-off-by: Yap Zhi Heng <[email protected]>
gcc/rust/ChangeLog:

	* backend/rust-compile-pattern.cc: Add support for IdentifierPattern's
		subpattern under CompilePatternBindings.

Signed-off-by: Yap Zhi Heng <[email protected]>
Copy link
Member

@philberty philberty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@philberty philberty added this pull request to the merge queue Jun 15, 2025
Merged via the queue into Rust-GCC:master with commit f87c5a6 Jun 15, 2025
12 checks passed
@github-project-automation github-project-automation bot moved this from Todo to Done in libcore 1.49 Jun 15, 2025
@@ -250,6 +250,11 @@ visit_identifier_as_pattern (NameResolutionContext &ctx,
void
Late::visit (AST::IdentifierPattern &identifier)
{
if (identifier.has_subpattern ())
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need a condition check over this ? Calling DefaultResolver::visit(identifier) directly would help future changes and let the condition in the default visitor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants