Skip to content

Commit 75f3851

Browse files
committed
nr2.0: Run a final TopLevel pass after desugaring
gcc/rust/ChangeLog: * rust-session-manager.cc (Session::compile_crate): Run another TopLevel pass after desugaring, as desugaring may add new definitions. gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: Remove entries. Signed-off-by: Owen Avery <[email protected]>
1 parent f870c29 commit 75f3851

File tree

2 files changed

+8
-4
lines changed

2 files changed

+8
-4
lines changed

gcc/rust/rust-session-manager.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -622,6 +622,14 @@ Session::compile_crate (const char *filename)
622622
AST::DesugarQuestionMark ().go (parsed_crate);
623623
AST::DesugarApit ().go (parsed_crate);
624624

625+
// HACK: run a final toplevel pass
626+
// since desugaring may have added definitions
627+
if (!saw_errors () && flag_name_resolution_2_0)
628+
{
629+
Resolver2_0::TopLevel toplevel (name_resolution_ctx);
630+
toplevel.go (parsed_crate);
631+
}
632+
625633
rust_debug ("\033[0;31mSUCCESSFULLY FINISHED EXPANSION \033[0m");
626634
if (options.dump_option_enabled (CompileOptions::EXPANSION_DUMP))
627635
{

gcc/testsuite/rust/compile/nr2/exclude

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,4 @@ torture/alt_patterns1.rs
1010
torture/name_resolve1.rs
1111
issue-3671.rs
1212
issue-3652.rs
13-
issue-1487.rs
14-
issue-2015.rs
15-
issue-3454.rs
16-
impl_trait_generic_arg.rs
1713
# please don't delete the trailing newline

0 commit comments

Comments
 (0)