// $G $D/$F.go && $L $F.$A && ./$A.out

// Copyright 2010 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

var nf int
var ng int

func f() (int, int, int) {
	nf++
	return 1, 2, 3
}

func g() int {
	ng++
	return 4
}

var x, y, z = f()
var m = make(map[int]int)
var v, ok = m[g()]

func main() {
	if x != 1 || y != 2 || z != 3 || nf != 1 || v != 0 || ok != false || ng != 1 {
		panic("x=", x, " y=", y, " z=", z, " nf=", nf, " v=", v, " ok=", ok, " ng=", ng)
	}
}
