internal/importers/java: improve class not found error
Change-Id: I37bab4e002238f2701d3e52be898a81d1c2f0db0
Reviewed-on: https://go-review.googlesource.com/35187
Reviewed-by: David Crawshaw <crawshaw@golang.org>
diff --git a/internal/importers/java/java.go b/internal/importers/java/java.go
index 89617c8..68a3073 100644
--- a/internal/importers/java/java.go
+++ b/internal/importers/java/java.go
@@ -137,6 +137,10 @@
goName string
}
+type errClsNotFound struct {
+ name string
+}
+
const (
Int TypeKind = iota
Boolean
@@ -151,9 +155,9 @@
Object
)
-var (
- errClsNotFound = errors.New("class not found")
-)
+func (e *errClsNotFound) Error() string {
+ return "class not found: " + e.name
+}
// IsAvailable returns whether the required tools are available for
// Import to work. In particular, IsAvailable checks the existence
@@ -615,10 +619,11 @@
for _, name := range names {
cls, err := j.scanClass(s, name)
if err != nil {
- if err == errClsNotFound && allowMissingClasses {
+ _, notfound := err.(*errClsNotFound)
+ if notfound && allowMissingClasses {
continue
}
- if err == errClsNotFound && name != "android.databinding.DataBindingComponent" {
+ if notfound && name != "android.databinding.DataBindingComponent" {
return nil, err
}
// The Android Databinding library generates android.databinding.DataBindingComponent
@@ -725,7 +730,7 @@
if errPref := "Error: "; strings.HasPrefix(head, errPref) {
msg := head[len(errPref):]
if strings.HasPrefix(msg, "class not found: "+name) {
- return nil, errClsNotFound
+ return nil, &errClsNotFound{name}
}
return nil, errors.New(msg)
}