Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
f991586d
Commit
f991586d
authored
Nov 09, 2015
by
Wojciech Tyczynski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support current package in RawNamer.
parent
9fe755de
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
32 additions
and
6 deletions
+32
-6
namer.go
cmd/libs/go2idl/namer/namer.go
+14
-2
namer_test.go
cmd/libs/go2idl/namer/namer_test.go
+13
-1
parse_test.go
cmd/libs/go2idl/parser/parse_test.go
+1
-1
sets.go
cmd/libs/go2idl/set-gen/generators/sets.go
+4
-2
No files found.
cmd/libs/go2idl/namer/namer.go
View file @
f991586d
...
...
@@ -56,6 +56,9 @@ func NewPrivateNamer(prependPackageNames int, ignoreWords ...string) *NameStrate
// NewRawNamer will return a Namer that makes a name by which you would
// directly refer to a type, optionally keeping track of the import paths
// necessary to reference the names it provides. Tracker may be nil.
// The 'pkg' is the full package name, in which the Namer is used - all
// types from that package will be referenced by just type name without
// referencing the package.
//
// For example, if the type is map[string]int, a raw namer will literally
// return "map[string]int".
...
...
@@ -63,8 +66,8 @@ func NewPrivateNamer(prependPackageNames int, ignoreWords ...string) *NameStrate
// Or if the type, in package foo, is "type Bar struct { ... }", then the raw
// namer will return "foo.Bar" as the name of the type, and if 'tracker' was
// not nil, will record that package foo needs to be imported.
func
NewRawNamer
(
tracker
ImportTracker
)
*
rawNamer
{
return
&
rawNamer
{
tracker
:
tracker
}
func
NewRawNamer
(
pkg
string
,
tracker
ImportTracker
)
*
rawNamer
{
return
&
rawNamer
{
pkg
:
pkg
,
tracker
:
tracker
}
}
// Names is a map from Type to name, as defined by some Namer.
...
...
@@ -273,6 +276,7 @@ type ImportTracker interface {
}
type
rawNamer
struct
{
pkg
string
tracker
ImportTracker
Names
}
...
...
@@ -291,10 +295,18 @@ func (r *rawNamer) Name(t *types.Type) string {
var
name
string
if
r
.
tracker
!=
nil
{
r
.
tracker
.
AddType
(
t
)
if
t
.
Name
.
Package
==
r
.
pkg
{
name
=
t
.
Name
.
Name
}
else
{
name
=
r
.
tracker
.
LocalNameOf
(
t
.
Name
.
Package
)
+
"."
+
t
.
Name
.
Name
}
}
else
{
if
t
.
Name
.
Package
==
r
.
pkg
{
name
=
t
.
Name
.
Name
}
else
{
name
=
filepath
.
Base
(
t
.
Name
.
Package
)
+
"."
+
t
.
Name
.
Name
}
}
r
.
Names
[
t
]
=
name
return
name
}
...
...
cmd/libs/go2idl/namer/namer_test.go
View file @
f991586d
...
...
@@ -59,7 +59,7 @@ func TestNameStrategy(t *testing.T) {
t
.
Errorf
(
"Wanted %#v, got %#v"
,
e
,
a
)
}
o
=
Orderer
{
NewRawNamer
(
nil
)}
o
=
Orderer
{
NewRawNamer
(
"my/package"
,
nil
)}
order
=
o
.
Order
(
u
)
orderedNames
=
make
([]
string
,
len
(
order
))
for
i
,
t
:=
range
order
{
...
...
@@ -71,6 +71,18 @@ func TestNameStrategy(t *testing.T) {
t
.
Errorf
(
"Wanted %#v, got %#v"
,
e
,
a
)
}
o
=
Orderer
{
NewRawNamer
(
"foo/bar"
,
nil
)}
order
=
o
.
Order
(
u
)
orderedNames
=
make
([]
string
,
len
(
order
))
for
i
,
t
:=
range
order
{
orderedNames
[
i
]
=
o
.
Name
(
t
)
}
expect
=
[]
string
{
"Baz"
,
"[]Baz"
,
"map[string]Baz"
,
"other.Baz"
,
"string"
}
if
e
,
a
:=
expect
,
orderedNames
;
!
reflect
.
DeepEqual
(
e
,
a
)
{
t
.
Errorf
(
"Wanted %#v, got %#v"
,
e
,
a
)
}
o
=
Orderer
{
NewPublicNamer
(
1
)}
order
=
o
.
Order
(
u
)
orderedNames
=
make
([]
string
,
len
(
order
))
...
...
cmd/libs/go2idl/parser/parse_test.go
View file @
f991586d
...
...
@@ -302,7 +302,7 @@ type Interface interface{Method(a, b string) (c, d string)}
namer
.
NewPublicNamer
(
1
),
namer
.
NewPrivateNamer
(
0
),
namer
.
NewPrivateNamer
(
1
),
namer
.
NewRawNamer
(
nil
),
namer
.
NewRawNamer
(
""
,
nil
),
}
for
nameIndex
,
namer
:=
range
namers
{
...
...
cmd/libs/go2idl/set-gen/generators/sets.go
View file @
f991586d
...
...
@@ -35,7 +35,7 @@ func NameSystems() namer.NameSystems {
return
namer
.
NameSystems
{
"public"
:
namer
.
NewPublicNamer
(
0
),
"private"
:
namer
.
NewPrivateNamer
(
0
),
"raw"
:
namer
.
NewRawNamer
(
nil
),
"raw"
:
namer
.
NewRawNamer
(
""
,
nil
),
}
}
...
...
@@ -90,6 +90,7 @@ func Packages(_ *generator.Context, arguments *args.GeneratorArgs) generator.Pac
// names?
OptionalName
:
c
.
Namers
[
"private"
]
.
Name
(
t
),
},
outputPackage
:
arguments
.
OutputPackagePath
,
typeToMatch
:
t
,
imports
:
generator
.
NewImportTracker
(),
})
...
...
@@ -121,6 +122,7 @@ func Packages(_ *generator.Context, arguments *args.GeneratorArgs) generator.Pac
// genSet produces a file with a set for a single type.
type
genSet
struct
{
generator
.
DefaultGen
outputPackage
string
typeToMatch
*
types
.
Type
imports
*
generator
.
ImportTracker
}
...
...
@@ -130,7 +132,7 @@ func (g *genSet) Filter(c *generator.Context, t *types.Type) bool { return t ==
func
(
g
*
genSet
)
Namers
(
c
*
generator
.
Context
)
namer
.
NameSystems
{
return
namer
.
NameSystems
{
"raw"
:
namer
.
NewRawNamer
(
g
.
imports
),
"raw"
:
namer
.
NewRawNamer
(
g
.
outputPackage
,
g
.
imports
),
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment