// errorcheck

// Copyright 2011 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.

// Test that len non-constants are not constants, http://golang.org/issue/3244.

package p

var b struct {
	a[10]int
}

var m map[string][20]int

var s [][30]int

func f() *[40]int
var c chan *[50]int
var z complex128

const (
	n1 = len(b.a)
	n2 = len(m[""])
	n3 = len(s[10])

	n4 = len(f())  // ERROR "is not a constant|is not constant"
	n5 = len(<-c) // ERROR "is not a constant|is not constant"

	n6 = cap(f())  // ERROR "is not a constant|is not constant"
	n7 = cap(<-c) // ERROR "is not a constant|is not constant"
	n8 = real(z) // ERROR "is not a constant|is not constant"
	n9 = len([4]float64{real(z)}) // ERROR "is not a constant|is not constant"

)

