github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/go/analysis/passes/sigchanyzer/testdata/src/a/a.go (about)

     1  package p
     2  
     3  import (
     4  	"os"
     5  	ao "os"
     6  	"os/signal"
     7  )
     8  
     9  var c = make(chan os.Signal)
    10  var d = make(chan os.Signal)
    11  
    12  func f() {
    13  	c := make(chan os.Signal, 1)
    14  	signal.Notify(c, os.Interrupt) // ok
    15  	_ = <-c
    16  }
    17  
    18  func g() {
    19  	c := make(chan os.Signal)
    20  	signal.Notify(c, os.Interrupt) // want "misuse of unbuffered os.Signal channel as argument to signal.Notify"
    21  	_ = <-c
    22  }
    23  
    24  func h() {
    25  	c := make(chan ao.Signal)
    26  	signal.Notify(c, os.Interrupt) // want "misuse of unbuffered os.Signal channel as argument to signal.Notify"
    27  	_ = <-c
    28  }
    29  
    30  func i() {
    31  	signal.Notify(d, os.Interrupt) // want "misuse of unbuffered os.Signal channel as argument to signal.Notify"
    32  }
    33  
    34  func j() {
    35  	c := make(chan os.Signal)
    36  	f := signal.Notify
    37  	f(c, os.Interrupt) // want "misuse of unbuffered os.Signal channel as argument to signal.Notify"
    38  }
    39  
    40  func k() {
    41  	signal.Notify(make(chan os.Signal), os.Interrupt) // ok
    42  }
    43  
    44  func l() {
    45  	signal.Notify(make(chan os.Signal, 1), os.Interrupt) // ok
    46  }
    47  
    48  func m() {
    49  	signal.Notify(make(chan ao.Signal, 1), os.Interrupt) // ok
    50  }
    51  
    52  func n() {
    53  	signal.Notify(make(chan ao.Signal), os.Interrupt) // ok
    54  }