mirror of
https://github.com/zeek/zeek.git
synced 2025-10-10 18:48:20 +00:00
Fix various bugs with table/set attributes.
- Identifiers that are initialized with set()/table() constructor expressions now inherit attributes from the expression. Before, statements like const i: set[string] = set() &redef; associated the attribute with the set() constructor, but not the "i" identifier, preventing redefinition. Addresses #866. - Allow &default attribute to apply to tables initialized as empty (via either "{ }" or "table()") or if the expression supplied to it can evaluate to a type that's promotable to the same yield type as the table.
This commit is contained in:
parent
00f7bbda96
commit
f7e07f5f09
6 changed files with 249 additions and 1 deletions
|
@ -747,6 +747,8 @@ public:
|
|||
TableConstructorExpr(ListExpr* constructor_list, attr_list* attrs);
|
||||
~TableConstructorExpr() { Unref(attrs); }
|
||||
|
||||
Attributes* Attrs() { return attrs; }
|
||||
|
||||
Val* Eval(Frame* f) const;
|
||||
|
||||
protected:
|
||||
|
@ -767,6 +769,8 @@ public:
|
|||
SetConstructorExpr(ListExpr* constructor_list, attr_list* attrs);
|
||||
~SetConstructorExpr() { Unref(attrs); }
|
||||
|
||||
Attributes* Attrs() { return attrs; }
|
||||
|
||||
Val* Eval(Frame* f) const;
|
||||
|
||||
protected:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue