aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-01-28 21:20:30 +0000
committergingerBill <bill@gingerbill.org>2024-01-28 21:20:30 +0000
commitd04c82e5471bb291cddbef883a36b1caad3b2b99 (patch)
tree526c2e3e55f40aa7c37909c9eece7307ff1b0e25 /src
parent09fa1c29cd014b4560b3c79c72db68af20ef8187 (diff)
Move matrix compiler `builtin`s to `intrinsics`; alias within core_builtin_matrix.odin
Diffstat (limited to 'src')
-rw-r--r--src/check_expr.cpp3
-rw-r--r--src/checker.cpp1
-rw-r--r--src/checker_builtin_procs.hpp20
3 files changed, 13 insertions, 11 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index f8c5540f4..a6081a1cc 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -4577,7 +4577,8 @@ gb_internal bool is_entity_declared_for_selector(Entity *entity, Scope *import_s
if (entity->kind == Entity_Builtin) {
// NOTE(bill): Builtin's are in the universal scope which is part of every scopes hierarchy
// This means that we should just ignore the found result through it
- *allow_builtin = entity->scope == import_scope || entity->scope != builtin_pkg->scope;
+ *allow_builtin = entity->scope == import_scope ||
+ (entity->scope != builtin_pkg->scope && entity->scope != intrinsics_pkg->scope);
} else if ((entity->scope->flags&ScopeFlag_Global) == ScopeFlag_Global && (import_scope->flags&ScopeFlag_Global) == 0) {
is_declared = false;
}
diff --git a/src/checker.cpp b/src/checker.cpp
index 563bb2781..47fcd3d8f 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -3835,6 +3835,7 @@ gb_internal void check_builtin_attributes(CheckerContext *ctx, Entity *e, Array<
case Entity_ProcGroup:
case Entity_Procedure:
case Entity_TypeName:
+ case Entity_Constant:
// Okay
break;
default:
diff --git a/src/checker_builtin_procs.hpp b/src/checker_builtin_procs.hpp
index 3bab16293..42ffa6938 100644
--- a/src/checker_builtin_procs.hpp
+++ b/src/checker_builtin_procs.hpp
@@ -34,11 +34,6 @@ enum BuiltinProcId {
BuiltinProc_soa_zip,
BuiltinProc_soa_unzip,
-
- BuiltinProc_transpose,
- BuiltinProc_outer_product,
- BuiltinProc_hadamard_product,
- BuiltinProc_matrix_flatten,
BuiltinProc_unreachable,
@@ -48,6 +43,11 @@ enum BuiltinProcId {
// "Intrinsics"
BuiltinProc_is_package_imported,
+
+ BuiltinProc_transpose,
+ BuiltinProc_outer_product,
+ BuiltinProc_hadamard_product,
+ BuiltinProc_matrix_flatten,
BuiltinProc_soa_struct,
@@ -341,11 +341,6 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
{STR_LIT("soa_zip"), 1, true, Expr_Expr, BuiltinProcPkg_builtin},
{STR_LIT("soa_unzip"), 1, false, Expr_Expr, BuiltinProcPkg_builtin},
-
- {STR_LIT("transpose"), 1, false, Expr_Expr, BuiltinProcPkg_builtin},
- {STR_LIT("outer_product"), 2, false, Expr_Expr, BuiltinProcPkg_builtin},
- {STR_LIT("hadamard_product"), 2, false, Expr_Expr, BuiltinProcPkg_builtin},
- {STR_LIT("matrix_flatten"), 1, false, Expr_Expr, BuiltinProcPkg_builtin},
{STR_LIT("unreachable"), 0, false, Expr_Expr, BuiltinProcPkg_builtin, /*diverging*/true},
@@ -356,6 +351,11 @@ gb_global BuiltinProc builtin_procs[BuiltinProc_COUNT] = {
// "Intrinsics"
{STR_LIT("is_package_imported"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+
+ {STR_LIT("transpose"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+ {STR_LIT("outer_product"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+ {STR_LIT("hadamard_product"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics},
+ {STR_LIT("matrix_flatten"), 1, false, Expr_Expr, BuiltinProcPkg_intrinsics},
{STR_LIT("soa_struct"), 2, false, Expr_Expr, BuiltinProcPkg_intrinsics}, // Type