summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hir_typeck/expr_cs.cpp2
-rw-r--r--src/parse/pattern.cpp8
2 files changed, 4 insertions, 6 deletions
diff --git a/src/hir_typeck/expr_cs.cpp b/src/hir_typeck/expr_cs.cpp
index e45bf4d9..27e5d0a5 100644
--- a/src/hir_typeck/expr_cs.cpp
+++ b/src/hir_typeck/expr_cs.cpp
@@ -2991,12 +2991,14 @@ void Context::add_binding(const Span& sp, ::HIR::Pattern& pat, const ::HIR::Type
static void handle_value(Context& context, const Span& sp, const ::HIR::TypeRef& type, const ::HIR::Pattern::Value& val) {
TU_MATCH(::HIR::Pattern::Value, (val), (v),
(Integer,
+ DEBUG("Integer " << ::HIR::TypeRef(v.type));
// TODO: Apply an ivar bound? (Require that this ivar be an integer?)
if( v.type != ::HIR::CoreType::Str ) {
context.equate_types(sp, type, ::HIR::TypeRef(v.type));
}
),
(Float,
+ DEBUG("Float " << ::HIR::TypeRef(v.type));
// TODO: Apply an ivar bound? (Require that this ivar be a float?)
if( v.type != ::HIR::CoreType::Str ) {
context.equate_types(sp, type, ::HIR::TypeRef(v.type));
diff --git a/src/parse/pattern.cpp b/src/parse/pattern.cpp
index 13b94753..7b16a10b 100644
--- a/src/parse/pattern.cpp
+++ b/src/parse/pattern.cpp
@@ -204,16 +204,12 @@ AST::Pattern Parse_PatternReal1(TokenStream& lex, bool is_refutable)
if(GET_TOK(tok, lex) == TOK_INTEGER)
{
auto dt = tok.datatype();
- if(dt == CORETYPE_ANY)
- dt = CORETYPE_I32;
+ // TODO: Ensure that the type is ANY or a signed integer
return AST::Pattern( AST::Pattern::TagValue(), AST::Pattern::Value::make_Integer({dt, -tok.intval()}) );
}
else if( tok.type() == TOK_FLOAT )
{
- auto dt = tok.datatype();
- if(dt == CORETYPE_ANY)
- dt = CORETYPE_F32;
- return AST::Pattern( AST::Pattern::TagValue(), AST::Pattern::Value::make_Float({dt, -tok.floatval()}) );
+ return AST::Pattern( AST::Pattern::TagValue(), AST::Pattern::Value::make_Float({tok.datatype(), -tok.floatval()}) );
}
else
{