# @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: btest-diff-remove-abspath .stderr

module MyModule;

## Lambda on table.
const ids1: table[count] of string = {
        [1] = "One",
} &default=function(c: count): string {
	return fmt("unknown-%d", c);
};


## External default function
function default_id(c: count): string {
	return fmt("unknown-%d", c);
}

const ids2: table[count] of string = {
        [1] = "One",
} &default=default_id;


## &default expression using function
function default_id2(): string {
	return "";
}

const ids3: table[count] of string = {
        [1] = "One",
} &default=default_id2() + "";


## &expire_func lambda using another function
function expire_f(t: table[count] of string, c: count): interval {
	return 0.0sec;
}

const ids4: table[count] of string = {
        [1] = "One",
} &expire_func=function(t: table[count] of string, c: count): interval {
	return expire_f(t, c);
};
