aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaytan <laytanlaats@hotmail.com>2024-08-31 02:44:16 +0200
committerGitHub <noreply@github.com>2024-08-31 02:44:16 +0200
commit584e8859bfa33f0a617692d7b58b1a0fd234245d (patch)
tree20ea902a9fa4f02240b621ba101107b3566d5e00
parentbfedcd70355c4571f881450419022d85032f5fda (diff)
parent8e855155fdf4fa7901f59098e8c32719e99c1b63 (diff)
Merge pull request #4168 from laytan/fix-bad-import-name-errors
fix some issues with the "bad import name" errors
-rw-r--r--src/checker.cpp12
-rw-r--r--tests/vendor/all.odin4
2 files changed, 11 insertions, 5 deletions
diff --git a/src/checker.cpp b/src/checker.cpp
index fa04911ac..543763fc3 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -4946,12 +4946,18 @@ gb_internal void check_add_import_decl(CheckerContext *ctx, Ast *decl) {
}
- if (import_name.len == 0) {
+ if (is_blank_ident(import_name) && !is_blank_ident(id->import_name.string)) {
String invalid_name = id->fullpath;
invalid_name = get_invalid_import_name(invalid_name);
- error(id->token, "Import name %.*s, is not a valid identifier. Perhaps you want to reference the package by a different name like this: import <new_name> \"%.*s\" ", LIT(invalid_name), LIT(invalid_name));
- error(token, "Import name, %.*s, cannot be use as an import name as it is not a valid identifier", LIT(id->import_name.string));
+ ERROR_BLOCK();
+
+ if (id->import_name.string.len > 0) {
+ error(token, "Import name, '%.*s' cannot be use as an import name as it is not a valid identifier", LIT(id->import_name.string));
+ } else {
+ error(id->token, "Import name '%.*s' is not a valid identifier", LIT(invalid_name));
+ error_line("\tSuggestion: Rename the directory or explicitly set an import name like this 'import <new_name> %.*s'", LIT(id->relpath.string));
+ }
} else {
GB_ASSERT(id->import_name.pos.line != 0);
id->import_name.string = import_name;
diff --git a/tests/vendor/all.odin b/tests/vendor/all.odin
index 1abbc5d7f..ba5628252 100644
--- a/tests/vendor/all.odin
+++ b/tests/vendor/all.odin
@@ -1,4 +1,4 @@
package tests_vendor
-@(require) import "glfw"
-@(require) import "lua/5.4" \ No newline at end of file
+@(require) import "glfw"
+@(require) import _ "lua/5.4"