github.com/cockroachdb/tools@v0.0.0-20230222021103-a6d27438930d/go/analysis/passes/errorsas/testdata/src/a/a.go (about) 1 // Copyright 2019 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 // This file contains tests for the errorsas checker. 6 7 package a 8 9 import "errors" 10 11 type myError int 12 13 func (myError) Error() string { return "" } 14 15 func perr() *error { return nil } 16 17 type iface interface { 18 m() 19 } 20 21 func two() (error, interface{}) { return nil, nil } 22 23 func _() { 24 var ( 25 e error 26 m myError 27 i int 28 f iface 29 ei interface{} 30 ) 31 errors.As(nil, &e) // want `second argument to errors.As should not be \*error` 32 errors.As(nil, &m) // *T where T implemements error 33 errors.As(nil, &f) // *interface 34 errors.As(nil, perr()) // want `second argument to errors.As should not be \*error` 35 errors.As(nil, ei) // empty interface 36 37 errors.As(nil, nil) // want `second argument to errors.As must be a non-nil pointer to either a type that implements error, or to any interface type` 38 errors.As(nil, e) // want `second argument to errors.As must be a non-nil pointer to either a type that implements error, or to any interface type` 39 errors.As(nil, m) // want `second argument to errors.As must be a non-nil pointer to either a type that implements error, or to any interface type` 40 errors.As(nil, f) // want `second argument to errors.As must be a non-nil pointer to either a type that implements error, or to any interface type` 41 errors.As(nil, &i) // want `second argument to errors.As must be a non-nil pointer to either a type that implements error, or to any interface type` 42 errors.As(two()) 43 }