aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-05-28 18:46:39 +0100
committergingerBill <bill@gingerbill.org>2018-05-28 18:46:39 +0100
commit619783ca1ba783d1248297127fa8e5d0a097d7ba (patch)
tree8d2fdea3b9d7f31a531983e7af8fe62ca757fb4b /src/check_expr.cpp
parent642aa0bc4b47752d4ea52f97dec3d478470b597e (diff)
Remove clutter parameters and begin parallelizing the type checker
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 181de0654..9c34faa49 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -123,7 +123,7 @@ void check_scope_decls(CheckerContext *c, Array<AstNode *> nodes, isize reserve_
default:
continue;
}
- DeclInfo *d = decl_info_of_entity(&c->checker->info, e);
+ DeclInfo *d = decl_info_of_entity(e);
if (d != nullptr) {
check_entity_decl(c, e, d, nullptr);
}
@@ -211,7 +211,7 @@ bool find_or_generate_polymorphic_procedure(CheckerContext *c, Entity *base_enti
}
- DeclInfo *old_decl = decl_info_of_entity(&c->checker->info, base_entity);
+ DeclInfo *old_decl = decl_info_of_entity(base_entity);
if (old_decl == nullptr) {
return false;
}
@@ -267,10 +267,10 @@ bool find_or_generate_polymorphic_procedure(CheckerContext *c, Entity *base_enti
}
- gb_mutex_lock(&nctx.checker->mutex);
- defer (gb_mutex_unlock(&nctx.checker->mutex));
+ gb_mutex_lock(&nctx.info->mutex);
+ defer (gb_mutex_unlock(&nctx.info->mutex));
- auto *found_gen_procs = map_get(&nctx.checker->info.gen_procs, hash_pointer(base_entity->identifier));
+ auto *found_gen_procs = map_get(&nctx.info->gen_procs, hash_pointer(base_entity->identifier));
if (found_gen_procs) {
auto procs = *found_gen_procs;
for_array(i, procs) {
@@ -382,7 +382,7 @@ bool find_or_generate_polymorphic_procedure(CheckerContext *c, Entity *base_enti
bool check_polymorphic_procedure_assignment(CheckerContext *c, Operand *operand, Type *type, PolyProcData *poly_proc_data) {
if (operand->expr == nullptr) return false;
- Entity *base_entity = entity_of_ident(&c->checker->info, operand->expr);
+ Entity *base_entity = entity_of_ident(operand->expr);
if (base_entity == nullptr) return false;
return find_or_generate_polymorphic_procedure(c, base_entity, type, nullptr, poly_proc_data);
}
@@ -966,7 +966,7 @@ Entity *check_ident(CheckerContext *c, Operand *o, AstNode *n, Type *named_type,
if (e->kind == Entity_ProcGroup) {
auto *pge = &e->ProcGroup;
- DeclInfo *d = decl_info_of_entity(&c->checker->info, e);
+ DeclInfo *d = decl_info_of_entity(e);
check_entity_decl(c, e, d, nullptr);
@@ -4089,7 +4089,7 @@ isize add_dependencies_from_unpacking(CheckerContext *c, Entity **lhs, isize lhs
if (lhs != nullptr) {
for (isize j = 0; (tuple_index + j) < lhs_count && j < tuple_count; j++) {
Entity *e = lhs[tuple_index + j];
- DeclInfo *decl = decl_info_of_entity(&c->checker->info, e);
+ DeclInfo *decl = decl_info_of_entity(e);
if (decl != nullptr) {
c->decl = decl; // will be reset by the 'defer' any way
for_array(k, decl->deps.entries) {
@@ -4117,7 +4117,7 @@ void check_unpack_arguments(CheckerContext *ctx, Entity **lhs, isize lhs_count,
if (lhs != nullptr && tuple_index < lhs_count) {
// NOTE(bill): override DeclInfo for dependency
Entity *e = lhs[tuple_index];
- DeclInfo *decl = decl_info_of_entity(&c->checker->info, e);
+ DeclInfo *decl = decl_info_of_entity(e);
if (decl) c->decl = decl;
type_hint = e->type;
}
@@ -4722,7 +4722,7 @@ CallArgumentData check_call_arguments(CheckerContext *c, Operand *operand, Type
ident = s;
}
- Entity *e = entity_of_ident(&c->checker->info, ident);
+ Entity *e = entity_of_ident(ident);
CallArgumentData data = {};
CallArgumentError err = call_checker(c, call, proc_type, e, operands, CallArgumentMode_ShowErrors, &data);
Entity *entity_to_use = data.gen_entity != nullptr ? data.gen_entity : e;