From ed4f18bfaf3a44c56827bb06fecef969e1f734e3 Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 22 Jan 2024 19:46:12 +0300 Subject: [PATCH] Don't allow to call get_id() on non-abstract classes. --- td/generate/tl_writer_h.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/td/generate/tl_writer_h.cpp b/td/generate/tl_writer_h.cpp index 470cfeaa5..21cf19580 100644 --- a/td/generate/tl_writer_h.cpp +++ b/td/generate/tl_writer_h.cpp @@ -264,8 +264,16 @@ std::string TD_TL_writer_h::gen_forward_class_declaration(const std::string &cla std::string TD_TL_writer_h::gen_class_begin(const std::string &class_name, const std::string &base_class_name, bool is_proxy, const tl::tl_tree *result) const { - return "class " + class_name + (!is_proxy ? " final " : "") + ": public " + base_class_name + + if (is_proxy) { + return "class " + class_name + ": public " + base_class_name + + " {\n" + " public:\n"; + } + return "class " + class_name + " final : public " + base_class_name + " {\n" + " std::int32_t get_id() const final {\n" + " return ID;\n" + " }\n\n" " public:\n"; } @@ -289,11 +297,7 @@ std::string TD_TL_writer_h::gen_get_id(const std::string &class_name, std::int32 return "\n" " static const std::int32_t ID = " + - int_to_string(id) + - ";\n" - " std::int32_t get_id() const final {\n" - " return ID;\n" - " }\n"; + int_to_string(id) + ";\n"; } std::string TD_TL_writer_h::gen_function_result_type(const tl::tl_tree *result) const {