Browse Source

Add `instrincs.type_is_valid_map_key`

gingerBill 5 years ago
parent
commit
2afe4bea67
2 changed files with 5 additions and 1 deletions
  1. 2 0
      src/check_expr.cpp
  2. 3 1
      src/checker_builtin_procs.hpp

+ 2 - 0
src/check_expr.cpp

@@ -3317,6 +3317,7 @@ BuiltinTypeIsProc *builtin_type_is_procs[BuiltinProc__type_end - BuiltinProc__ty
 	is_type_sliceable,
 	is_type_simple_compare,
 	is_type_dereferenceable,
+	is_type_valid_for_keys,
 
 	is_type_named,
 	is_type_pointer,
@@ -4899,6 +4900,7 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
 	case BuiltinProc_type_is_sliceable:
 	case BuiltinProc_type_is_simple_compare:
 	case BuiltinProc_type_is_dereferenceable:
+	case BuiltinProc_type_is_valid_map_key:
 	case BuiltinProc_type_is_named:
 	case BuiltinProc_type_is_pointer:
 	case BuiltinProc_type_is_opaque:

+ 3 - 1
src/checker_builtin_procs.hpp

@@ -134,6 +134,7 @@ BuiltinProc__type_begin,
 	BuiltinProc_type_is_sliceable,
 	BuiltinProc_type_is_simple_compare, // easily compared using memcmp
 	BuiltinProc_type_is_dereferenceable,
+	BuiltinProc_type_is_valid_map_key,
 
 	BuiltinProc_type_is_named,
 	BuiltinProc_type_is_pointer,
@@ -291,8 +292,9 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
 	{STR_LIT("type_is_ordered_numeric"),   1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_indexable"),         1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_sliceable"),         1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
-	{STR_LIT("type_is_simple_compare"),    1, false, Expr_Expr, BuiltinProcPkg_intrinsics,},
+	{STR_LIT("type_is_simple_compare"),    1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_dereferenceable"),   1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+	{STR_LIT("type_is_valid_map_key"),     1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 
 	{STR_LIT("type_is_named"),             1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
 	{STR_LIT("type_is_pointer"),           1, false, Expr_Expr, BuiltinProcPkg_intrinsics},