Deprecate TableVal::Attrs(), replace with GetAttrs()

This commit is contained in:
Jon Siwek 2020-05-20 20:35:08 -07:00
parent dc03f0bb83
commit ad224419ad
3 changed files with 7 additions and 3 deletions

View file

@ -3757,8 +3757,7 @@ IntrusivePtr<Val> TableCoerceExpr::Fold(Val* v) const
if ( tv->Size() > 0 )
RuntimeErrorWithCallStack("coercion of non-empty table/set");
return make_intrusive<TableVal>(GetType<TableType>(),
IntrusivePtr{NewRef{}, tv->Attrs()});
return make_intrusive<TableVal>(GetType<TableType>(), tv->GetAttrs());
}
VectorCoerceExpr::VectorCoerceExpr(IntrusivePtr<Expr> arg_op,

View file

@ -915,8 +915,13 @@ public:
void SetAttrs(IntrusivePtr<Attributes> attrs);
Attr* FindAttr(attr_tag t) const;
[[deprecated("Remove in v4.1. Use GetAttrs().")]]
Attributes* Attrs() { return attrs.get(); }
const IntrusivePtr<Attributes>& GetAttrs() const
{ return attrs; }
// Returns the size of the table.
int Size() const;
int RecursiveSize() const;

View file

@ -104,7 +104,7 @@ function Option::set%(ID: string, val: any, location: string &default=""%): bool
// Just coerce an empty/unspecified table to the right type.
auto tv = make_intrusive<TableVal>(
cast_intrusive<TableType>(i->GetType()),
IntrusivePtr{NewRef{}, i->GetVal()->AsTableVal()->Attrs()});
i->GetVal()->AsTableVal()->GetAttrs());
auto rval = call_option_handlers_and_set_value(ID, i, std::move(tv), location);
return val_mgr->Bool(rval);
}