diff options
Diffstat (limited to 'pkg/compiler/check.go')
| -rw-r--r-- | pkg/compiler/check.go | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/pkg/compiler/check.go b/pkg/compiler/check.go index 087075a12..6ec2fa9e2 100644 --- a/pkg/compiler/check.go +++ b/pkg/compiler/check.go @@ -6,6 +6,7 @@ package compiler import ( + "errors" "fmt" "strings" @@ -372,10 +373,18 @@ func (comp *compiler) checkLenTarget(t *ast.Type, name, target string, fields [] comp.error(t.Pos, "%v target %v does not exist", t.Ident, target) } -func CollectUnused(desc *ast.Description, target *targets.Target) []ast.Node { - comp := createCompiler(desc, target, nil) +func CollectUnused(desc *ast.Description, target *targets.Target, eh ast.ErrorHandler) ([]ast.Node, error) { + comp := createCompiler(desc, target, eh) comp.typecheck() - return comp.collectUnused() + if comp.errors > 0 { + return nil, errors.New("typecheck failed") + } + + nodes := comp.collectUnused() + if comp.errors > 0 { + return nil, errors.New("collectUnused failed") + } + return nodes, nil } func (comp *compiler) collectUnused() []ast.Node { |
