github.com/Johnny2210/revive@v1.0.8-0.20210625134200-febf37ccd0f5/testdata/golint/if-return.go (about)

     1  // Test of redundant if err != nil
     2  
     3  // Package pkg ...
     4  package pkg
     5  
     6  func f() error {
     7  	if err := f(); err != nil {
     8  		g()
     9  		return err
    10  	}
    11  	return nil
    12  }
    13  
    14  func g() error {
    15  	if err := f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./
    16  		return err
    17  	}
    18  	return nil
    19  }
    20  
    21  func h() error {
    22  	if err, x := f(), 1; err != nil {
    23  		return err
    24  	}
    25  	return nil
    26  }
    27  
    28  func i() error {
    29  	a := 1
    30  	if err := f(); err != nil {
    31  		a++
    32  		return err
    33  	}
    34  	return nil
    35  }
    36  
    37  func j() error {
    38  	var a error
    39  	if err := f(); err != nil {
    40  		return err
    41  	}
    42  	return a
    43  }
    44  
    45  func k() error {
    46  	if err := f(); err != nil {
    47  		// TODO: handle error better
    48  		return err
    49  	}
    50  	return nil
    51  }
    52  
    53  func l() (interface{}, error) {
    54  	if err := f(); err != nil {
    55  		return nil, err
    56  	}
    57  	if err := f(); err != nil {
    58  		return nil, err
    59  	}
    60  	if err := f(); err != nil {
    61  		return nil, err
    62  	}
    63  	// Phew, it worked
    64  	return nil
    65  }
    66  
    67  func m() error {
    68  	if err := f(); err != nil {
    69  		return err
    70  	}
    71  	if err := f(); err != nil {
    72  		return err
    73  	}
    74  	if err := f(); err != nil {
    75  		return err
    76  	}
    77  	// Phew, it worked again.
    78  	return nil
    79  }
    80  
    81  func multi() error {
    82  	a := 0
    83  	var err error
    84  	// unreachable code after return statements is intentional to check that it
    85  	// doesn't confuse the linter.
    86  	if true {
    87  		a++
    88  		if err := f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./
    89  			return err
    90  		}
    91  		return nil
    92  		a++
    93  	} else {
    94  		a++
    95  		if err = f(); err != nil { // MATCH /redundant if ...; err != nil check, just return error instead./
    96  			return err
    97  		}
    98  		return nil
    99  		a++
   100  	}
   101  }