Browse Source

Add anonymous `using import` names with an underscore (#127)
`using import _ "foo.odin"`

gingerBill 7 years ago
parent
commit
71729c2855
2 changed files with 6 additions and 2 deletions
  1. 5 1
      src/checker.cpp
  2. 1 1
      src/parser.cpp

+ 5 - 1
src/checker.cpp

@@ -2525,7 +2525,11 @@ void check_add_import_decl(Checker *c, AstNodeImportDecl *id) {
 
 	String import_name = path_to_entity_name(id->import_name.string, id->fullpath);
 	if (is_blank_ident(import_name)) {
-		error(token, "File name, %.*s, cannot be use as an import name as it is not a valid identifier", LIT(id->import_name.string));
+		if (id->is_using) {
+			// TODO(bill): Should this be a warning?
+		} else {
+			error(token, "File name, %.*s, cannot be use as an import name as it is not a valid identifier", LIT(id->import_name.string));
+		}
 	} else {
 		GB_ASSERT(id->import_name.pos.line != 0);
 		id->import_name.string = import_name;

+ 1 - 1
src/parser.cpp

@@ -4349,7 +4349,7 @@ AstNode *parse_import_decl(AstFile *f, bool is_using) {
 		break;
 	}
 
-	if (is_blank_ident(import_name)) {
+	if (!is_using && is_blank_ident(import_name)) {
 		syntax_error(import_name, "Illegal import name: `_`");
 	}