// errorcheck -+

// Copyright 2016 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 p

func f(x int) func(int) int {
	return func(y int) int { return x + y } // ERROR "heap-allocated closure, not allowed in runtime."
}

func g(x int) func(int) int { // ERROR "x escapes to heap, not allowed in runtime."
	return func(y int) int { // ERROR "heap-allocated closure, not allowed in runtime."
		x += y
		return x + y
	}
}
