From 179443bd61c85c7d808304dc334bb407aa793988 Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 1 Feb 2016 02:11:46 -0700 Subject: add ?? prefix operator --- src/analyze.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/analyze.cpp') diff --git a/src/analyze.cpp b/src/analyze.cpp index e71c762669..6e3abdac35 100644 --- a/src/analyze.cpp +++ b/src/analyze.cpp @@ -4207,6 +4207,20 @@ static TypeTableEntry *analyze_prefix_op_expr(CodeGen *g, ImportTableEntry *impo return g->builtin_types.entry_invalid; } } + case PrefixOpUnwrapMaybe: + { + TypeTableEntry *type_entry = analyze_expression(g, import, context, nullptr, expr_node); + + if (type_entry->id == TypeTableEntryIdInvalid) { + return type_entry; + } else if (type_entry->id == TypeTableEntryIdMaybe) { + return type_entry->data.maybe.child_type; + } else { + add_node_error(g, expr_node, + buf_sprintf("expected maybe type, got '%s'", buf_ptr(&type_entry->name))); + return g->builtin_types.entry_invalid; + } + } } zig_unreachable(); } -- cgit v1.2.3