diff options
author | SimplyTheOther <simplytheother@gmail.com> | 2021-02-07 12:40:19 +0800 |
---|---|---|
committer | SimplyTheOther <simplytheother@gmail.com> | 2021-02-07 12:40:19 +0800 |
commit | 94be91d6159101caa7c560b188bd6c02d8d86d17 (patch) | |
tree | b3c32de54db1a850079f79d3dfb4c4000dec9d90 /gcc/rust/rust-session-manager.cc | |
parent | 27eef5b7a065e8ea05ac575c4b364bb5dbc44e46 (diff) | |
parent | db7134353447921136a321b8fd78cea78f2c344e (diff) | |
download | gcc-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.cc | 46 |
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, |