diff options
author | John Hodge <tpg@ucc.asn.au> | 2017-05-26 14:22:00 +0800 |
---|---|---|
committer | John Hodge <tpg@ucc.asn.au> | 2017-05-26 14:22:00 +0800 |
commit | 1b8e9e01a8ebce42e8ad3dca101180430b28c947 (patch) | |
tree | 32aba1e96d125ca8057cad2631ee0001fca30721 /src/hir_typeck/expr_check.cpp | |
parent | 18476fb8893417176b7ba902eb9556225f96a4f7 (diff) | |
download | mrust-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.cpp | 8 |
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(); ) ) |