github.com/gopherjs/gopherjs@v1.19.0-beta1.0.20240506212314-27071a8796e4/tests/testdata/defer_builtin.go (about)

     1  package main
     2  
     3  type (
     4  	set map[interface{}]struct{}
     5  	key struct{ a int }
     6  )
     7  
     8  var m = set{}
     9  
    10  func deferredDelete(k key) {
    11  	// This built-in deferral will transpile into a "delete" statement wrapped
    12  	// into a proxy lambda. This test ensures we correctly assign proxy lambda
    13  	// argument types.
    14  	defer delete(m, k)
    15  }
    16  
    17  func main() {
    18  	k := key{a: 42}
    19  	m[k] = struct{}{}
    20  	deferredDelete(k)
    21  	if _, found := m[k]; found {
    22  		panic("deferred delete didn't work!")
    23  	}
    24  }