Change import name determination rules

Use custom name if given, then directory name, then the package name
This commit is contained in:
gingerBill
2019-01-13 11:54:25 +00:00
parent cf94d1735d
commit 3363e2c199
+13 -11
View File
@@ -2631,7 +2631,7 @@ bool is_string_an_identifier(String s) {
return offset == s.len; return offset == s.len;
} }
String path_to_entity_name(String name, String fullpath) { String path_to_entity_name(String name, String fullpath, bool strip_extension=true) {
if (name.len != 0) { if (name.len != 0) {
return name; return name;
} }
@@ -2650,16 +2650,18 @@ String path_to_entity_name(String name, String fullpath) {
filename = substring(filename, slash, filename.len); filename = substring(filename, slash, filename.len);
dot = filename.len; if (strip_extension) {
while (dot --> 0) { dot = filename.len;
u8 c = filename[dot]; while (dot --> 0) {
if (c == '.') { u8 c = filename[dot];
break; if (c == '.') {
break;
}
} }
}
if (dot > 0) { if (dot > 0) {
filename = substring(filename, 0, dot); filename = substring(filename, 0, dot);
}
} }
if (is_string_an_identifier(filename)) { if (is_string_an_identifier(filename)) {
@@ -2884,8 +2886,8 @@ void check_add_import_decl(CheckerContext *ctx, Ast *decl) {
ptr_set_add(&parent_scope->imported, scope); ptr_set_add(&parent_scope->imported, scope);
} }
String import_name = path_to_entity_name(id->import_name.string, id->fullpath, false);
String import_name = id->import_name.string; // String import_name = id->import_name.string;
if (import_name.len == 0) { if (import_name.len == 0) {
import_name = scope->pkg->name; import_name = scope->pkg->name;
} }