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);
}
#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()
{
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 )
{
@ -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);
@ -223,19 +217,6 @@ void ID::SetVal(IntrusivePtr<Expr> ev, init_class c)
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
{
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(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 {
class Attributes;
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 };
class ID final : public BroObj, public notifier::Modifiable {
@ -41,12 +38,6 @@ public:
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;
const char* Name() const { return name; }
@ -85,16 +76,8 @@ public:
void SetVal(IntrusivePtr<Val> v);
void SetVal(IntrusivePtr<Val> v, init_class c);
void SetVal(IntrusivePtr<Expr> ev, init_class 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
void SetVal(IntrusivePtr<Val> v, InitClass c);
void SetVal(IntrusivePtr<Expr> ev, InitClass c);
bool HasVal() const { return val != nullptr; }
@ -279,3 +262,21 @@ void init();
} // namespace zeek::id::detail
} // 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,
zeek::detail::init_class c,
zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
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,
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,
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,
zeek::detail::init_class c, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt)
zeek::detail::InitClass c, IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt)
{
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,
IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c,
zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt);
extern IntrusivePtr<zeek::detail::Stmt> add_local(IntrusivePtr<zeek::detail::ID> id,
IntrusivePtr<zeek::Type> t,
zeek::detail::init_class c,
zeek::detail::InitClass c,
IntrusivePtr<zeek::detail::Expr> init,
std::unique_ptr<std::vector<IntrusivePtr<zeek::detail::Attr>>> attr,
decl_type dt);

View file

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

View file

@ -31,7 +31,7 @@ IdentifierInfo::~IdentifierInfo()
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)
{
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,
const string& script,
vector<string>& comments)
const string& script,
vector<string>& comments)
{
RecordField* rf = new RecordField();
rf->field = new zeek::TypeDecl(*field);
@ -140,14 +140,14 @@ time_t IdentifierInfo::DoGetModificationTime() const
}
IdentifierInfo::Redefinition::Redefinition(
std::string arg_script,
zeek::detail::init_class arg_ic,
IntrusivePtr<zeek::detail::Expr> arg_expr,
std::vector<std::string> arg_comments)
: from_script(std::move(arg_script)),
ic(arg_ic),
init_expr(std::move(arg_expr)),
comments(std::move(arg_comments))
std::string arg_script,
zeek::detail::InitClass arg_ic,
IntrusivePtr<zeek::detail::Expr> arg_expr,
std::vector<std::string> arg_comments)
: from_script(std::move(arg_script)),
ic(arg_ic),
init_expr(std::move(arg_expr)),
comments(std::move(arg_comments))
{
}

View file

@ -70,7 +70,7 @@ public:
* @param init_expr The initialization expression used.
* @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,
const std::vector<std::string>& comments);
@ -127,11 +127,11 @@ public:
*/
struct Redefinition {
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;
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,
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,
const string& path)
const string& path)
{
if ( disabled )
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,
zeek::detail::init_class ic, IntrusivePtr<zeek::detail::Expr> init_expr)
zeek::detail::InitClass ic, IntrusivePtr<zeek::detail::Expr> init_expr)
{
if ( disabled )
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,
zeek::detail::init_class ic)
zeek::detail::InitClass ic)
{
Redef(id, path, ic, nullptr);
}

View file

@ -140,9 +140,9 @@ public:
* @param init_expr The intiialization expression that was used.
*/
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,
zeek::detail::init_class ic = zeek::detail::INIT_NONE);
zeek::detail::InitClass ic = zeek::detail::INIT_NONE);
/**
* Register Zeekygen script summary content.