// errorcheck

// Copyright 2013 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 p

var array *[10]int
var slice []int
var str string
var i, j, k int

func f() {
	// check what missing arguments are allowed
	_ = array[:]
	_ = array[i:]
	_ = array[:j]
	_ = array[i:j]
	_ = array[::] // ERROR "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = array[i::] // ERROR "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = array[:j:] // ERROR "final index required in 3-index slice"
	_ = array[i:j:] // ERROR "final index required in 3-index slice"
	_ = array[::k] // ERROR "middle index required in 3-index slice"
	_ = array[i::k] // ERROR "middle index required in 3-index slice"
	_ = array[:j:k]
	_ = array[i:j:k]
	
	_ = slice[:]
	_ = slice[i:]
	_ = slice[:j]
	_ = slice[i:j]
	_ = slice[::] // ERROR "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = slice[i::] // ERROR "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = slice[:j:] // ERROR "final index required in 3-index slice"
	_ = slice[i:j:] // ERROR "final index required in 3-index slice"
	_ = slice[::k] // ERROR "middle index required in 3-index slice"
	_ = slice[i::k] // ERROR "middle index required in 3-index slice"
	_ = slice[:j:k]
	_ = slice[i:j:k]
	
	_ = str[:]
	_ = str[i:]
	_ = str[:j]
	_ = str[i:j]
	_ = str[::] // ERROR "3-index slice of string" "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = str[i::] // ERROR "3-index slice of string" "middle index required in 3-index slice" "final index required in 3-index slice"
	_ = str[:j:] // ERROR "3-index slice of string" "final index required in 3-index slice"
	_ = str[i:j:] // ERROR "3-index slice of string" "final index required in 3-index slice"
	_ = str[::k] // ERROR "3-index slice of string" "middle index required in 3-index slice"
	_ = str[i::k] // ERROR "3-index slice of string" "middle index required in 3-index slice"
	_ = str[:j:k] // ERROR "3-index slice of string"
	_ = str[i:j:k] // ERROR "3-index slice of string"

	// check invalid indices
	_ = array[1:2]
	_ = array[2:1] // ERROR "invalid slice index|inverted slice"
	_ = array[2:2]
	_ = array[i:1]
	_ = array[1:j]
	_ = array[1:2:3]
	_ = array[1:3:2] // ERROR "invalid slice index|inverted slice"
	_ = array[2:1:3] // ERROR "invalid slice index|inverted slice"
	_ = array[2:3:1] // ERROR "invalid slice index|inverted slice"
	_ = array[3:1:2] // ERROR "invalid slice index|inverted slice"
	_ = array[3:2:1] // ERROR "invalid slice index|inverted slice"
	_ = array[i:1:2]
	_ = array[i:2:1] // ERROR "invalid slice index|inverted slice"
	_ = array[1:j:2]
	_ = array[2:j:1] // ERROR "invalid slice index"
	_ = array[1:2:k]
	_ = array[2:1:k] // ERROR "invalid slice index|inverted slice"
	
	_ = slice[1:2]
	_ = slice[2:1] // ERROR "invalid slice index|inverted slice"
	_ = slice[2:2]
	_ = slice[i:1]
	_ = slice[1:j]
	_ = slice[1:2:3]
	_ = slice[1:3:2] // ERROR "invalid slice index|inverted slice"
	_ = slice[2:1:3] // ERROR "invalid slice index|inverted slice"
	_ = slice[2:3:1] // ERROR "invalid slice index|inverted slice"
	_ = slice[3:1:2] // ERROR "invalid slice index|inverted slice"
	_ = slice[3:2:1] // ERROR "invalid slice index|inverted slice"
	_ = slice[i:1:2]
	_ = slice[i:2:1] // ERROR "invalid slice index|inverted slice"
	_ = slice[1:j:2]
	_ = slice[2:j:1] // ERROR "invalid slice index"
	_ = slice[1:2:k]
	_ = slice[2:1:k] // ERROR "invalid slice index|inverted slice"
	
	_ = str[1:2]
	_ = str[2:1] // ERROR "invalid slice index|inverted slice"
	_ = str[2:2]
	_ = str[i:1]
	_ = str[1:j]

	// check out of bounds indices on array
	_ = array[11:11] // ERROR "out of bounds"
	_ = array[11:12] // ERROR "out of bounds"
	_ = array[11:] // ERROR "out of bounds"
	_ = array[:11] // ERROR "out of bounds"
	_ = array[1:11] // ERROR "out of bounds"
	_ = array[1:11:12] // ERROR "out of bounds"
	_ = array[1:2:11] // ERROR "out of bounds"
	_ = array[1:11:3] // ERROR "out of bounds|invalid slice index"
	_ = array[11:2:3] // ERROR "out of bounds|inverted slice|invalid slice index"
	_ = array[11:12:13] // ERROR "out of bounds"

	// slice bounds not checked
	_ = slice[11:11]
	_ = slice[11:12]
	_ = slice[11:]
	_ = slice[:11]
	_ = slice[1:11]
	_ = slice[1:11:12]
	_ = slice[1:2:11]
	_ = slice[1:11:3] // ERROR "invalid slice index"
	_ = slice[11:2:3] // ERROR "invalid slice index|inverted slice"
	_ = slice[11:12:13]
}
