diff options
author | John Hodge <tpg@mutabah.net> | 2016-05-18 13:37:01 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-05-18 13:37:01 +0800 |
commit | 8f1a4e56874b0321081161aedfa4da768ffcc65e (patch) | |
tree | 487b8e19aade7114268a1db3fe7f6f321bf8a1ac | |
parent | 8b2dbb2481abadec1f5d5cb0af888ca2916b252f (diff) | |
download | mrust-8f1a4e56874b0321081161aedfa4da768ffcc65e.tar.gz |
HIR - Fix bug in initialising ExprNode_Let
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | src/hir/expr.hpp | 2 | ||||
-rw-r--r-- | src/hir/from_ast.cpp | 2 | ||||
-rw-r--r-- | src/hir/hir.hpp | 4 | ||||
-rw-r--r-- | src/main.cpp | 2 | ||||
-rw-r--r-- | src/parse/lex.cpp | 9 |
6 files changed, 15 insertions, 5 deletions
@@ -6,6 +6,7 @@ V ?= @ LINKFLAGS := -g LIBS := CXXFLAGS := -g -Wall -std=c++14 -Werror +#CXXFLAGS += -Wextra #CXXFLAGS += -O3 CPPFLAGS := -I src/include/ -I src/ diff --git a/src/hir/expr.hpp b/src/hir/expr.hpp index 8dbd6cf9..c47131b4 100644 --- a/src/hir/expr.hpp +++ b/src/hir/expr.hpp @@ -73,7 +73,7 @@ struct ExprNode_Let: ExprNode_Let(::HIR::Pattern pat, ::HIR::TypeRef ty, ::HIR::ExprNodeP val): m_pattern( mv$(pat) ), m_type( mv$(ty) ), - m_value( mv$(m_value) ) + m_value( mv$(val) ) {} NODE_METHODS(); diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp index b857ad67..2c97b550 100644 --- a/src/hir/from_ast.cpp +++ b/src/hir/from_ast.cpp @@ -597,7 +597,7 @@ void _add_mod_val_item(::HIR::Module& mod, ::std::string name, bool is_pub, ::H auto& submod = *module.anon_mods()[i]; ::std::string name = FMT("#" << i); auto item_path = path + name; - _add_mod_ns_item( mod, name, false, LowerHIR_Module(submod, mv$(item_path)) ); + _add_mod_ns_item( mod, mv$(name), false, ::HIR::TypeItem::make_Module( LowerHIR_Module(submod, mv$(item_path)) ) ); } return mod; diff --git a/src/hir/hir.hpp b/src/hir/hir.hpp index 0756b8b0..34a86dbc 100644 --- a/src/hir/hir.hpp +++ b/src/hir/hir.hpp @@ -135,6 +135,10 @@ public: ::std::unordered_map< ::std::string, ::std::unique_ptr<VisEnt<ValueItem>> > m_value_items; // Contains types, traits, and modules ::std::unordered_map< ::std::string, ::std::unique_ptr<VisEnt<TypeItem>> > m_mod_items; + + Module() {} + Module(const Module&) = delete; + Module(Module&& x) = default; }; // -------------------------------------------------------------------- diff --git a/src/main.cpp b/src/main.cpp index 369b1185..df8ca562 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,7 +22,7 @@ int g_debug_indent_level = 0; bool debug_enabled()
{
- return g_cur_phase != "Parse";
+ return g_cur_phase != "Parse" && g_cur_phase != "Expand";
}
::std::ostream& debug_output(int indent, const char* function)
{
diff --git a/src/parse/lex.cpp b/src/parse/lex.cpp index 0ed05123..7cf5ad76 100644 --- a/src/parse/lex.cpp +++ b/src/parse/lex.cpp @@ -1304,6 +1304,7 @@ Token TokenStream::innerGetToken() } Token TokenStream::getToken() { + const bool DEBUG_PRINT_TOKENS = false; if( m_cache_valid ) { m_cache_valid = false; @@ -1313,13 +1314,17 @@ Token TokenStream::getToken() { Token ret = m_lookahead.front(); m_lookahead.erase(m_lookahead.begin()); - ::std::cout << "getToken[" << typeid(*this).name() << "] - " << ret << ::std::endl; + if( DEBUG_PRINT_TOKENS ) { + ::std::cout << "getToken[" << typeid(*this).name() << "] - " << ret << ::std::endl; + } return ret; } else { Token ret = this->innerGetToken(); - ::std::cout << "getToken[" << typeid(*this).name() << "] - " << ret << ::std::endl; + if( DEBUG_PRINT_TOKENS ) { + ::std::cout << "getToken[" << typeid(*this).name() << "] - " << ret << ::std::endl; + } return ret; } } |