Skip to content
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

Fix nr2 unit struct #3299

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from
Draft

Fix nr2 unit struct #3299

wants to merge 8 commits into from

Conversation

P-E-P
Copy link
Member

@P-E-P P-E-P commented Dec 10, 2024

No description provided.

@P-E-P P-E-P force-pushed the fix-nr2-unit-struct branch 2 times, most recently from b490ffd to 9d29160 Compare December 11, 2024 12:45
@powerboat9
Copy link
Contributor

powerboat9 commented Dec 11, 2024

Label scope is for ex: break 'a right?

Edit: ah, I see

@powerboat9
Copy link
Contributor

Most of the edits here look like they only apply to nr1

@P-E-P
Copy link
Member Author

P-E-P commented Dec 12, 2024

Most of the edits here look like they only apply to nr1

This PR isn't finished yet. Basically I stumbled on a problem for NR2, and discovered that this problem should apply on NR1. So I fixed NR1 then I changed the behavior for both NR.

@P-E-P P-E-P force-pushed the fix-nr2-unit-struct branch from 018de6c to eb1f1c7 Compare January 6, 2025 15:38
P-E-P added 8 commits January 6, 2025 18:09
Labels were using the wrong namespace.

gcc/rust/ChangeLog:

	* resolve/rust-ast-resolve-expr.cc (ResolveExpr::visit): Change label
	push function from type rib to label rib.
	* resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit):
	Likewise.
	(ResolveItem::visit): Likewise.
	(ResolveExternItem::visit): Likewise.
	* resolve/rust-ast-resolve-stmt.h: Likewise.
	* resolve/rust-ast-resolve.cc (NameResolution::go): Likewise.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
It might be necessary to compare both name resolution' internal states
during the transition. This new debug representation could help with
that.

gcc/rust/ChangeLog:

	* resolve/rust-name-resolver.h: Add new degug dump for old name
	resolver.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
We missed the name namespace for unit struct in the old resolver.

gcc/rust/ChangeLog:

	* resolve/rust-ast-resolve-toplevel.h: Add struct to name namespace.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
Query mode was a hack to catch up some compile errors early, it was
deemed to be removed at some time. Recent changes to NR1 highlighted
an incompatibility with it hence it's removal.

gcc/rust/ChangeLog:

	* backend/rust-compile-item.h: Remove query mode.
	* backend/rust-compile-resolve-path.cc (HIRCompileBase::query_compile):
	Likewise.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
Those test are now passing.

gcc/testsuite/ChangeLog:

	* rust/compile/nr2/exclude: Remove passing tests.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
We're reusing the value, it could therefore not be taken be should be
cloned.

gcc/rust/ChangeLog:

	* typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::visit):
	Clone expr instead of taking it.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
Those function should not change anything within the foreverstack, it
can therefore be made const.

gcc/rust/ChangeLog:

	* resolve/rust-forever-stack.h: Make debug functions const.
	* resolve/rust-forever-stack.hxx: Likewise.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
We need to query all namespaces and error out at a later stage if the
retrieved item is wrong.

gcc/rust/ChangeLog:

	* typecheck/rust-hir-trait-resolve.cc (TraitResolver::resolve_path_to_trait):
	Query all namespaces.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants