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 7 commits into
base: master
Choose a base branch
from
Draft

Fix nr2 unit struct #3299

wants to merge 7 commits into from

Conversation

P-E-P
Copy link
Member

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

No description provided.

The hir dump was trying to visit init expression and types even when
those were missing.

gcc/rust/ChangeLog:

	* hir/rust-hir-dump.cc (Dump::visit): Add check for type and initial
	expression.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
@P-E-P P-E-P force-pushed the fix-nr2-unit-struct branch from 3edeca7 to 4c4a569 Compare December 10, 2024 13:25
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]>
@P-E-P P-E-P force-pushed the fix-nr2-unit-struct branch from b490ffd to 9d29160 Compare December 11, 2024 12:45
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]>
@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.

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]>
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