From 1b8e9e01a8ebce42e8ad3dca101180430b28c947 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Fri, 26 May 2017 14:22:00 +0800 Subject: HIR Typecheck - Handle struct syntax for unit structs --- src/hir_typeck/expr_check.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/hir_typeck/expr_check.cpp') 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(); ) ) -- cgit v1.2.3