aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/rust-session-manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/rust-session-manager.cc')
-rw-r--r--gcc/rust/rust-session-manager.cc46
1 files changed, 13 insertions, 33 deletions
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index dcdbd49..1d31135 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -35,6 +35,7 @@
#include "rust-ast-lower.h"
#include "rust-hir-type-check.h"
#include "rust-tycheck-dump.h"
+#include "rust-ast-resolve-unused.h"
#include "rust-compile.h"
extern Linemap *
@@ -527,9 +528,7 @@ Session::parse_file (const char *filename)
}
// resolution pipeline stage
- resolution (parsed_crate);
- fprintf (stderr, "\033[0;31mSUCCESSFULLY FINISHED RESOLUTION \n\033[0m");
-
+ Resolver::NameResolution::Resolve (parsed_crate);
if (options.dump_option == CompileOptions::RESOLUTION_DUMP)
{
// TODO: what do I dump here? resolved names? AST with resolved names?
@@ -539,7 +538,7 @@ Session::parse_file (const char *filename)
return;
// lower AST to HIR
- HIR::Crate hir = lower_ast (parsed_crate);
+ HIR::Crate hir = HIR::ASTLowering::Resolve (parsed_crate);
if (options.dump_option == CompileOptions::HIR_DUMP)
{
fprintf (stderr, "%s", hir.as_string ().c_str ());
@@ -550,11 +549,17 @@ Session::parse_file (const char *filename)
return;
// type resolve
- type_resolution (hir);
+ Resolver::TypeResolution::Resolve (hir);
+ if (options.dump_option == CompileOptions::TYPE_RESOLUTION_DUMP)
+ {
+ auto buf = Resolver::TypeResolverDump::go (hir);
+ fprintf (stderr, "%s\n", buf.c_str ());
+ return;
+ }
- // FIXME this needs an option of itself
- // auto buf = Resolver::TypeResolverDump::go (hir);
- // fprintf (stderr, "%s\n", buf.c_str ());
+ // scan unused has to be done after type resolution since methods are resolved
+ // at that point
+ Resolver::ScanUnused::Scan ();
if (saw_errors ())
return;
@@ -792,31 +797,6 @@ Session::expansion (AST::Crate &crate)
}
void
-Session::resolution (AST::Crate &crate)
-{
- fprintf (stderr, "started name resolution\n");
- Resolver::NameResolution::Resolve (crate);
- fprintf (stderr, "finished name resolution\n");
-}
-
-HIR::Crate
-Session::lower_ast (AST::Crate &crate)
-{
- fprintf (stderr, "started lowering AST\n");
- auto hir = HIR::ASTLowering::Resolve (crate);
- fprintf (stderr, "finished lowering AST\n");
- return hir;
-}
-
-void
-Session::type_resolution (HIR::Crate &crate)
-{
- fprintf (stderr, "started type resolution\n");
- Resolver::TypeResolution::Resolve (crate);
- fprintf (stderr, "finished type resolution\n");
-}
-
-void
TargetOptions::dump_target_options () const
{
fprintf (stderr,