Skip to content

Commit 64908f1

Browse files
committed
Move AST desugaring into expansion phase
This fixes some issues with name resolution 2.0. gcc/rust/ChangeLog: * rust-session-manager.cc (Session::compile_crate): Move AST desugaring to... (Session::expansion): ...here and add a final TopLevel pass afterwards. gcc/testsuite/ChangeLog: * rust/compile/nr2/exclude: Remove entries. Signed-off-by: Owen Avery <[email protected]>
1 parent c087dd8 commit 64908f1

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

gcc/rust/rust-session-manager.cc

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -618,10 +618,6 @@ Session::compile_crate (const char *filename)
618618

619619
expansion (parsed_crate, name_resolution_ctx);
620620

621-
AST::DesugarForLoops ().go (parsed_crate);
622-
AST::DesugarQuestionMark ().go (parsed_crate);
623-
AST::DesugarApit ().go (parsed_crate);
624-
625621
rust_debug ("\033[0;31mSUCCESSFULLY FINISHED EXPANSION \033[0m");
626622
if (options.dump_option_enabled (CompileOptions::EXPANSION_DUMP))
627623
{
@@ -966,6 +962,16 @@ Session::expansion (AST::Crate &crate, Resolver2_0::NameResolutionContext &ctx)
966962

967963
if (saw_errors ())
968964
break;
965+
966+
AST::DesugarForLoops ().go (crate);
967+
AST::DesugarQuestionMark ().go (crate);
968+
AST::DesugarApit ().go (crate);
969+
970+
// HACK: we may need a final TopLevel pass
971+
// however, this should not count towards the recursion limit
972+
// and we don't need a full Early pass
973+
if (flag_name_resolution_2_0)
974+
Resolver2_0::TopLevel (ctx).go (crate);
969975
}
970976

971977
// Fixed point reached: Emit unresolved macros error

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)