diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-08-01 16:30:17 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-08-02 16:57:31 +0200 |
| commit | af15ef43a838e4be0537da7e9dd03ad3eb71b544 (patch) | |
| tree | 94e1db0c214449053ebeecdfe544ce991afaad67 /pkg | |
| parent | 3a4641d90c293137bd33e6472e721a4c15b0d7da (diff) | |
pkg/compiler: refactor checkNames
Too complex. Split into 2 functions.
Update #538
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/compiler/check.go | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkg/compiler/check.go b/pkg/compiler/check.go index a0d0f7fed..195ca1245 100644 --- a/pkg/compiler/check.go +++ b/pkg/compiler/check.go @@ -14,6 +14,7 @@ import ( ) func (comp *compiler) typecheck() { + comp.checkDirectives() comp.checkNames() comp.checkFields() comp.checkTypedefs() @@ -31,11 +32,10 @@ func (comp *compiler) check() { comp.checkDupConsts() } -func (comp *compiler) checkNames() { +func (comp *compiler) checkDirectives() { includes := make(map[string]bool) incdirs := make(map[string]bool) defines := make(map[string]bool) - calls := make(map[string]*ast.Call) for _, decl := range comp.desc.Nodes { switch n := decl.(type) { case *ast.Include: @@ -59,6 +59,14 @@ func (comp *compiler) checkNames() { comp.error(n.Pos, "duplicate define %v", name) } defines[path] = true + } + } +} + +func (comp *compiler) checkNames() { + calls := make(map[string]*ast.Call) + for _, decl := range comp.desc.Nodes { + switch n := decl.(type) { case *ast.Resource, *ast.Struct, *ast.TypeDef: pos, typ, name := decl.Info() if reservedName[name] { |
