diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hir/from_ast.cpp | 7 | ||||
-rw-r--r-- | src/hir/from_ast_expr.cpp | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/hir/from_ast.cpp b/src/hir/from_ast.cpp index a6947f8f..7ab503cf 100644 --- a/src/hir/from_ast.cpp +++ b/src/hir/from_ast.cpp @@ -232,8 +232,13 @@ case CORETYPE_INT: return ::HIR::CoreType::Isize; case CORETYPE_UINT: return ::HIR::CoreType::Usize; + + case CORETYPE_CHAR: return ::HIR::CoreType::Char; + + case CORETYPE_BOOL: return ::HIR::CoreType::Bool; + default: - BUG(Span(), "Unknown type for integer literal"); + BUG(Span(), "Unknown type for integer literal in pattern - " << ct ); } } static ::HIR::Pattern::Value lowerhir_pattern_value(const ::AST::Pattern::Value& v) { diff --git a/src/hir/from_ast_expr.cpp b/src/hir/from_ast_expr.cpp index 4213e2f3..eac8e756 100644 --- a/src/hir/from_ast_expr.cpp +++ b/src/hir/from_ast_expr.cpp @@ -226,6 +226,14 @@ struct LowerHIR_ExprNode_Visitor: ) ); } virtual void visit(::AST::ExprNode_CallObject& v) override { + ::std::vector< ::HIR::ExprNodeP> args; + for(const auto& arg : v.m_args) + args.push_back( LowerHIR_ExprNode_Inner(*arg) ); + + m_rv.reset( new ::HIR::ExprNode_CallValue( + LowerHIR_ExprNode_Inner(*v.m_val), + mv$(args) + ) ); } virtual void visit(::AST::ExprNode_Loop& v) override { switch( v.m_type ) @@ -353,7 +361,7 @@ struct LowerHIR_ExprNode_Visitor: case CORETYPE_CHAR: return ::HIR::CoreType::Char; default: - BUG(sp, "Unknown type for integer literal"); + BUG(sp, "Unknown type for integer literal - " << ct); } } }; |