mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-17 16:31:25 -07:00
Use try_to_add_package_dependency
This commit is contained in:
@@ -223,10 +223,10 @@ void add_objc_proc_type(CheckerContext *c, Ast *call, Type *return_type, Slice<T
|
||||
map_set(&c->info->objc_msgSend_types, call, data);
|
||||
mutex_unlock(&c->info->objc_types_mutex);
|
||||
|
||||
add_package_dependency(c, "runtime", "objc_msgSend");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_fpret");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_fp2ret");
|
||||
add_package_dependency(c, "runtime", "objc_msgSend_stret");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_msgSend");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_msgSend_fpret");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_msgSend_fp2ret");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_msgSend_stret");
|
||||
}
|
||||
|
||||
bool is_constant_string(CheckerContext *c, String const &builtin_name, Ast *expr, String *name_) {
|
||||
@@ -371,9 +371,9 @@ bool check_builtin_objc_procedure(CheckerContext *c, Operand *operand, Ast *call
|
||||
}
|
||||
operand->mode = Addressing_Value;
|
||||
|
||||
add_package_dependency(c, "runtime", "objc_lookUpClass");
|
||||
add_package_dependency(c, "runtime", "sel_registerName");
|
||||
add_package_dependency(c, "runtime", "objc_allocateClassPair");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_lookUpClass");
|
||||
try_to_add_package_dependency(c, "runtime", "sel_registerName");
|
||||
try_to_add_package_dependency(c, "runtime", "objc_allocateClassPair");
|
||||
return true;
|
||||
} break;
|
||||
}
|
||||
|
||||
+14
-1
@@ -733,12 +733,25 @@ void add_package_dependency(CheckerContext *c, char const *package_name, char co
|
||||
String n = make_string_c(name);
|
||||
AstPackage *p = get_core_package(&c->checker->info, make_string_c(package_name));
|
||||
Entity *e = scope_lookup(p->scope, n);
|
||||
e->flags |= EntityFlag_Used;
|
||||
GB_ASSERT_MSG(e != nullptr, "%s", name);
|
||||
GB_ASSERT(c->decl != nullptr);
|
||||
e->flags |= EntityFlag_Used;
|
||||
add_dependency(c->info, c->decl, e);
|
||||
}
|
||||
|
||||
void try_to_add_package_dependency(CheckerContext *c, char const *package_name, char const *name) {
|
||||
String n = make_string_c(name);
|
||||
AstPackage *p = get_core_package(&c->checker->info, make_string_c(package_name));
|
||||
Entity *e = scope_lookup(p->scope, n);
|
||||
if (e == nullptr) {
|
||||
return;
|
||||
}
|
||||
GB_ASSERT(c->decl != nullptr);
|
||||
e->flags |= EntityFlag_Used;
|
||||
add_dependency(c->info, c->decl, e);
|
||||
}
|
||||
|
||||
|
||||
void add_declaration_dependency(CheckerContext *c, Entity *e) {
|
||||
if (e == nullptr) {
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user