diff --git a/td/generate/tl_writer_c.h b/td/generate/tl_writer_c.h index 2e1ff4a7d..9402bae72 100644 --- a/td/generate/tl_writer_c.h +++ b/td/generate/tl_writer_c.h @@ -346,7 +346,8 @@ class TlWriterCCommon : public tl::TL_writer { (fields_num ? "" : "void"); return ss.str(); } - std::string gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const override { + std::string gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override { if (!is_default || is_header_ == -1) { return ""; } @@ -356,7 +357,8 @@ class TlWriterCCommon : public tl::TL_writer { ss << field_type << gen_field_name(a.name); return ss.str(); } - std::string gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const override { + std::string gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override { return ""; } std::string gen_constructor_end(const tl::tl_combinator *t, int fields_num, bool is_default) const override { diff --git a/td/generate/tl_writer_cpp.cpp b/td/generate/tl_writer_cpp.cpp index a9589c217..56a682c64 100644 --- a/td/generate/tl_writer_cpp.cpp +++ b/td/generate/tl_writer_cpp.cpp @@ -636,7 +636,8 @@ std::string TD_TL_writer_cpp::gen_constructor_begin(int fields_num, const std::s return "\n" + class_name + "::" + class_name + "("; } -std::string TD_TL_writer_cpp::gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_cpp::gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { std::string field_type = gen_field_type(a); if (field_type.empty()) { return ""; diff --git a/td/generate/tl_writer_cpp.h b/td/generate/tl_writer_cpp.h index 7d3d7ef32..eb64d18a8 100644 --- a/td/generate/tl_writer_cpp.h +++ b/td/generate/tl_writer_cpp.h @@ -97,7 +97,8 @@ class TD_TL_writer_cpp : public TD_TL_writer { std::string gen_fetch_switch_end() const override; std::string gen_constructor_begin(int fields_num, const std::string &class_name, bool is_default) const override; - std::string gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const override; + std::string gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; std::string gen_constructor_end(const tl::tl_combinator *t, int fields_num, bool is_default) const override; }; diff --git a/td/generate/tl_writer_h.cpp b/td/generate/tl_writer_h.cpp index 4d83022b3..49eaf4982 100644 --- a/td/generate/tl_writer_h.cpp +++ b/td/generate/tl_writer_h.cpp @@ -338,7 +338,8 @@ std::string TD_TL_writer_h::gen_constructor_begin(int fields_num, const std::str std::string(fields_num == 1 ? "explicit " : "") + class_name + "("; } -std::string TD_TL_writer_h::gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_h::gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { return ""; } diff --git a/td/generate/tl_writer_h.h b/td/generate/tl_writer_h.h index cad902504..e763ea47e 100644 --- a/td/generate/tl_writer_h.h +++ b/td/generate/tl_writer_h.h @@ -83,7 +83,8 @@ class TD_TL_writer_h : public TD_TL_writer { std::string gen_fetch_switch_end() const override; std::string gen_constructor_begin(int fields_num, const std::string &class_name, bool is_default) const override; - std::string gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const override; + std::string gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; std::string gen_constructor_end(const tl::tl_combinator *t, int fields_num, bool is_default) const override; }; diff --git a/td/generate/tl_writer_hpp.cpp b/td/generate/tl_writer_hpp.cpp index d4f2af550..ed3aaa769 100644 --- a/td/generate/tl_writer_hpp.cpp +++ b/td/generate/tl_writer_hpp.cpp @@ -242,11 +242,13 @@ std::string TD_TL_writer_hpp::gen_constructor_begin(int fields_num, const std::s return ""; } -std::string TD_TL_writer_hpp::gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_hpp::gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { return ""; } -std::string TD_TL_writer_hpp::gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_hpp::gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { return ""; } diff --git a/td/generate/tl_writer_hpp.h b/td/generate/tl_writer_hpp.h index 2370ba5fb..119fa87a5 100644 --- a/td/generate/tl_writer_hpp.h +++ b/td/generate/tl_writer_hpp.h @@ -84,8 +84,10 @@ class TD_TL_writer_hpp : public TD_TL_writer { std::string gen_fetch_switch_end() const override; std::string gen_constructor_begin(int fields_num, const std::string &class_name, bool is_default) const override; - std::string gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const override; - std::string gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const override; + std::string gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; + std::string gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; std::string gen_constructor_end(const tl::tl_combinator *t, int fields_num, bool is_default) const override; std::string gen_additional_function(const std::string &function_name, const tl::tl_combinator *t, diff --git a/td/generate/tl_writer_java.cpp b/td/generate/tl_writer_java.cpp index 2ab35fcc0..0a681ca8b 100644 --- a/td/generate/tl_writer_java.cpp +++ b/td/generate/tl_writer_java.cpp @@ -500,7 +500,8 @@ std::string TD_TL_writer_java::gen_constructor_begin(int fields_num, const std:: class_name + "("; } -std::string TD_TL_writer_java::gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_java::gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { if (is_default) { return ""; } @@ -517,7 +518,8 @@ std::string TD_TL_writer_java::gen_constructor_parameter(int field_num, const tl return (field_num == 0 ? "" : ", ") + field_type + gen_field_name(a.name); } -std::string TD_TL_writer_java::gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer_java::gen_constructor_field_init(int field_num, const std::string &class_name, + const tl::arg &a, bool is_default) const { std::string field_type = gen_field_type(a); if (field_type.empty()) { return ""; diff --git a/td/generate/tl_writer_java.h b/td/generate/tl_writer_java.h index 6dabf4c56..cb8a161f0 100644 --- a/td/generate/tl_writer_java.h +++ b/td/generate/tl_writer_java.h @@ -108,8 +108,10 @@ class TD_TL_writer_java : public tl::TL_writer { std::string gen_fetch_switch_end() const override; std::string gen_constructor_begin(int fields_num, const std::string &class_name, bool is_default) const override; - std::string gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const override; - std::string gen_constructor_field_init(int field_num, const tl::arg &a, bool is_default) const override; + std::string gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; + std::string gen_constructor_field_init(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; std::string gen_constructor_end(const tl::tl_combinator *t, int fields_num, bool is_default) const override; }; diff --git a/td/generate/tl_writer_td.cpp b/td/generate/tl_writer_td.cpp index f147ad4f9..fab140095 100644 --- a/td/generate/tl_writer_td.cpp +++ b/td/generate/tl_writer_td.cpp @@ -217,7 +217,8 @@ std::string TD_TL_writer::gen_int_const(const tl::tl_tree *tree_c, const std::ve return std::string(); } -std::string TD_TL_writer::gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const { +std::string TD_TL_writer::gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const { if (is_default) { return ""; } diff --git a/td/generate/tl_writer_td.h b/td/generate/tl_writer_td.h index c59689b20..b9f4d11b0 100644 --- a/td/generate/tl_writer_td.h +++ b/td/generate/tl_writer_td.h @@ -55,7 +55,8 @@ class TD_TL_writer : public tl::TL_writer { std::string gen_int_const(const tl::tl_tree *tree_c, const std::vector &vars) const override; - std::string gen_constructor_parameter(int field_num, const tl::arg &a, bool is_default) const override; + std::string gen_constructor_parameter(int field_num, const std::string &class_name, const tl::arg &a, + bool is_default) const override; }; } // namespace td diff --git a/tdtl/td/tl/tl_generate.cpp b/tdtl/td/tl/tl_generate.cpp index b861dcb99..7d1e563cf 100644 --- a/tdtl/td/tl/tl_generate.cpp +++ b/tdtl/td/tl/tl_generate.cpp @@ -54,13 +54,13 @@ static void write_class_constructor(tl_outputer &out, const tl_combinator *t, co // std::fprintf(stderr, "Gen constructor %s\n", class_name.c_str()); int fields_num = 0; for (std::size_t i = 0; i < t->args.size(); i++) { - fields_num += !w.gen_constructor_parameter(0, t->args[i], is_default).empty(); + fields_num += !w.gen_constructor_parameter(0, class_name, t->args[i], is_default).empty(); } out.append(w.gen_constructor_begin(fields_num, class_name, is_default)); int field_num = 0; for (std::size_t i = 0; i < t->args.size(); i++) { - std::string parameter_init = w.gen_constructor_parameter(field_num, t->args[i], is_default); + std::string parameter_init = w.gen_constructor_parameter(field_num, class_name, t->args[i], is_default); if (parameter_init.size()) { out.append(parameter_init); field_num++; @@ -70,7 +70,7 @@ static void write_class_constructor(tl_outputer &out, const tl_combinator *t, co field_num = 0; for (std::size_t i = 0; i < t->args.size(); i++) { - std::string field_init = w.gen_constructor_field_init(field_num, t->args[i], is_default); + std::string field_init = w.gen_constructor_field_init(field_num, class_name, t->args[i], is_default); if (field_init.size()) { out.append(field_init); field_num++; diff --git a/tdtl/td/tl/tl_writer.h b/tdtl/td/tl/tl_writer.h index 790ac9f47..3c3847516 100644 --- a/tdtl/td/tl/tl_writer.h +++ b/tdtl/td/tl/tl_writer.h @@ -139,8 +139,10 @@ class TL_writer { virtual std::string gen_fetch_switch_end() const = 0; virtual std::string gen_constructor_begin(int fields_num, const std::string &class_name, bool is_default) const = 0; - virtual std::string gen_constructor_parameter(int field_num, const arg &a, bool is_default) const = 0; - virtual std::string gen_constructor_field_init(int field_num, const arg &a, bool is_default) const = 0; + virtual std::string gen_constructor_parameter(int field_num, const std::string &class_name, const arg &a, + bool is_default) const = 0; + virtual std::string gen_constructor_field_init(int field_num, const std::string &class_name, const arg &a, + bool is_default) const = 0; virtual std::string gen_constructor_end(const tl_combinator *t, int fields_num, bool is_default) const = 0; virtual std::string gen_additional_function(const std::string &function_name, const tl_combinator *t,