// errchk $G -e $D/$F.go

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

func main() {
	var n byte;	// ERROR "not a type"
	var y = float(0);	// ERROR "cannot call"
	const (
		a = 1+iota;	// ERROR "string"
	)

}

const (
	bool = 1;
	byte = 2;
	float = 3;
	float32 = 4;
	float64 = 5;
	int = 6;
	int8 = 7;
	int16 = 8;
	int32 = 9;
	int64 = 10;
	uint = 11;
	uint8 = 12;
	uint16 = 13;
	uint32 = 14;
	uint64 = 15;
	uintptr = 16;
	true = 17;
	false = 18;
	iota = "abc";
	nil = 20;
	cap = 21;
	len = 22;
	make = 23;
	new = 24;
	panic = 25;
	panicln = 26;
	print = 27;
	println = 28;
)

