1// run
2
3// Copyright 2016 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7package main
8
9import "runtime"
10
11func main() {
12	var file string
13	var line int
14	func() {
15		defer func() {
16			_, file, line, _ = runtime.Caller(1)
17		}()
18	}() // this is the expected line
19	const EXPECTED = 18
20	if line != EXPECTED {
21		println("Expected line =", EXPECTED, "but got line =", line, "and file =", file)
22	}
23}
24