mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00

The added test cases around function/event invocations report the following flurry of errors when only the first one is relevant and actionable. There's little use in reporting a mismatch with "error". Squelch them. error in <...>/function-invoke-mismatch-error.zeek, line 8: identifier not defined: MyEnumTypo error in <...>/function-invoke-mismatch-error.zeek, line 12 and error: type mismatch (M::MY_ENUM_A and error) error in <...>/function-invoke-mismatch-error.zeek, line 12: argument type mismatch in function call (M::to_string(M::MY_ENUM_A)) error in <...>/function-invoke-mismatch-error.zeek, line 16 and error: type mismatch (M::MY_ENUM_B and error) error in <...>/function-invoke-mismatch-error.zeek, line 16: argument type mismatch in function call (M::to_string(M::MY_ENUM_B)) error in <...>/function-invoke-mismatch-error.zeek, line 20 and error: type mismatch (M::e and error) error in <...>/function-invoke-mismatch-error.zeek, line 20: argument type mismatch in function call (M::to_string(M::e)) Record coercion also reports noisy errors when coercing to a type that has errors for individual fields, type clashing with "error": $ zeek language/record-field-error.zeek error in ./language/record-coerce-error.zeek, line 8: identifier not defined: MyEnumTypo error in ./language/record-coerce-error.zeek, line 19 and ./language/record-coerce-error.zeek, line 5: type clash for field "e" ((coerce [$e=MY_ENUM_B, $s=test] to MyRecord) and MyEnum)
21 lines
500 B
Text
21 lines
500 B
Text
# @TEST-DOC: Error in function declaration should not report argument mismatches at call site
|
|
# @TEST-EXEC-FAIL: zeek -b %INPUT > out 2>&1
|
|
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
|
|
module M;
|
|
|
|
export {
|
|
type MyEnum: enum { MY_ENUM_A, MY_ENUM_B };
|
|
global to_string: function(e: MyEnumTypo): string;
|
|
}
|
|
|
|
event zeek_init() {
|
|
M::to_string(MY_ENUM_A);
|
|
}
|
|
|
|
event zeek_done() {
|
|
M::to_string(MY_ENUM_B);
|
|
}
|
|
|
|
function helper(e: MyEnum): string {
|
|
return M::to_string(e);
|
|
}
|