From 0a09bbbf57a1a2f1921f074bf49c6048eb1ecb9b Mon Sep 17 00:00:00 2001 From: Chao Xu Date: Mon, 14 Dec 2015 16:12:32 -0800 Subject: [PATCH] add OrderTypes() to Orderer --- cmd/libs/go2idl/generator/generator.go | 2 +- cmd/libs/go2idl/namer/namer_test.go | 8 ++++---- cmd/libs/go2idl/namer/order.go | 17 ++++++++++++++--- cmd/libs/go2idl/parser/parse_test.go | 2 +- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/cmd/libs/go2idl/generator/generator.go b/cmd/libs/go2idl/generator/generator.go index 21910890a3..a0b2094295 100644 --- a/cmd/libs/go2idl/generator/generator.go +++ b/cmd/libs/go2idl/generator/generator.go @@ -185,7 +185,7 @@ func NewContext(b *parser.Builder, nameSystems namer.NameSystems, canonicalOrder c.Namers[name] = systemNamer if name == canonicalOrderName { orderer := namer.Orderer{systemNamer} - c.Order = orderer.Order(u) + c.Order = orderer.OrderUniverse(u) } } return c, nil diff --git a/cmd/libs/go2idl/namer/namer_test.go b/cmd/libs/go2idl/namer/namer_test.go index a8270164c6..3bb042c765 100644 --- a/cmd/libs/go2idl/namer/namer_test.go +++ b/cmd/libs/go2idl/namer/namer_test.go @@ -49,7 +49,7 @@ func TestNameStrategy(t *testing.T) { u.Type(types.Name{Package: "", Name: "string"}) o := Orderer{NewPublicNamer(0)} - order := o.Order(u) + order := o.OrderUniverse(u) orderedNames := make([]string, len(order)) for i, t := range order { orderedNames[i] = o.Name(t) @@ -60,7 +60,7 @@ func TestNameStrategy(t *testing.T) { } o = Orderer{NewRawNamer("my/package", nil)} - order = o.Order(u) + order = o.OrderUniverse(u) orderedNames = make([]string, len(order)) for i, t := range order { orderedNames[i] = o.Name(t) @@ -72,7 +72,7 @@ func TestNameStrategy(t *testing.T) { } o = Orderer{NewRawNamer("foo/bar", nil)} - order = o.Order(u) + order = o.OrderUniverse(u) orderedNames = make([]string, len(order)) for i, t := range order { orderedNames[i] = o.Name(t) @@ -84,7 +84,7 @@ func TestNameStrategy(t *testing.T) { } o = Orderer{NewPublicNamer(1)} - order = o.Order(u) + order = o.OrderUniverse(u) orderedNames = make([]string, len(order)) for i, t := range order { orderedNames[i] = o.Name(t) diff --git a/cmd/libs/go2idl/namer/order.go b/cmd/libs/go2idl/namer/order.go index 7b4d231670..860b866a65 100644 --- a/cmd/libs/go2idl/namer/order.go +++ b/cmd/libs/go2idl/namer/order.go @@ -27,9 +27,9 @@ type Orderer struct { Namer } -// Order assigns a name to every type, and returns a list sorted by those -// names. -func (o *Orderer) Order(u types.Universe) []*types.Type { +// OrderUniverse assigns a name to every type in the Universe, including Types, +// Functions and Variables, and returns a list sorted by those names. +func (o *Orderer) OrderUniverse(u types.Universe) []*types.Type { list := tList{ namer: o.Namer, } @@ -48,6 +48,17 @@ func (o *Orderer) Order(u types.Universe) []*types.Type { return list.types } +// OrderTypes assigns a name to every type, and returns a list sorted by those +// names. +func (o *Orderer) OrderTypes(typeList []*types.Type) []*types.Type { + list := tList{ + namer: o.Namer, + types: typeList, + } + sort.Sort(list) + return list.types +} + type tList struct { namer Namer types []*types.Type diff --git a/cmd/libs/go2idl/parser/parse_test.go b/cmd/libs/go2idl/parser/parse_test.go index 4161d87b85..57bfe6582a 100644 --- a/cmd/libs/go2idl/parser/parse_test.go +++ b/cmd/libs/go2idl/parser/parse_test.go @@ -39,7 +39,7 @@ func construct(t *testing.T, files map[string]string, testNamer namer.Namer) (*p t.Fatal(err) } orderer := namer.Orderer{testNamer} - o := orderer.Order(u) + o := orderer.OrderUniverse(u) return b, u, o }