// $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 {
		println("x=", x, " y=", y, " z=", z, " nf=", nf, " v=", v, " ok=", ok, " ng=", ng)
		panic("fail")
	}
}
