Browse Source

Add `intrinsics.type_is_unsigned`

gingerBill 5 years ago
parent
commit
536cceeef9
3 changed files with 5 additions and 0 deletions
  1. 1 0
      core/intrinsics/intrinsics.odin
  2. 2 0
      src/check_expr.cpp
  3. 2 0
      src/checker_builtin_procs.hpp

+ 1 - 0
core/intrinsics/intrinsics.odin

@@ -95,6 +95,7 @@ type_is_any        :: proc($T: typeid) -> bool ---
 
 
 type_is_endian_little   :: proc($T: typeid) -> bool ---
 type_is_endian_little   :: proc($T: typeid) -> bool ---
 type_is_endian_big      :: proc($T: typeid) -> bool ---
 type_is_endian_big      :: proc($T: typeid) -> bool ---
+type_is_unsigned        :: proc($T: typeid) -> bool ---
 type_is_numeric         :: proc($T: typeid) -> bool ---
 type_is_numeric         :: proc($T: typeid) -> bool ---
 type_is_ordered         :: proc($T: typeid) -> bool ---
 type_is_ordered         :: proc($T: typeid) -> bool ---
 type_is_ordered_numeric :: proc($T: typeid) -> bool ---
 type_is_ordered_numeric :: proc($T: typeid) -> bool ---

+ 2 - 0
src/check_expr.cpp

@@ -3322,6 +3322,7 @@ BuiltinTypeIsProc *builtin_type_is_procs[BuiltinProc__type_end - BuiltinProc__ty
 	is_type_any,
 	is_type_any,
 	is_type_endian_little,
 	is_type_endian_little,
 	is_type_endian_big,
 	is_type_endian_big,
+	is_type_unsigned,
 	is_type_numeric,
 	is_type_numeric,
 	is_type_ordered,
 	is_type_ordered,
 	is_type_ordered_numeric,
 	is_type_ordered_numeric,
@@ -5044,6 +5045,7 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
 	case BuiltinProc_type_is_any:
 	case BuiltinProc_type_is_any:
 	case BuiltinProc_type_is_endian_little:
 	case BuiltinProc_type_is_endian_little:
 	case BuiltinProc_type_is_endian_big:
 	case BuiltinProc_type_is_endian_big:
+	case BuiltinProc_type_is_unsigned:
 	case BuiltinProc_type_is_numeric:
 	case BuiltinProc_type_is_numeric:
 	case BuiltinProc_type_is_ordered:
 	case BuiltinProc_type_is_ordered:
 	case BuiltinProc_type_is_ordered_numeric:
 	case BuiltinProc_type_is_ordered_numeric:

+ 2 - 0
src/checker_builtin_procs.hpp

@@ -128,6 +128,7 @@ BuiltinProc__type_begin,
 
 
 	BuiltinProc_type_is_endian_little,
 	BuiltinProc_type_is_endian_little,
 	BuiltinProc_type_is_endian_big,
 	BuiltinProc_type_is_endian_big,
+	BuiltinProc_type_is_unsigned,
 	BuiltinProc_type_is_numeric,
 	BuiltinProc_type_is_numeric,
 	BuiltinProc_type_is_ordered,
 	BuiltinProc_type_is_ordered,
 	BuiltinProc_type_is_ordered_numeric,
 	BuiltinProc_type_is_ordered_numeric,
@@ -290,6 +291,7 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
 
 
 	{STR_LIT("type_is_endian_little"),     1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_endian_little"),     1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_endian_big"),        1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_endian_big"),        1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+	{STR_LIT("type_is_unsigned"),          1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_numeric"),           1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_numeric"),           1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_ordered"),           1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_ordered"),           1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_ordered_numeric"),   1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_ordered_numeric"),   1, false, Expr_Expr, BuiltinProcPkg_intrinsics},