From f19803d3643e6fe6d3256278d1e54d8ec54bdeca Mon Sep 17 00:00:00 2001 From: Woody Guo Date: Tue, 3 Jul 2018 23:44:27 +0800 Subject: [PATCH] Dart: Add missing imports (#4803) --- src/idl_gen_dart.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/idl_gen_dart.cpp b/src/idl_gen_dart.cpp index 6fb5f9e..8af1877 100644 --- a/src/idl_gen_dart.cpp +++ b/src/idl_gen_dart.cpp @@ -78,6 +78,10 @@ class DartGenerator : public BaseGenerator { code += "import 'package:flat_buffers/flat_buffers.dart' as " + _kFb + ";\n\n"; + if (parser_.opts.include_dependence_headers) { + GenIncludeDependencies(&code, kv->first); + } + for (auto kv2 = namespace_code.begin(); kv2 != namespace_code.end(); ++kv2) { if (kv2->first != kv->first) { @@ -130,6 +134,19 @@ class DartGenerator : public BaseGenerator { // std::transform(ret.begin(), ret.end(), ret.begin(), ::tolower); return ret; } + + void GenIncludeDependencies(std::string* code, const std::string& the_namespace) { + for (auto it = parser_.included_files_.begin(); + it != parser_.included_files_.end(); ++it) { + if (it->second.empty()) continue; + + auto noext = flatbuffers::StripExtension(it->second); + auto basename = flatbuffers::StripPath(noext); + + *code += "import '" + GeneratedFileName("", basename + "_" + the_namespace) + "';\n"; + } + } + static std::string EscapeKeyword(const std::string &name) { for (size_t i = 0; i < sizeof(keywords) / sizeof(keywords[0]); i++) { if (name == keywords[i]) { return MakeCamel(name + "_", false); } -- 2.7.4