From c19bdc2d370f3a72ef492e2f4e6264e2a0dd91ec Mon Sep 17 00:00:00 2001 From: Shawn Landden Date: Mon, 6 May 2019 11:41:15 -0500 Subject: stage1: add @hasField() built-in This was quite straight-forward Closes: #1439 --- src/all_types.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/all_types.hpp') diff --git a/src/all_types.hpp b/src/all_types.hpp index 5a5c1cfda4..80a48db03a 100644 --- a/src/all_types.hpp +++ b/src/all_types.hpp @@ -1394,6 +1394,7 @@ enum BuiltinFnId { BuiltinFnIdMemberName, BuiltinFnIdField, BuiltinFnIdTypeInfo, + BuiltinFnIdHasField, BuiltinFnIdTypeof, BuiltinFnIdAddWithOverflow, BuiltinFnIdSubWithOverflow, @@ -2251,6 +2252,7 @@ enum IrInstructionId { IrInstructionIdByteOffsetOf, IrInstructionIdBitOffsetOf, IrInstructionIdTypeInfo, + IrInstructionIdHasField, IrInstructionIdTypeId, IrInstructionIdSetEvalBranchQuota, IrInstructionIdPtrType, @@ -3229,6 +3231,14 @@ struct IrInstructionTypeInfo { IrInstruction *type_value; }; +struct IrInstructionHasField { + IrInstruction base; + + IrInstruction *container_type; + Buf *field_name_buffer; + IrInstruction *field_name_expr; +}; + struct IrInstructionTypeId { IrInstruction base; -- cgit v1.2.3