summaryrefslogtreecommitdiff
path: root/src/hir_typeck/expr_check.cpp
diff options
context:
space:
mode:
authorJohn Hodge <tpg@ucc.asn.au>2017-05-26 14:22:00 +0800
committerJohn Hodge <tpg@ucc.asn.au>2017-05-26 14:22:00 +0800
commit1b8e9e01a8ebce42e8ad3dca101180430b28c947 (patch)
tree32aba1e96d125ca8057cad2631ee0001fca30721 /src/hir_typeck/expr_check.cpp
parent18476fb8893417176b7ba902eb9556225f96a4f7 (diff)
downloadmrust-1b8e9e01a8ebce42e8ad3dca101180430b28c947.tar.gz
HIR Typecheck - Handle struct syntax for unit structs
Diffstat (limited to 'src/hir_typeck/expr_check.cpp')
-rw-r--r--src/hir_typeck/expr_check.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/hir_typeck/expr_check.cpp b/src/hir_typeck/expr_check.cpp
index 9e369e61..d0fe6a5d 100644
--- a/src/hir_typeck/expr_check.cpp
+++ b/src/hir_typeck/expr_check.cpp
@@ -473,6 +473,14 @@ namespace {
TODO(sp, "Union in StructLiteral");
),
(Struct,
+ if( e->m_data.is_Unit() )
+ {
+ ASSERT_BUG(node.span(), node.m_values.size() == 0, "Values provided for unit-like struct");
+ ASSERT_BUG(node.span(), ! node.m_base_value, "Values provided for unit-like struct");
+ return ;
+ }
+
+ ASSERT_BUG(node.span(), e->m_data.is_Named(), "StructLiteral not pointing to a braced struct, instead " << e->m_data.tag_str() << " - " << ty);
fields_ptr = &e->m_data.as_Named();
)
)