Add -vet-when-shadowing; Resolve global whens and foreign blocks on demand via name placeholders

This commit is contained in:
gingerBill committed 2026-10-01 16:28:12 +01:00
1 parent 5f6e95a620
commit 2b90b616e1
8 files changed
+529 -261

No files matched your search

+8
View File
@@ -460,6 +460,7 @@ enum BuildFlagKind {
BuildFlag_VetSemicolon,
BuildFlag_VetCast,
BuildFlag_VetTabs,
BuildFlag_VetWhenShadowing,
BuildFlag_VetPackages,
BuildFlag_CustomAttribute,
@@ -725,6 +726,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
add_flag(&build_flags, BuildFlag_VetSemicolon, str_lit("vet-semicolon"), BuildFlagParam_None, Command__does_check);
add_flag(&build_flags, BuildFlag_VetCast, str_lit("vet-cast"), BuildFlagParam_None, Command__does_check);
add_flag(&build_flags, BuildFlag_VetTabs, str_lit("vet-tabs"), BuildFlagParam_None, Command__does_check);
add_flag(&build_flags, BuildFlag_VetWhenShadowing, str_lit("vet-when-shadowing"), BuildFlagParam_None, Command__does_check);
add_flag(&build_flags, BuildFlag_VetPackages, str_lit("vet-packages"), BuildFlagParam_String, Command__does_check);
add_flag(&build_flags, BuildFlag_CustomAttribute, str_lit("custom-attribute"), BuildFlagParam_String, Command__does_check, true);
@@ -1493,6 +1495,7 @@ gb_internal bool parse_build_flags(Array<String> args) {
case BuildFlag_VetSemicolon: build_context.vet_flags |= VetFlag_Semicolon; break;
case BuildFlag_VetCast: build_context.vet_flags |= VetFlag_Cast; break;
case BuildFlag_VetTabs: build_context.vet_flags |= VetFlag_Tabs; break;
case BuildFlag_VetWhenShadowing: build_context.vet_flags |= VetFlag_WhenShadowing; break;
case BuildFlag_VetUnusedProcedures: build_context.vet_flags |= VetFlag_UnusedProcedures; break;
case BuildFlag_VetPackages:
@@ -3408,6 +3411,7 @@ gb_internal int print_show_help(String const arg0, String command, String option
print_usage_line(3, "-vet-unused-imports");
print_usage_line(3, "-vet-shadowing");
print_usage_line(3, "-vet-using-stmt");
print_usage_line(3, "-vet-when-shadowing");
}
if (print_flag("-vet-cast")) {
@@ -3467,6 +3471,10 @@ gb_internal int print_show_help(String const arg0, String command, String option
print_usage_line(2, "Checks for the use of 'using' as a statement.");
print_usage_line(2, "'using' is considered bad practice outside of immediate refactoring.");
}
if (print_flag("-vet-when-shadowing")) {
print_usage_line(2, "Checks for declarations within a global 'when' that shadow a builtin or package-level name.");
}
}
if (check) {