mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 23:58:50 +00:00
Add -strict-style-init-only
This commit is contained in:
@@ -206,7 +206,7 @@ struct BuildContext {
|
|||||||
bool disallow_do;
|
bool disallow_do;
|
||||||
|
|
||||||
bool strict_style;
|
bool strict_style;
|
||||||
|
bool strict_style_init_only;
|
||||||
|
|
||||||
bool ignore_warnings;
|
bool ignore_warnings;
|
||||||
bool warnings_as_errors;
|
bool warnings_as_errors;
|
||||||
|
|||||||
@@ -635,6 +635,7 @@ enum BuildFlagKind {
|
|||||||
BuildFlag_DefaultToNilAllocator,
|
BuildFlag_DefaultToNilAllocator,
|
||||||
BuildFlag_InsertSemicolon,
|
BuildFlag_InsertSemicolon,
|
||||||
BuildFlag_StrictStyle,
|
BuildFlag_StrictStyle,
|
||||||
|
BuildFlag_StrictStyleInitOnly,
|
||||||
|
|
||||||
BuildFlag_Compact,
|
BuildFlag_Compact,
|
||||||
BuildFlag_GlobalDefinitions,
|
BuildFlag_GlobalDefinitions,
|
||||||
@@ -762,6 +763,7 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
add_flag(&build_flags, BuildFlag_DefaultToNilAllocator, str_lit("default-to-nil-allocator"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_DefaultToNilAllocator, str_lit("default-to-nil-allocator"), BuildFlagParam_None, Command__does_check);
|
||||||
add_flag(&build_flags, BuildFlag_InsertSemicolon, str_lit("insert-semicolon"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_InsertSemicolon, str_lit("insert-semicolon"), BuildFlagParam_None, Command__does_check);
|
||||||
add_flag(&build_flags, BuildFlag_StrictStyle, str_lit("strict-style"), BuildFlagParam_None, Command__does_check);
|
add_flag(&build_flags, BuildFlag_StrictStyle, str_lit("strict-style"), BuildFlagParam_None, Command__does_check);
|
||||||
|
add_flag(&build_flags, BuildFlag_StrictStyleInitOnly, str_lit("strict-style-init-only"), BuildFlagParam_None, Command__does_check);
|
||||||
add_flag(&build_flags, BuildFlag_Compact, str_lit("compact"), BuildFlagParam_None, Command_query);
|
add_flag(&build_flags, BuildFlag_Compact, str_lit("compact"), BuildFlagParam_None, Command_query);
|
||||||
add_flag(&build_flags, BuildFlag_GlobalDefinitions, str_lit("global-definitions"), BuildFlagParam_None, Command_query);
|
add_flag(&build_flags, BuildFlag_GlobalDefinitions, str_lit("global-definitions"), BuildFlagParam_None, Command_query);
|
||||||
add_flag(&build_flags, BuildFlag_GoToDefinitions, str_lit("go-to-definitions"), BuildFlagParam_None, Command_query);
|
add_flag(&build_flags, BuildFlag_GoToDefinitions, str_lit("go-to-definitions"), BuildFlagParam_None, Command_query);
|
||||||
@@ -1312,8 +1314,17 @@ bool parse_build_flags(Array<String> args) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case BuildFlag_StrictStyle:
|
case BuildFlag_StrictStyle:
|
||||||
|
if (build_context.strict_style_init_only) {
|
||||||
|
gb_printf_err("-strict-style and -strict-style-init-only cannot be used together\n");
|
||||||
|
}
|
||||||
build_context.strict_style = true;
|
build_context.strict_style = true;
|
||||||
break;
|
break;
|
||||||
|
case BuildFlag_StrictStyleInitOnly:
|
||||||
|
if (build_context.strict_style) {
|
||||||
|
gb_printf_err("-strict-style and -strict-style-init-only cannot be used together\n");
|
||||||
|
}
|
||||||
|
build_context.strict_style_init_only = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
case BuildFlag_Compact:
|
case BuildFlag_Compact:
|
||||||
@@ -1874,6 +1885,10 @@ void print_show_help(String const arg0, String const &command) {
|
|||||||
print_usage_line(2, "Errs on unneeded tokens, such as unneeded semicolons");
|
print_usage_line(2, "Errs on unneeded tokens, such as unneeded semicolons");
|
||||||
print_usage_line(0, "");
|
print_usage_line(0, "");
|
||||||
|
|
||||||
|
print_usage_line(1, "-strict-style-init-only");
|
||||||
|
print_usage_line(2, "Errs on unneeded tokens, such as unneeded semicolons, only on the initial project");
|
||||||
|
print_usage_line(0, "");
|
||||||
|
|
||||||
print_usage_line(1, "-ignore-warnings");
|
print_usage_line(1, "-ignore-warnings");
|
||||||
print_usage_line(2, "Ignores warning messages");
|
print_usage_line(2, "Ignores warning messages");
|
||||||
print_usage_line(0, "");
|
print_usage_line(0, "");
|
||||||
|
|||||||
@@ -1516,6 +1516,8 @@ void assign_removal_flag_to_semicolon(AstFile *f) {
|
|||||||
if (ok) {
|
if (ok) {
|
||||||
if (build_context.strict_style) {
|
if (build_context.strict_style) {
|
||||||
syntax_error(*prev_token, "Found unneeded semicolon");
|
syntax_error(*prev_token, "Found unneeded semicolon");
|
||||||
|
} else if (build_context.strict_style_init_only && f->pkg->kind == Package_Init) {
|
||||||
|
syntax_error(*prev_token, "Found unneeded semicolon");
|
||||||
}
|
}
|
||||||
prev_token->flags |= TokenFlag_Remove;
|
prev_token->flags |= TokenFlag_Remove;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user