Browse Source

Change import name determination rules
Use custom name if given, then directory name, then the package name

gingerBill 6 years ago
parent
commit
3363e2c199
1 changed files with 13 additions and 11 deletions
  1. 13 11
      src/checker.cpp

+ 13 - 11
src/checker.cpp

@@ -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;
-	while (dot --> 0) {
-		u8 c = filename[dot];
-		if (c == '.') {
-			break;
+	if (strip_extension) {
+		dot = filename.len;
+		while (dot --> 0) {
+			u8 c = filename[dot];
+			if (c == '.') {
+				break;
+			}
 		}
 		}
-	}
 
 
-	if (dot > 0) {
-		filename = substring(filename, 0, dot);
+		if (dot > 0) {
+			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 = id->import_name.string;
+	String import_name = path_to_entity_name(id->import_name.string, id->fullpath, false);
+	// 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;
 	}
 	}