Correct false positive check in check_unique_package_names

This commit is contained in:
gingerBill
2022-01-31 19:33:02 +00:00
parent 2f1aeaf757
commit 67ba05cb7c
3 changed files with 19 additions and 2 deletions

View File

@@ -5307,12 +5307,18 @@ void check_unique_package_names(Checker *c) {
string_map_set(&pkgs, key, pkg);
continue;
}
auto *this = pkg->files[0]->pkg_decl;
auto *other = (*found)->files[0]->pkg_decl;
if (this == other) {
// NOTE(bill): A false positive was found, ignore it
continue;
}
error(pkg->files[0]->pkg_decl, "Duplicate declaration of 'package %.*s'", LIT(name));
error(this, "Duplicate declaration of 'package %.*s'", LIT(name));
error_line("\tA package name must be unique\n"
"\tThere is no relation between a package name and the directory that contains it, so they can be completely different\n"
"\tA package name is required for link name prefixing to have a consistent ABI\n");
error((*found)->files[0]->pkg_decl, "found at previous location");
error(other, "found at previous location");
}
}