mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-07 21:43:15 +00:00
Improve package strings
This commit is contained in:
@@ -388,8 +388,7 @@ Entity *scope_lookup(Scope *s, String name) {
|
||||
|
||||
|
||||
|
||||
Entity *scope_insert(Scope *s, Entity *entity) {
|
||||
String name = entity->token.string;
|
||||
Entity *scope_insert_with_name(Scope *s, String name, Entity *entity) {
|
||||
if (name == "") {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -406,6 +405,11 @@ Entity *scope_insert(Scope *s, Entity *entity) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Entity *scope_insert(Scope *s, Entity *entity) {
|
||||
String name = entity->token.string;
|
||||
return scope_insert_with_name(s, name, entity);
|
||||
}
|
||||
|
||||
|
||||
GB_COMPARE_PROC(entity_variable_pos_cmp) {
|
||||
Entity *x = *cast(Entity **)a;
|
||||
@@ -1023,11 +1027,10 @@ void add_entity_definition(CheckerInfo *i, Ast *identifier, Entity *entity) {
|
||||
array_add(&i->definitions, entity);
|
||||
}
|
||||
|
||||
bool add_entity(Checker *c, Scope *scope, Ast *identifier, Entity *entity) {
|
||||
bool add_entity_with_name(Checker *c, Scope *scope, Ast *identifier, Entity *entity, String name) {
|
||||
if (scope == nullptr) {
|
||||
return false;
|
||||
}
|
||||
String name = entity->token.string;
|
||||
if (!is_blank_ident(name)) {
|
||||
Entity *ie = scope_insert(scope, entity);
|
||||
if (ie != nullptr) {
|
||||
@@ -1063,6 +1066,9 @@ bool add_entity(Checker *c, Scope *scope, Ast *identifier, Entity *entity) {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
bool add_entity(Checker *c, Scope *scope, Ast *identifier, Entity *entity) {
|
||||
return add_entity_with_name(c, scope, identifier, entity, entity->token.string);
|
||||
}
|
||||
|
||||
void add_entity_use(CheckerContext *c, Ast *identifier, Entity *entity) {
|
||||
if (entity == nullptr) {
|
||||
@@ -3050,12 +3056,13 @@ void check_add_import_decl(CheckerContext *ctx, Ast *decl) {
|
||||
|
||||
// NOTE(bill): Add imported entities to this file's scope
|
||||
for_array(elem_index, scope->elements.entries) {
|
||||
String name = scope->elements.entries[elem_index].key.string;
|
||||
Entity *e = scope->elements.entries[elem_index].value;
|
||||
if (e->scope == parent_scope) continue;
|
||||
|
||||
if (is_entity_exported(e)) {
|
||||
Entity *prev = scope_lookup(parent_scope, e->token.string);
|
||||
add_entity(ctx->checker, parent_scope, e->identifier, e);
|
||||
Entity *prev = scope_lookup(parent_scope, name);
|
||||
add_entity_with_name(ctx->checker, parent_scope, e->identifier, e, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user