Deprecate init_class and IDScope in another way.

This also renamed init_class to InitClass for consistency.
This commit is contained in:
Tim Wojtulewicz 2020-06-30 13:06:34 -07:00
parent 361ad8f2f7
commit 7ee8e11a8f
9 changed files with 50 additions and 68 deletions

View file

@ -120,12 +120,6 @@ ID::ID(const char* arg_name, IDScope arg_scope, bool arg_is_export)
SetLocationInfo(&start_location, &end_location); SetLocationInfo(&start_location, &end_location);
} }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
ID::ID(const char* arg_name, ::IDScope arg_scope, bool arg_is_export) :
ID(arg_name, static_cast<IDScope>(arg_scope), arg_is_export) {}
#pragma GCC diagnostic pop
ID::~ID() ID::~ID()
{ {
delete [] name; delete [] name;
@ -175,7 +169,7 @@ void ID::SetVal(IntrusivePtr<Val> v)
} }
} }
void ID::SetVal(IntrusivePtr<Val> v, init_class c) void ID::SetVal(IntrusivePtr<Val> v, InitClass c)
{ {
if ( c == INIT_NONE || c == INIT_FULL ) if ( c == INIT_NONE || c == INIT_FULL )
{ {
@ -213,7 +207,7 @@ void ID::SetVal(IntrusivePtr<Val> v, init_class c)
} }
} }
void ID::SetVal(IntrusivePtr<Expr> ev, init_class c) void ID::SetVal(IntrusivePtr<Expr> ev, InitClass c)
{ {
const auto& a = attrs->Find(c == INIT_EXTRA ? ATTR_ADD_FUNC : ATTR_DEL_FUNC); const auto& a = attrs->Find(c == INIT_EXTRA ? ATTR_ADD_FUNC : ATTR_DEL_FUNC);
@ -223,19 +217,6 @@ void ID::SetVal(IntrusivePtr<Expr> ev, init_class c)
EvalFunc(a->GetExpr(), std::move(ev)); EvalFunc(a->GetExpr(), std::move(ev));
} }
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
void ID::SetVal(IntrusivePtr<Val> v, ::init_class c)
{
SetVal(v, static_cast<init_class>(c));
}
void ID::SetVal(IntrusivePtr<Expr> ev, ::init_class c)
{
SetVal(ev, static_cast<init_class>(c));
}
#pragma GCC diagnostic pop
bool ID::IsRedefinable() const bool ID::IsRedefinable() const
{ {
return GetAttr(ATTR_REDEF) != nullptr; return GetAttr(ATTR_REDEF) != nullptr;

View file

@ -24,15 +24,12 @@ ZEEK_FORWARD_DECLARE_NAMESPACED(TableType, zeek);
ZEEK_FORWARD_DECLARE_NAMESPACED(VectorType, zeek); ZEEK_FORWARD_DECLARE_NAMESPACED(VectorType, zeek);
ZEEK_FORWARD_DECLARE_NAMESPACED(EnumType, zeek); ZEEK_FORWARD_DECLARE_NAMESPACED(EnumType, zeek);
enum [[deprecated("Remove in v4.1. Use zeek::detail::init_class instead.")]] init_class { INIT_NONE, INIT_FULL, INIT_EXTRA, INIT_REMOVE, };
enum [[deprecated("Remove in v4.1. Use zeek::detail::IDScope instead.")]] IDScope { SCOPE_FUNCTION, SCOPE_MODULE, SCOPE_GLOBAL };
namespace zeek::detail { namespace zeek::detail {
class Attributes; class Attributes;
class Expr; class Expr;
enum init_class { INIT_NONE, INIT_FULL, INIT_EXTRA, INIT_REMOVE, }; enum InitClass { INIT_NONE, INIT_FULL, INIT_EXTRA, INIT_REMOVE, };
enum IDScope { SCOPE_FUNCTION, SCOPE_MODULE, SCOPE_GLOBAL }; enum IDScope { SCOPE_FUNCTION, SCOPE_MODULE, SCOPE_GLOBAL };
class ID final : public BroObj, public notifier::Modifiable { class ID final : public BroObj, public notifier::Modifiable {
@ -41,12 +38,6 @@ public:
ID(const char* name, IDScope arg_scope, bool arg_is_export); ID(const char* name, IDScope arg_scope, bool arg_is_export);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
[[deprecated("Remove in v4.1. Use version that takes zeek::detail::IDScope")]]
ID(const char* name, ::IDScope arg_scope, bool arg_is_export);
#pragma GCC diagnostic pop
~ID() override; ~ID() override;
const char* Name() const { return name; } const char* Name() const { return name; }
@ -85,16 +76,8 @@ public:
void SetVal(IntrusivePtr<Val> v); void SetVal(IntrusivePtr<Val> v);
void SetVal(IntrusivePtr<Val> v, init_class c); void SetVal(IntrusivePtr<Val> v, InitClass c);
void SetVal(IntrusivePtr<Expr> ev, init_class c); void SetVal(IntrusivePtr<Expr> ev, InitClass c);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
[[deprecated("Remove in v4.1. Use version that takes zeek::detail::init_class")]]
void SetVal(IntrusivePtr<Val> v, ::init_class c);
[[deprecated("Remove in v4.1. Use version that takes zeek::detail::init_class")]]
void SetVal(IntrusivePtr<Expr> ev, ::init_class c);
#pragma GCC diagnostic pop
bool HasVal() const { return val != nullptr; } bool HasVal() const { return val != nullptr; }
@ -279,3 +262,21 @@ void init();
} // namespace zeek::id::detail } // namespace zeek::id::detail
} // namespace zeek::id } // namespace zeek::id
using init_class [[deprecated("Remove in v4.1. Use zeek::detail::InitClass instead.")]] = zeek::detail::InitClass;
[[deprecated("Remove in v4.1. Use zeek::detail::INIT_NONE instead.")]]
constexpr auto INIT_NONE = zeek::detail::INIT_NONE;
[[deprecated("Remove in v4.1. Use zeek::detail::INIT_FULL instead.")]]
constexpr auto INIT_FULL = zeek::detail::INIT_FULL;
[[deprecated("Remove in v4.1. Use zeek::detail::INIT_EXTRA instead.")]]
constexpr auto INIT_EXTRA = zeek::detail::INIT_EXTRA;
[[deprecated("Remove in v4.1. Use zeek::detail::INIT_REMOVE instead.")]]
constexpr auto INIT_REMOVE = zeek::detail::INIT_REMOVE;
using IDScope [[deprecated("Remove in v4.1. Use zeek::detail::IDScope instead.")]] = zeek::detail::IDScope;
[[deprecated("Remove in v4.1. Use zeek::detail::SCOPE_FUNCTION instead.")]]
constexpr auto SCOPE_FUNCTION = zeek::detail::SCOPE_FUNCTION;
[[deprecated("Remove in v4.1. Use zeek::detail::SCOPE_MODULE instead.")]]
constexpr auto SCOPE_MODULE = zeek::detail::SCOPE_MODULE;
[[deprecated("Remove in v4.1. Use zeek::detail::SCOPE_GLOBAL instead.")]]
constexpr auto SCOPE_GLOBAL = zeek::detail::SCOPE_GLOBAL;

View file

@ -111,7 +111,7 @@ static bool add_prototype(const IntrusivePtr<zeek::detail::ID>& id, zeek::Type*
} }
static void make_var(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek::Type> t, static void make_var(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c, zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr, std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt, decl_type dt,
@ -311,7 +311,7 @@ static void make_var(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek
} }
void add_global(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek::Type> t, void add_global(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c, IntrusivePtr<zeek::detail::Expr> init, zeek::detail::InitClass c, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr, std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt) decl_type dt)
{ {
@ -319,9 +319,9 @@ void add_global(const IntrusivePtr<zeek::detail::ID>& id, IntrusivePtr<zeek::Typ
} }
IntrusivePtr<zeek::detail::Stmt> add_local(IntrusivePtr<zeek::detail::ID> id, IntrusivePtr<zeek::Type> t, IntrusivePtr<zeek::detail::Stmt> add_local(IntrusivePtr<zeek::detail::ID> id, IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c, IntrusivePtr<zeek::detail::Expr> init, zeek::detail::InitClass c, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr, std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt) decl_type dt)
{ {
make_var(id, std::move(t), c, init, std::move(attr), dt, false); make_var(id, std::move(t), c, init, std::move(attr), dt, false);

View file

@ -20,14 +20,14 @@ typedef enum { VAR_REGULAR, VAR_CONST, VAR_REDEF, VAR_OPTION, } decl_type;
extern void add_global(const IntrusivePtr<zeek::detail::ID>& id, extern void add_global(const IntrusivePtr<zeek::detail::ID>& id,
IntrusivePtr<zeek::Type> t, IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c, zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr, std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt); decl_type dt);
extern IntrusivePtr<zeek::detail::Stmt> add_local(IntrusivePtr<zeek::detail::ID> id, extern IntrusivePtr<zeek::detail::Stmt> add_local(IntrusivePtr<zeek::detail::ID> id,
IntrusivePtr<zeek::Type> t, IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c, zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr, std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt); decl_type dt);

View file

@ -234,7 +234,7 @@ static bool expr_is_table_type_name(const zeek::detail::Expr* expr)
char* str; char* str;
zeek::detail::ID* id; zeek::detail::ID* id;
id_list* id_l; id_list* id_l;
zeek::detail::init_class ic; zeek::detail::InitClass ic;
Val* val; Val* val;
RE_Matcher* re; RE_Matcher* re;
zeek::detail::Expr* expr; zeek::detail::Expr* expr;

View file

@ -31,7 +31,7 @@ IdentifierInfo::~IdentifierInfo()
delete it->second; delete it->second;
} }
void IdentifierInfo::AddRedef(const string& script, zeek::detail::init_class ic, void IdentifierInfo::AddRedef(const string& script, zeek::detail::InitClass ic,
IntrusivePtr<zeek::detail::Expr> init_expr, const vector<string>& comments) IntrusivePtr<zeek::detail::Expr> init_expr, const vector<string>& comments)
{ {
Redefinition* redef = new Redefinition(script, ic, std::move(init_expr), comments); Redefinition* redef = new Redefinition(script, ic, std::move(init_expr), comments);
@ -39,8 +39,8 @@ void IdentifierInfo::AddRedef(const string& script, zeek::detail::init_class ic,
} }
void IdentifierInfo::AddRecordField(const zeek::TypeDecl* field, void IdentifierInfo::AddRecordField(const zeek::TypeDecl* field,
const string& script, const string& script,
vector<string>& comments) vector<string>& comments)
{ {
RecordField* rf = new RecordField(); RecordField* rf = new RecordField();
rf->field = new zeek::TypeDecl(*field); rf->field = new zeek::TypeDecl(*field);
@ -140,14 +140,14 @@ time_t IdentifierInfo::DoGetModificationTime() const
} }
IdentifierInfo::Redefinition::Redefinition( IdentifierInfo::Redefinition::Redefinition(
std::string arg_script, std::string arg_script,
zeek::detail::init_class arg_ic, zeek::detail::InitClass arg_ic,
IntrusivePtr<zeek::detail::Expr> arg_expr, IntrusivePtr<zeek::detail::Expr> arg_expr,
std::vector<std::string> arg_comments) std::vector<std::string> arg_comments)
: from_script(std::move(arg_script)), : from_script(std::move(arg_script)),
ic(arg_ic), ic(arg_ic),
init_expr(std::move(arg_expr)), init_expr(std::move(arg_expr)),
comments(std::move(arg_comments)) comments(std::move(arg_comments))
{ {
} }

View file

@ -70,7 +70,7 @@ public:
* @param init_expr The initialization expression used. * @param init_expr The initialization expression used.
* @param comments Comments associated with the redef statement. * @param comments Comments associated with the redef statement.
*/ */
void AddRedef(const std::string& from_script, zeek::detail::init_class ic, void AddRedef(const std::string& from_script, zeek::detail::InitClass ic,
IntrusivePtr<zeek::detail::Expr> init_expr, IntrusivePtr<zeek::detail::Expr> init_expr,
const std::vector<std::string>& comments); const std::vector<std::string>& comments);
@ -127,11 +127,11 @@ public:
*/ */
struct Redefinition { struct Redefinition {
std::string from_script; /**< Name of script doing the redef. */ std::string from_script; /**< Name of script doing the redef. */
zeek::detail::init_class ic; zeek::detail::InitClass ic;
IntrusivePtr<zeek::detail::Expr> init_expr; IntrusivePtr<zeek::detail::Expr> init_expr;
std::vector<std::string> comments; /**< Zeekygen comments on redef. */ std::vector<std::string> comments; /**< Zeekygen comments on redef. */
Redefinition(std::string arg_script, zeek::detail::init_class arg_ic, Redefinition(std::string arg_script, zeek::detail::InitClass arg_ic,
IntrusivePtr<zeek::detail::Expr> arg_expr, IntrusivePtr<zeek::detail::Expr> arg_expr,
std::vector<std::string> arg_comments); std::vector<std::string> arg_comments);

View file

@ -338,7 +338,7 @@ void Manager::Identifier(IntrusivePtr<zeek::detail::ID> id)
} }
void Manager::RecordField(const zeek::detail::ID* id, const zeek::TypeDecl* field, void Manager::RecordField(const zeek::detail::ID* id, const zeek::TypeDecl* field,
const string& path) const string& path)
{ {
if ( disabled ) if ( disabled )
return; return;
@ -361,7 +361,7 @@ void Manager::RecordField(const zeek::detail::ID* id, const zeek::TypeDecl* fiel
} }
void Manager::Redef(const zeek::detail::ID* id, const string& path, void Manager::Redef(const zeek::detail::ID* id, const string& path,
zeek::detail::init_class ic, IntrusivePtr<zeek::detail::Expr> init_expr) zeek::detail::InitClass ic, IntrusivePtr<zeek::detail::Expr> init_expr)
{ {
if ( disabled ) if ( disabled )
return; return;
@ -398,7 +398,7 @@ void Manager::Redef(const zeek::detail::ID* id, const string& path,
} }
void Manager::Redef(const zeek::detail::ID* id, const std::string& path, void Manager::Redef(const zeek::detail::ID* id, const std::string& path,
zeek::detail::init_class ic) zeek::detail::InitClass ic)
{ {
Redef(id, path, ic, nullptr); Redef(id, path, ic, nullptr);
} }

View file

@ -140,9 +140,9 @@ public:
* @param init_expr The intiialization expression that was used. * @param init_expr The intiialization expression that was used.
*/ */
void Redef(const zeek::detail::ID* id, const std::string& path, void Redef(const zeek::detail::ID* id, const std::string& path,
zeek::detail::init_class ic, IntrusivePtr<zeek::detail::Expr> init_expr); zeek::detail::InitClass ic, IntrusivePtr<zeek::detail::Expr> init_expr);
void Redef(const zeek::detail::ID* id, const std::string& path, void Redef(const zeek::detail::ID* id, const std::string& path,
zeek::detail::init_class ic = zeek::detail::INIT_NONE); zeek::detail::InitClass ic = zeek::detail::INIT_NONE);
/** /**
* Register Zeekygen script summary content. * Register Zeekygen script summary content.