aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/compiler/check.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/compiler/check.go')
-rw-r--r--pkg/compiler/check.go15
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 {