// $G $D/$F.go && $L $F.$A && ./$A.out >/dev/null 2>&1 || echo BUG: bug206

// Copyright 2009 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

import "go/ast";

func g(list []ast.Expr) {
	n := len(list)-1;
	println(list[n].Pos().Line);
}


// f is the same as g except that the expression assigned to n is inlined.
func f(list []ast.Expr) {
	// n := len(list)-1;
	println(list[len(list)-1 /* n */].Pos().Line);
}


func main() {
	list := []ast.Expr{&ast.Ident{}};
	g(list);  // this works
	f(list);  // this doesn't
}


/*
0
throw: index out of range

panic PC=0x2bcf10
throw+0x33 /home/gri/go/src/pkg/runtime/runtime.c:71
	throw(0x470f8, 0x0)
sys·throwindex+0x1c /home/gri/go/src/pkg/runtime/runtime.c:45
	sys·throwindex()
main·f+0x26 /home/gri/go/test/bugs/bug206.go:16
	main·f(0x2b9560, 0x0)
main·main+0xc3 /home/gri/go/test/bugs/bug206.go:23
	main·main()
mainstart+0xf /home/gri/go/src/pkg/runtime/amd64/asm.s:55
	mainstart()
goexit /home/gri/go/src/pkg/runtime/proc.c:133
	goexit()
*/
