mirror of
https://github.com/zeek/zeek.git
synced 2025-10-17 14:08:20 +00:00
Detect functions that try to bind variables from an outer scope.
And raise an error saying that's not supported. Addresses BIT-1233.
This commit is contained in:
parent
f8895843cf
commit
3521a92a00
4 changed files with 76 additions and 2 deletions
3
testing/btest/Baseline/language.outer_param_binding/out
Normal file
3
testing/btest/Baseline/language.outer_param_binding/out
Normal file
|
@ -0,0 +1,3 @@
|
|||
error in /Users/jsiwek/Projects/bro/bro/testing/btest/.tmp/language.outer_param_binding/outer_param_binding.bro, line 16: referencing outer function parameters not supported (c)
|
||||
error in /Users/jsiwek/Projects/bro/bro/testing/btest/.tmp/language.outer_param_binding/outer_param_binding.bro, line 16: referencing outer function parameters not supported (d)
|
||||
error in /Users/jsiwek/Projects/bro/bro/testing/btest/.tmp/language.outer_param_binding/outer_param_binding.bro, line 17: referencing outer function parameters not supported (b)
|
27
testing/btest/language/outer_param_binding.bro
Normal file
27
testing/btest/language/outer_param_binding.bro
Normal file
|
@ -0,0 +1,27 @@
|
|||
# @TEST-EXEC-FAIL: bro -b %INPUT >out 2>&1
|
||||
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
|
||||
|
||||
type Foo: record {
|
||||
x: function(a: string) : string;
|
||||
};
|
||||
|
||||
function bar(b: string, c: string)
|
||||
{
|
||||
local f: Foo;
|
||||
local d = 8;
|
||||
f = [$x=function(a: string) : string
|
||||
{
|
||||
local x = 0;
|
||||
print x;
|
||||
print c, d;
|
||||
return cat(a, " ", b);
|
||||
}
|
||||
];
|
||||
|
||||
print f$x("2");
|
||||
}
|
||||
|
||||
event bro_init()
|
||||
{
|
||||
bar("1", "20");
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue