diff options
author | John Hodge <tpg@mutabah.net> | 2016-09-27 12:53:31 +0800 |
---|---|---|
committer | John Hodge <tpg@mutabah.net> | 2016-09-27 12:53:31 +0800 |
commit | 5fbfd267b54e243ebe2ad3820d75359d7ed95988 (patch) | |
tree | c55f8a72a2c25d9cee659b33f11232ffe130dd65 /src/hir_typeck/expr_check.cpp | |
parent | 93f6bc5fa72608ea8f032a429ae4d1613befc04c (diff) | |
download | mrust-5fbfd267b54e243ebe2ad3820d75359d7ed95988.tar.gz |
HIR Typecheck - Support casting all integers to pointers
Diffstat (limited to 'src/hir_typeck/expr_check.cpp')
-rw-r--r-- | src/hir_typeck/expr_check.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/hir_typeck/expr_check.cpp b/src/hir_typeck/expr_check.cpp index b517e421..0b700c5d 100644 --- a/src/hir_typeck/expr_check.cpp +++ b/src/hir_typeck/expr_check.cpp @@ -255,11 +255,25 @@ namespace { ), (Pointer, // TODO: Sized check - can't cast to a fat pointer from a thin one + //if( ! this->m_resolve.type_is_sized(*de.inner) ) { + // ERROR(sp, E0000, "Invalid cast to fat pointer " << dst_ty << " from " << src_ty); + //} ), (Primitive, - if( se != ::HIR::CoreType::Usize ) { + switch(se) + { + case ::HIR::CoreType::Bool: + case ::HIR::CoreType::Char: + case ::HIR::CoreType::Str: + case ::HIR::CoreType::F32: + case ::HIR::CoreType::F64: ERROR(sp, E0000, "Invalid cast to " << dst_ty << " from " << src_ty); + default: + break; } + //if( ! this->m_resolve.type_is_sized(*de.inner) ) { + // ERROR(sp, E0000, "Invalid cast to fat pointer " << dst_ty << " from " << src_ty); + //} ), (Function, if( *de.inner != ::HIR::TypeRef::new_unit() ) { |