message/pipeline: don't panic if message not imported
Change-Id: I7a2aa7e263aeafa7703f989b78e1333bf5dd8330
Reviewed-on: https://go-review.googlesource.com/133935
Run-TryBot: Sam Whited <sam@samwhited.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/message/pipeline/extract.go b/message/pipeline/extract.go
index 3db4172..f5043cd 100644
--- a/message/pipeline/extract.go
+++ b/message/pipeline/extract.go
@@ -6,6 +6,7 @@
import (
"bytes"
+ "errors"
"fmt"
"go/ast"
"go/constant"
@@ -42,7 +43,9 @@
return nil, wrap(err, "")
}
- x.seedEndpoints()
+ if err := x.seedEndpoints(); err != nil {
+ return nil, err
+ }
x.extractMessages()
return &State{
@@ -96,8 +99,12 @@
return cd
}
-func (x *extracter) seedEndpoints() {
- pkg := x.prog.Package(x.iprog.Package("golang.org/x/text/message").Pkg)
+func (x *extracter) seedEndpoints() error {
+ pkgInfo := x.iprog.Package("golang.org/x/text/message")
+ if pkgInfo == nil {
+ return errors.New("pipeline: golang.org/x/text/message is not imported")
+ }
+ pkg := x.prog.Package(pkgInfo.Pkg)
typ := types.NewPointer(pkg.Type("Printer").Type())
x.processGlobalVars()
@@ -117,6 +124,7 @@
argPos: 3,
isMethod: true,
})
+ return nil
}
// processGlobalVars finds string constants that are assigned to global