aboutsummaryrefslogtreecommitdiffstats
path: root/vm/vmimpl
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vmimpl')
-rw-r--r--vm/vmimpl/merger_test.go4
-rw-r--r--vm/vmimpl/vmimpl.go9
2 files changed, 7 insertions, 6 deletions
diff --git a/vm/vmimpl/merger_test.go b/vm/vmimpl/merger_test.go
index 8308aff5e..ef5570509 100644
--- a/vm/vmimpl/merger_test.go
+++ b/vm/vmimpl/merger_test.go
@@ -5,6 +5,7 @@ package vmimpl
import (
"bytes"
+ "errors"
"io"
"testing"
"time"
@@ -62,9 +63,10 @@ func TestMerger(t *testing.T) {
t.Fatalf("bad line: '%s', want '%s'", got, want)
}
+ var merr MergerError
if err := <-merger.Err; err == nil {
t.Fatalf("merger did not produce an error on pipe close")
- } else if merr := err.(MergerError); merr.Name != "pipe1" || merr.R != rp1 || merr.Err != io.EOF {
+ } else if !errors.As(err, &merr) || merr.Name != "pipe1" || merr.R != rp1 || merr.Err != io.EOF {
t.Fatalf("merger produced wrong error: %v", err)
}
diff --git a/vm/vmimpl/vmimpl.go b/vm/vmimpl/vmimpl.go
index 9dbd61a92..0a4ada028 100644
--- a/vm/vmimpl/vmimpl.go
+++ b/vm/vmimpl/vmimpl.go
@@ -93,12 +93,11 @@ type BootError struct {
}
func MakeBootError(err error, output []byte) error {
- switch err1 := err.(type) {
- case *osutil.VerboseError:
- return BootError{err1.Title, append(err1.Output, output...)}
- default:
- return BootError{err.Error(), output}
+ var verboseError *osutil.VerboseError
+ if errors.As(err, &verboseError) {
+ return BootError{verboseError.Title, append(verboseError.Output, output...)}
}
+ return BootError{err.Error(), output}
}
func (err BootError) Error() string {