aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/rust-session-manager.cc
diff options
context:
space:
mode:
authorSimplyTheOther <simplytheother@gmail.com>2021-02-07 12:40:19 +0800
committerSimplyTheOther <simplytheother@gmail.com>2021-02-07 12:40:19 +0800
commit94be91d6159101caa7c560b188bd6c02d8d86d17 (patch)
treeb3c32de54db1a850079f79d3dfb4c4000dec9d90 /gcc/rust/rust-session-manager.cc
parent27eef5b7a065e8ea05ac575c4b364bb5dbc44e46 (diff)
parentdb7134353447921136a321b8fd78cea78f2c344e (diff)
downloadgcc-94be91d6159101caa7c560b188bd6c02d8d86d17.zip
gcc-94be91d6159101caa7c560b188bd6c02d8d86d17.tar.gz
gcc-94be91d6159101caa7c560b188bd6c02d8d86d17.tar.bz2
Merge branch 'master' of https://github.com/redbrain/gccrs
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,