summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hir/from_ast.cpp7
-rw-r--r--src/hir/from_ast_expr.cpp10
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);
}
}
};