| // Test for returning errors. |
| |
| // Package foo ... |
| package foo |
| |
| // Returns nothing |
| func f() { // ok |
| } |
| |
| // Check for a single error return |
| func g() error { // ok |
| return nil |
| } |
| |
| // Check for a single other return type |
| func h() int { // ok |
| return 0 |
| } |
| |
| // Check for multiple return but error at end. |
| func i() (int, error) { // ok |
| return 0, nil |
| } |
| |
| // Check for multiple return but error at end with named variables. |
| func j() (x int, err error) { // ok |
| return 0, nil |
| } |
| |
| // Check for error in the wrong location on 2 types |
| func k() (error, int) { // MATCH /error should be the last type/ |
| return nil, 0 |
| } |
| |
| // Check for error in the wrong location for > 2 types |
| func l() (int, error, int) { // MATCH /error should be the last type/ |
| return 0, nil, 0 |
| } |
| |
| // Check for error in the wrong location with named variables. |
| func m() (x int, err error, y int) { // MATCH /error should be the last type/ |
| return 0, nil, 0 |
| } |
| |
| // Check for multiple error returns but with errors at the end. |
| func n() (int, error, error) { // OK |
| return 0, nil, nil |
| } |
| |
| // Check for multiple error returns mixed in order, but keeping one error at last position. |
| func o() (int, error, int, error) { // OK |
| return 0, nil, 0, nil |
| } |