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/codegen.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/codegen.cpp') diff --git a/src/codegen.cpp b/src/codegen.cpp index ef910bbba7..c82b337c50 100644 --- a/src/codegen.cpp +++ b/src/codegen.cpp @@ -85,6 +85,7 @@ static LLVMValueRef gen_var_decl_raw(CodeGen *g, AstNode *source_node, AstNodeVa static LLVMValueRef gen_assign_raw(CodeGen *g, AstNode *source_node, BinOpType bin_op, LLVMValueRef target_ref, LLVMValueRef value, TypeTableEntry *op1_type, TypeTableEntry *op2_type); +static LLVMValueRef gen_unwrap_maybe(CodeGen *g, AstNode *node, LLVMValueRef maybe_struct_ref); static TypeTableEntry *get_type_for_type_node(AstNode *node) { Expr *expr = get_resolved_expr(node); @@ -1005,6 +1006,12 @@ static LLVMValueRef gen_prefix_op_expr(CodeGen *g, AstNode *node) { return nullptr; } } + case PrefixOpUnwrapMaybe: + { + LLVMValueRef expr_val = gen_expr(g, expr_node); + // TODO in debug mode, put a panic here if null + return gen_unwrap_maybe(g, expr_node, expr_val); + } } zig_unreachable(); } -- cgit v1.2.3