Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / golang.org / x / tools@v0.0.0-20201028153306-37f0764111ff / go / analysis / passes / errorsas / testdata / src / a / a.go
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)     // *error
32         errors.As(nil, &m)     // *T where T implemements error
33         errors.As(nil, &f)     // *interface
34         errors.As(nil, perr()) // *error, via a call
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 }