From 514df9f1794fad974eebf7ec8137d06af4cf01f2 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Mon, 8 Aug 2022 15:30:34 -0700 Subject: [PATCH] Fix module-scoped type definitions that conflict with existing global ones --- src/parse.y | 2 +- .../Baseline/language.global-type-clash/out | 3 +++ testing/btest/language/global-type-clash.zeek | 20 +++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 testing/btest/Baseline/language.global-type-clash/out create mode 100644 testing/btest/language/global-type-clash.zeek diff --git a/src/parse.y b/src/parse.y index 6a43ba9cf9..2bbb7f4e9c 100644 --- a/src/parse.y +++ b/src/parse.y @@ -1323,7 +1323,7 @@ decl: std::unique_ptr>($11)); } - | TOK_TYPE global_id ':' + | TOK_TYPE def_global_id ':' { cur_decl_type_id = $2; zeekygen_mgr->StartType({NewRef{}, $2}); } type opt_attr ';' { diff --git a/testing/btest/Baseline/language.global-type-clash/out b/testing/btest/Baseline/language.global-type-clash/out new file mode 100644 index 0000000000..5e8b37e330 --- /dev/null +++ b/testing/btest/Baseline/language.global-type-clash/out @@ -0,0 +1,3 @@ +### BTest baseline data generated by btest-diff. Do not edit. Use "btest -U/-u" to update. Requires BTest >= 0.63. +[a=5] +[b=6] diff --git a/testing/btest/language/global-type-clash.zeek b/testing/btest/language/global-type-clash.zeek new file mode 100644 index 0000000000..9eac7fb53a --- /dev/null +++ b/testing/btest/language/global-type-clash.zeek @@ -0,0 +1,20 @@ +# @TEST-EXEC: zeek -b %INPUT > out +# @TEST-EXEC: btest-diff out + +type r: record { a: count; }; + +module test; + +type r: record { b: count; }; + +event zeek_init() + { + local x: GLOBAL::r; + x$a = 5; + + local y: test::r; + y$b = 6; + + print(x); + print(y); + }