//gofmt -s

// Test cases for slice expression simplification.
// Because of a dot import, these slices must remain untouched.
package p

import . "math"

var (
	a [10]byte
	b [20]float32
	s []int
	t struct {
		s []byte
	}

	_ = a[0:]
	_ = a[1:10]
	_ = a[2:len(a)]
	_ = a[3:(len(a))]
	_ = a[len(a) : len(a)-1]
	_ = a[0:len(b)]

	_ = a[:]
	_ = a[:10]
	_ = a[:len(a)]
	_ = a[:(len(a))]
	_ = a[:len(a)-1]
	_ = a[:len(b)]

	_ = s[0:]
	_ = s[1:10]
	_ = s[2:len(s)]
	_ = s[3:(len(s))]
	_ = s[len(a) : len(s)-1]
	_ = s[0:len(b)]

	_ = s[:]
	_ = s[:10]
	_ = s[:len(s)]
	_ = s[:(len(s))]
	_ = s[:len(s)-1]
	_ = s[:len(b)]

	_ = t.s[0:]
	_ = t.s[1:10]
	_ = t.s[2:len(t.s)]
	_ = t.s[3:(len(t.s))]
	_ = t.s[len(a) : len(t.s)-1]
	_ = t.s[0:len(b)]

	_ = t.s[:]
	_ = t.s[:10]
	_ = t.s[:len(t.s)]
	_ = t.s[:(len(t.s))]
	_ = t.s[:len(t.s)-1]
	_ = t.s[:len(b)]
)

func _() {
	s := s[0:len(s)]
	_ = s
}