aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgaltsev <galtsev@yandex-team.com>2024-08-21 21:16:59 +0300
committergaltsev <galtsev@yandex-team.com>2024-08-21 21:31:23 +0300
commit3674c77986e1fbda2dfcf9d2d4c1db563cfeaf4c (patch)
treeb885d8ace301f00d8a7f091a37087579b357d729
parent6552f0b96dddafa39fb425cdc8df5ac2562a4aa4 (diff)
downloadydb-3674c77986e1fbda2dfcf9d2d4c1db563cfeaf4c.tar.gz
YT-21993: Add forgotten `override` specifiers
b77c55a40214fce1a37af17fb6d9bf7e04805eef
-rw-r--r--yt/yt/core/phoenix/type_decl-inl.h4
-rw-r--r--yt/yt/core/phoenix/unittests/phoenix_ut.cpp42
2 files changed, 44 insertions, 2 deletions
diff --git a/yt/yt/core/phoenix/type_decl-inl.h b/yt/yt/core/phoenix/type_decl-inl.h
index 99a583ce1f..7cec2fa547 100644
--- a/yt/yt/core/phoenix/type_decl-inl.h
+++ b/yt/yt/core/phoenix/type_decl-inl.h
@@ -89,12 +89,12 @@ public: \
return map; \
} \
\
- void Save(TSaveContext& context) const \
+ void Save(TSaveContext& context) const saveLoadModifier \
{ \
::NYT::NPhoenix2::NDetail::SaveImpl(this, context); \
} \
\
- void Load(TLoadContext& context) \
+ void Load(TLoadContext& context) saveLoadModifier \
{ \
::NYT::NPhoenix2::NDetail::LoadImpl(this, context); \
}
diff --git a/yt/yt/core/phoenix/unittests/phoenix_ut.cpp b/yt/yt/core/phoenix/unittests/phoenix_ut.cpp
index 2050c3ebed..b93bf8868b 100644
--- a/yt/yt/core/phoenix/unittests/phoenix_ut.cpp
+++ b/yt/yt/core/phoenix/unittests/phoenix_ut.cpp
@@ -1248,6 +1248,48 @@ TEST(TPhoenixTest, UniquePtr)
////////////////////////////////////////////////////////////////////////////////
+namespace NPolymorphicTemplate {
+
+struct TBase;
+
+template <class T>
+struct TDerived;
+
+struct TBase
+ : public IPersistent
+{
+ virtual void Foo() = 0;
+
+ PHOENIX_DECLARE_POLYMORPHIC_TYPE(TBase, 0x0f07ba7c);
+};
+
+void TBase::RegisterMetadata(auto&& /*registrar*/)
+{ }
+
+PHOENIX_DEFINE_TYPE(TBase);
+
+template <class T>
+struct TDerived
+ : public TBase
+{
+ void Foo() override
+ { }
+
+ PHOENIX_DECLARE_POLYMORPHIC_TEMPLATE_TYPE(TDerived, 0x8bf17dc9);
+};
+
+template <class T>
+void TDerived<T>::RegisterMetadata(auto&& registrar)
+{
+ registrar.template BaseType<TBase>();
+}
+
+PHOENIX_DEFINE_TEMPLATE_TYPE(TDerived, <int>);
+
+} // namespace NPolymorphicTemplate
+
+////////////////////////////////////////////////////////////////////////////////
+
namespace NPolymorphicRawPtr {
struct TBase;