github.com/nozzle/golangci-lint@v1.49.0-nz3/test/testdata/nlreturn.go (about)

     1  //golangcitest:args -Enlreturn
     2  package testdata
     3  
     4  func cha() {
     5  	ch := make(chan interface{})
     6  	ch1 := make(chan interface{})
     7  	ch2 := make(chan interface{})
     8  
     9  	select {
    10  	case <-ch:
    11  		return
    12  
    13  	case <-ch1:
    14  		{
    15  			a := 1
    16  			_ = a
    17  			{
    18  				a := 1
    19  				_ = a
    20  				return // want "return with no blank line before"
    21  			}
    22  
    23  			return
    24  		}
    25  
    26  		return
    27  
    28  	case <-ch2:
    29  		{
    30  			a := 1
    31  			_ = a
    32  			return // want "return with no blank line before"
    33  		}
    34  		return // want "return with no blank line before"
    35  	}
    36  }
    37  
    38  func baz() {
    39  	switch 0 {
    40  	case 0:
    41  		a := 1
    42  		_ = a
    43  		fallthrough // want "fallthrough with no blank line before"
    44  	case 1:
    45  		a := 1
    46  		_ = a
    47  		break // want "break with no blank line before"
    48  	case 2:
    49  		break
    50  	}
    51  }
    52  
    53  func foo() int {
    54  	v := []int{}
    55  	for range v {
    56  		return 0
    57  	}
    58  
    59  	for range v {
    60  		for range v {
    61  			return 0
    62  		}
    63  		return 0 // want "return with no blank line before"
    64  	}
    65  
    66  	o := []int{
    67  		0, 1,
    68  	}
    69  
    70  	return o[0]
    71  }
    72  
    73  func bar() int {
    74  	o := 1
    75  	if o == 1 {
    76  		if o == 0 {
    77  			return 1
    78  		}
    79  		return 0 // want "return with no blank line before"
    80  	}
    81  
    82  	return o
    83  }
    84  
    85  func main() {
    86  	return
    87  }
    88  
    89  func bugNoAssignSmthHandling() string {
    90  	switch 0 {
    91  	case 0:
    92  		o := struct {
    93  			foo string
    94  		}{
    95  			"foo",
    96  		}
    97  		return o.foo // want "return with no blank line before"
    98  
    99  	case 1:
   100  		o := struct {
   101  			foo string
   102  		}{
   103  			"foo",
   104  		}
   105  
   106  		return o.foo
   107  	}
   108  
   109  	return ""
   110  }
   111  
   112  func bugNoExprSmthHandling(string) {
   113  	switch 0 {
   114  	case 0:
   115  		bugNoExprSmthHandling(
   116  			"",
   117  		)
   118  		return // want "return with no blank line before"
   119  
   120  	case 1:
   121  		bugNoExprSmthHandling(
   122  			"",
   123  		)
   124  
   125  		return
   126  	}
   127  }
   128  
   129  func bugNoDeferSmthHandling(string) {
   130  	switch 0 {
   131  	case 0:
   132  		defer bugNoDeferSmthHandling(
   133  			"",
   134  		)
   135  		return // want "return with no blank line before"
   136  
   137  	case 1:
   138  		defer bugNoDeferSmthHandling(
   139  			"",
   140  		)
   141  
   142  		return
   143  	}
   144  }
   145  
   146  func bugNoGoSmthHandling(string) {
   147  	switch 0 {
   148  	case 0:
   149  		go bugNoGoSmthHandling(
   150  			"",
   151  		)
   152  		return // want "return with no blank line before"
   153  
   154  	case 1:
   155  		go bugNoGoSmthHandling(
   156  			"",
   157  		)
   158  
   159  		return
   160  	}
   161  }