2
0
Эх сурвалжийг харах

Improve error message for multi-valued global declarations not be allowed

gingerBill 5 жил өмнө
parent
commit
1fd1203d8b

+ 2 - 6
src/checker.cpp

@@ -2860,12 +2860,8 @@ bool check_arity_match(CheckerContext *c, AstValueDecl *vd, bool is_global) {
 			return false;
 			return false;
 		} else if (is_global) {
 		} else if (is_global) {
 			Ast *n = vd->values[rhs-1];
 			Ast *n = vd->values[rhs-1];
-			isize total = get_total_value_count(vd->values);
-			if (total > rhs) {
-				error(n, "Global declarations do not allow for multi-valued expressions. Expected %td expressions on the right hand side, got %td", lhs, rhs);
-			} else {
-				error(n, "Expected %td expressions on the right hand side, got %td", lhs, rhs);
-			}
+			error(n, "Expected %td expressions on the right hand side, got %td", lhs, rhs);
+			error_line("Note: Global declarations do not allow for multi-valued expressions");
 			return false;
 			return false;
 		}
 		}
 	}
 	}

+ 6 - 1
src/parser.cpp

@@ -2835,7 +2835,12 @@ Ast *parse_value_decl(AstFile *f, Array<Ast *> names, CommentGroup *docs) {
 
 
 	if (f->curr_proc == nullptr) {
 	if (f->curr_proc == nullptr) {
 		if (values.count > 0 && names.count != values.count) {
 		if (values.count > 0 && names.count != values.count) {
-			syntax_error(values[0], "Expected %td expressions on the right hand side, got %td", names.count, values.count);
+			syntax_error(
+				values[0],
+				"Expected %td expressions on the right hand side, got %td\n"
+				"\tNote: Global declarations do not allow for multi-valued expressions",
+				names.count, values.count
+			);
 		}
 		}
 	}
 	}