// compile

// 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 rune constants, expressions and types.
// Compiles but does not run.

package rune

var (
	r0 = 'a'
	r1 = 'a'+1
	r2 = 1+'a'
	r3 = 'a'*2
	r4 = 'a'/2
	r5 = 'a'<<1
	r6 = 'b'<<2
	r7 int32

	r = []rune{r0, r1, r2, r3, r4, r5, r6, r7}
)

var (
	f0 = 1.2
	f1 = 1.2/'a'

	f = []float64{f0, f1}
)

var (
	i0 = 1
	i1 = 1<<'\x01'
	
	i = []int{i0, i1}
)

const (
	maxRune = '\U0010FFFF'
)

var (
	b0 = maxRune < r0
	
	b = []bool{b0}
)
