mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 14:48:21 +00:00
Return an error if GLOBAL:: prefix is used
This commit is contained in:
parent
ca69d9fb8f
commit
2d68b1d834
8 changed files with 7 additions and 87 deletions
|
@ -93,11 +93,9 @@ const IDPtr& lookup_ID(const char* name, const char* curr_module, bool no_global
|
||||||
bool check_export) {
|
bool check_export) {
|
||||||
bool explicit_global = zeek::util::starts_with(name, "::");
|
bool explicit_global = zeek::util::starts_with(name, "::");
|
||||||
|
|
||||||
// Ad-hoc deprecation if a name starts with "GLOBAL::". In v7.1 we could
|
static std::string global_prefix = util::fmt("%s::", GLOBAL_MODULE_NAME);
|
||||||
// tweak {ID} to reject GLOBAL::, or switch this warning to error instead.
|
if ( zeek::util::starts_with(name, global_prefix) )
|
||||||
static std::string deprecated_prefix = util::fmt("%s::", GLOBAL_MODULE_NAME);
|
reporter->Error("Using GLOBAL:: as a prefix is invalid. Use :: instead (%s)", name);
|
||||||
if ( zeek::util::starts_with(name, deprecated_prefix) )
|
|
||||||
reporter->Deprecation(util::fmt("Remove in v7.1: Use :: instead of %s (%s)", deprecated_prefix.c_str(), name));
|
|
||||||
|
|
||||||
std::string fullname = make_full_var_name(curr_module, name);
|
std::string fullname = make_full_var_name(curr_module, name);
|
||||||
std::string ID_module = extract_module_name(fullname.c_str());
|
std::string ID_module = extract_module_name(fullname.c_str());
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
|
||||||
warning in <...>/deprecate-global.zeek, line 22: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::test_function)
|
|
||||||
warning in <...>/deprecate-global.zeek, line 26: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::X)
|
|
|
@ -1,4 +0,0 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
|
||||||
X, shadows ::X (42)
|
|
||||||
::X, 42
|
|
||||||
GLOBAL::X, 42
|
|
|
@ -1,9 +1 @@
|
||||||
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63.
|
||||||
warning in <...>/global-colon-colon.zeek, line 67: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::X)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 75: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::my_hook)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 82: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::func)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 89: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::funcX)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 110: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::X)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 118: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::my_hook)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 125: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::func)
|
|
||||||
warning in <...>/global-colon-colon.zeek, line 132: Remove in v7.1: Use :: instead of GLOBAL:: (GLOBAL::funcX)
|
|
||||||
|
|
|
@ -3,8 +3,6 @@
|
||||||
MyModule X
|
MyModule X
|
||||||
(MyModule) print MyModule::X
|
(MyModule) print MyModule::X
|
||||||
MyModule X
|
MyModule X
|
||||||
(MyModule) print GLOBAL::X
|
|
||||||
global X
|
|
||||||
(MyModule) print ::X
|
(MyModule) print ::X
|
||||||
global X
|
global X
|
||||||
(MyModule) hook my_hook()
|
(MyModule) hook my_hook()
|
||||||
|
@ -13,32 +11,22 @@
|
||||||
(MyModule) hook MyModule::my_hook()
|
(MyModule) hook MyModule::my_hook()
|
||||||
MyModule::my_hook() (in GLOBAL)
|
MyModule::my_hook() (in GLOBAL)
|
||||||
MyModule::my_hook()
|
MyModule::my_hook()
|
||||||
(MyModule) hook GLOBAL::my_hook()
|
|
||||||
my_hook() (in GLOBAL)
|
|
||||||
::my_hook() (in GLOBAL)
|
|
||||||
::my_hook() (in MyModule using ::)
|
|
||||||
(MyModule) hook ::my_hook()
|
(MyModule) hook ::my_hook()
|
||||||
my_hook() (in GLOBAL)
|
my_hook() (in GLOBAL)
|
||||||
::my_hook() (in GLOBAL)
|
::my_hook() (in GLOBAL)
|
||||||
::my_hook() (in MyModule using ::)
|
::my_hook() (in MyModule using ::)
|
||||||
(MyModule) call func()
|
(MyModule) call func()
|
||||||
MyModule::func()
|
MyModule::func()
|
||||||
(MyModule) call GLOBAL::func()
|
|
||||||
GLOBAL::func()
|
|
||||||
(MyModule) call ::func()
|
(MyModule) call ::func()
|
||||||
GLOBAL::func()
|
GLOBAL::func()
|
||||||
(MyModule) call funcX()
|
(MyModule) call funcX()
|
||||||
::funcX() (in MyModule)
|
::funcX() (in MyModule)
|
||||||
(MyModule) call GLOBAL::funcX()
|
|
||||||
::funcX() (in MyModule)
|
|
||||||
(MyModule) call ::funcX()
|
(MyModule) call ::funcX()
|
||||||
::funcX() (in MyModule)
|
::funcX() (in MyModule)
|
||||||
(G) print X
|
(G) print X
|
||||||
global X
|
global X
|
||||||
(G) print MyModule::X
|
(G) print MyModule::X
|
||||||
MyModule X
|
MyModule X
|
||||||
(G) print GLOBAL::X
|
|
||||||
global X
|
|
||||||
(G) print ::X
|
(G) print ::X
|
||||||
global X
|
global X
|
||||||
(G) hook my_hook()
|
(G) hook my_hook()
|
||||||
|
@ -48,24 +36,16 @@
|
||||||
(G) MyModule::my_hook()
|
(G) MyModule::my_hook()
|
||||||
MyModule::my_hook() (in GLOBAL)
|
MyModule::my_hook() (in GLOBAL)
|
||||||
MyModule::my_hook()
|
MyModule::my_hook()
|
||||||
(G) hook GLOBAL::my_hook()
|
|
||||||
my_hook() (in GLOBAL)
|
|
||||||
::my_hook() (in GLOBAL)
|
|
||||||
::my_hook() (in MyModule using ::)
|
|
||||||
(G) hook ::my_hook()
|
(G) hook ::my_hook()
|
||||||
my_hook() (in GLOBAL)
|
my_hook() (in GLOBAL)
|
||||||
::my_hook() (in GLOBAL)
|
::my_hook() (in GLOBAL)
|
||||||
::my_hook() (in MyModule using ::)
|
::my_hook() (in MyModule using ::)
|
||||||
(G) call func()
|
(G) call func()
|
||||||
GLOBAL::func()
|
GLOBAL::func()
|
||||||
(G) call GLOBAL::func()
|
|
||||||
GLOBAL::func()
|
|
||||||
(G) call ::func()
|
(G) call ::func()
|
||||||
GLOBAL::func()
|
GLOBAL::func()
|
||||||
(G) call funcX()
|
(G) call funcX()
|
||||||
::funcX() (in MyModule)
|
::funcX() (in MyModule)
|
||||||
(G) call GLOBAL::funcX()
|
|
||||||
::funcX() (in MyModule)
|
|
||||||
(G) call ::funcX()
|
(G) call ::funcX()
|
||||||
::funcX() (in MyModule)
|
::funcX() (in MyModule)
|
||||||
MyModule::my_event() (in MyModule)
|
MyModule::my_event() (in MyModule)
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
# @TEST-DOC: Adapt in v7.1 to check for errors upon GLOBAL accesses.
|
|
||||||
|
|
||||||
# @TEST-EXEC: zeek -b %INPUT >out
|
|
||||||
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff out
|
|
||||||
# @TEST-EXEC: TEST_DIFF_CANONIFIER=$SCRIPTS/diff-remove-abspath btest-diff .stderr
|
|
||||||
|
|
||||||
module GLOBAL;
|
|
||||||
|
|
||||||
function test_function() { }
|
|
||||||
|
|
||||||
global X = 42;
|
|
||||||
|
|
||||||
|
|
||||||
module MyModule;
|
|
||||||
|
|
||||||
global X = fmt("shadows ::X (%s)", ::X);
|
|
||||||
|
|
||||||
event zeek_init()
|
|
||||||
{
|
|
||||||
test_function();
|
|
||||||
::test_function();
|
|
||||||
GLOBAL::test_function();
|
|
||||||
|
|
||||||
print "X", X;
|
|
||||||
print "::X", ::X;
|
|
||||||
print "GLOBAL::X", GLOBAL::X;
|
|
||||||
}
|
|
|
@ -30,7 +30,7 @@ hook my_hook() &priority=9
|
||||||
print " MyModule::my_hook()";
|
print " MyModule::my_hook()";
|
||||||
}
|
}
|
||||||
|
|
||||||
# This implements GLOBAL::my_hook()
|
# This implements a global my_hook()
|
||||||
hook ::my_hook() &priority=8
|
hook ::my_hook() &priority=8
|
||||||
{
|
{
|
||||||
print " ::my_hook() (in MyModule using ::)";
|
print " ::my_hook() (in MyModule using ::)";
|
||||||
|
@ -63,37 +63,29 @@ event zeek_init() &priority=5
|
||||||
print fmt(" %s", X);
|
print fmt(" %s", X);
|
||||||
print "(MyModule) print MyModule::X";
|
print "(MyModule) print MyModule::X";
|
||||||
print fmt(" %s", MyModule::X);
|
print fmt(" %s", MyModule::X);
|
||||||
print "(MyModule) print GLOBAL::X";
|
|
||||||
print fmt(" %s", GLOBAL::X);
|
|
||||||
print "(MyModule) print ::X";
|
print "(MyModule) print ::X";
|
||||||
print fmt(" %s", ::X);
|
print fmt(" %s", ::X);
|
||||||
print "(MyModule) hook my_hook()";
|
print "(MyModule) hook my_hook()";
|
||||||
hook my_hook(); # This uses MyModule::my_hook();
|
hook my_hook(); # This uses MyModule::my_hook();
|
||||||
print "(MyModule) hook MyModule::my_hook()";
|
print "(MyModule) hook MyModule::my_hook()";
|
||||||
hook MyModule::my_hook(); # This uses MyModule::hook();
|
hook MyModule::my_hook(); # This uses MyModule::hook();
|
||||||
print "(MyModule) hook GLOBAL::my_hook()";
|
|
||||||
hook GLOBAL::my_hook();
|
|
||||||
print "(MyModule) hook ::my_hook()";
|
print "(MyModule) hook ::my_hook()";
|
||||||
hook ::my_hook();
|
hook ::my_hook();
|
||||||
|
|
||||||
print "(MyModule) call func()";
|
print "(MyModule) call func()";
|
||||||
func();
|
func();
|
||||||
print "(MyModule) call GLOBAL::func()";
|
|
||||||
GLOBAL::func();
|
|
||||||
print "(MyModule) call ::func()";
|
print "(MyModule) call ::func()";
|
||||||
::func();
|
::func();
|
||||||
|
|
||||||
print "(MyModule) call funcX()";
|
print "(MyModule) call funcX()";
|
||||||
funcX();
|
funcX();
|
||||||
print "(MyModule) call GLOBAL::funcX()";
|
|
||||||
GLOBAL::funcX();
|
|
||||||
print "(MyModule) call ::funcX()";
|
print "(MyModule) call ::funcX()";
|
||||||
::funcX();
|
::funcX();
|
||||||
|
|
||||||
# This schedules MyEvent::my_event()
|
# This schedules MyEvent::my_event()
|
||||||
event my_event();
|
event my_event();
|
||||||
|
|
||||||
# This schedules the GLOBAL::my_event();
|
# This schedules the global ::my_event()
|
||||||
event ::my_event();
|
event ::my_event();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -106,30 +98,22 @@ event zeek_init() &priority=5
|
||||||
print fmt(" %s", X);
|
print fmt(" %s", X);
|
||||||
print "(G) print MyModule::X";
|
print "(G) print MyModule::X";
|
||||||
print fmt(" %s", MyModule::X);
|
print fmt(" %s", MyModule::X);
|
||||||
print "(G) print GLOBAL::X";
|
|
||||||
print fmt(" %s", GLOBAL::X);
|
|
||||||
print "(G) print ::X";
|
print "(G) print ::X";
|
||||||
print fmt(" %s", ::X);
|
print fmt(" %s", ::X);
|
||||||
print "(G) hook my_hook()";
|
print "(G) hook my_hook()";
|
||||||
hook my_hook(); # This uses GLOBAL::my_hook();
|
hook my_hook(); # This uses global my_hook();
|
||||||
print "(G) MyModule::my_hook()";
|
print "(G) MyModule::my_hook()";
|
||||||
hook MyModule::my_hook(); # This uses MyModule::hook();
|
hook MyModule::my_hook(); # This uses MyModule::hook();
|
||||||
print "(G) hook GLOBAL::my_hook()";
|
|
||||||
hook GLOBAL::my_hook();
|
|
||||||
print "(G) hook ::my_hook()";
|
print "(G) hook ::my_hook()";
|
||||||
hook ::my_hook();
|
hook ::my_hook();
|
||||||
|
|
||||||
print "(G) call func()";
|
print "(G) call func()";
|
||||||
func();
|
func();
|
||||||
print "(G) call GLOBAL::func()";
|
|
||||||
GLOBAL::func();
|
|
||||||
print "(G) call ::func()";
|
print "(G) call ::func()";
|
||||||
::func();
|
::func();
|
||||||
|
|
||||||
print "(G) call funcX()";
|
print "(G) call funcX()";
|
||||||
funcX();
|
funcX();
|
||||||
print "(G) call GLOBAL::funcX()";
|
|
||||||
GLOBAL::funcX();
|
|
||||||
print "(G) call ::funcX()";
|
print "(G) call ::funcX()";
|
||||||
::funcX();
|
::funcX();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ type r: record { b: count; };
|
||||||
|
|
||||||
event zeek_init()
|
event zeek_init()
|
||||||
{
|
{
|
||||||
local x: GLOBAL::r;
|
local x: ::r;
|
||||||
x$a = 5;
|
x$a = 5;
|
||||||
|
|
||||||
local y: test::r;
|
local y: test::r;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue