mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00

This marks every identifier used within an attribute as seeds. The scenario this avoids is functions referenced through attributes on unused tables or record types (&default, &expire_func, ...) being dinged as unused as that's rather confusing. Also adds test for the above and a light smoke test into language/ as it doesn't appear we had coverage here. Closes #3122
19 lines
645 B
Text
19 lines
645 B
Text
# @TEST-DOC: Usage analyzer marked lambdas and functions in attribute expressions of unused tables or record types as unused. That is a bit confusing. Regression test for #3122.
|
|
# @TEST-EXEC: zeek -b %INPUT
|
|
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr
|
|
|
|
module MyModule;
|
|
|
|
function gen_id(): string {
|
|
return cat(rand(10000));
|
|
}
|
|
|
|
type R1: record {
|
|
xxx_id: string &default=gen_id();
|
|
};
|
|
|
|
# Seems we can't actually put functions on &default on records, so the
|
|
# following uses a directly invoked lambda instead.
|
|
type R2: record {
|
|
xxx_id: string &default=(function(): string { return cat(rand(10000)); })();
|
|
};
|