mirror of
https://github.com/Ed94/Odin.git
synced 2026-06-13 01:21:38 -07:00
With -vet-style, give suggestion of separating where clauses with a comma rather than '&&'
This improves the error messages
This commit is contained in:
@@ -6193,6 +6193,20 @@ gb_internal bool evaluate_where_clauses(CheckerContext *ctx, Ast *call_expr, Sco
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if (ast_file_vet_style(ctx->file)) {
|
||||
Ast *c = unparen_expr(clause);
|
||||
if (c->kind == Ast_BinaryExpr && c->BinaryExpr.op.kind == Token_CmpAnd) {
|
||||
ERROR_BLOCK();
|
||||
error(c, "Prefer to separate 'where' clauses with a comma rather than '&&'");
|
||||
gbString x = expr_to_string(c->BinaryExpr.left);
|
||||
gbString y = expr_to_string(c->BinaryExpr.right);
|
||||
error_line("\tSuggestion: '%s, %s'", x, y);
|
||||
gb_string_free(y);
|
||||
gb_string_free(x);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1166,7 +1166,7 @@ gb_internal void check_bit_field_type(CheckerContext *ctx, Type *bit_field_type,
|
||||
}
|
||||
}
|
||||
if (all_ones && all_booleans) {
|
||||
if (build_context.vet_flags & VetFlag_Style) {
|
||||
if (ast_file_vet_style(ctx->file)) {
|
||||
char const *msg = "This 'bit_field' is better expressed as a 'bit_set' since all of the fields are booleans, of 1-bit in size, and the backing type is an integer (-vet-style)";
|
||||
error(node, msg);
|
||||
} else {
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
#include "parser_pos.cpp"
|
||||
|
||||
gb_internal u64 ast_file_vet_flags(AstFile *f) {
|
||||
if (f->vet_flags_set) {
|
||||
if (f != nullptr && f->vet_flags_set) {
|
||||
return f->vet_flags;
|
||||
}
|
||||
return build_context.vet_flags;
|
||||
|
||||
Reference in New Issue
Block a user