Commit b56d60f0 authored by iceboy's avatar iceboy Committed by Wouter van Oortmerssen

[Go] Generate imports with fixed order (#5340)

* use fixed order for golang imports

* grumble
parent bff7ffbc
...@@ -231,6 +231,15 @@ struct Namespace { ...@@ -231,6 +231,15 @@ struct Namespace {
size_t from_table; // Part of the namespace corresponds to a message/table. size_t from_table; // Part of the namespace corresponds to a message/table.
}; };
inline bool operator<(const Namespace &a, const Namespace &b) {
size_t min_size = std::min(a.components.size(), b.components.size());
for (size_t i = 0; i < min_size; ++i) {
if (a.components[i] != b.components[i])
return a.components[i] < b.components[i];
}
return a.components.size() < b.components.size();
}
// Base class for all definition types (fields, structs_, enums_). // Base class for all definition types (fields, structs_, enums_).
struct Definition { struct Definition {
Definition() Definition()
......
...@@ -113,7 +113,13 @@ class GoGenerator : public BaseGenerator { ...@@ -113,7 +113,13 @@ class GoGenerator : public BaseGenerator {
private: private:
Namespace go_namespace_; Namespace go_namespace_;
Namespace *cur_name_space_; Namespace *cur_name_space_;
std::set<const Namespace*> tracked_imported_namespaces_;
struct NamespacePtrLess {
bool operator()(const Namespace *a, const Namespace *b) const {
return *a < *b;
}
};
std::set<const Namespace *, NamespacePtrLess> tracked_imported_namespaces_;
// Most field accessors need to retrieve and test the field offset first, // Most field accessors need to retrieve and test the field offset first,
// this is the prefix code for that. // this is the prefix code for that.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment