3 // Copyright 2013 The Go Authors. All rights reserved.
4 // Use of this source code is governed by a BSD-style
5 // license that can be found in the LICENSE file.
15 // check what missing arguments are allowed
20 _ = array[::] // ERROR "middle index required in 3-index slice|invalid slice indices" "final index required in 3-index slice"
21 _ = array[i::] // ERROR "middle index required in 3-index slice|invalid slice indices" "final index required in 3-index slice"
22 _ = array[:j:] // ERROR "final index required in 3-index slice|invalid slice indices"
23 _ = array[i:j:] // ERROR "final index required in 3-index slice|invalid slice indices"
24 _ = array[::k] // ERROR "middle index required in 3-index slice|invalid slice indices"
25 _ = array[i::k] // ERROR "middle index required in 3-index slice|invalid slice indices"
33 _ = slice[::] // ERROR "middle index required in 3-index slice|invalid slice indices" "final index required in 3-index slice"
34 _ = slice[i::] // ERROR "middle index required in 3-index slice|invalid slice indices" "final index required in 3-index slice"
35 _ = slice[:j:] // ERROR "final index required in 3-index slice|invalid slice indices"
36 _ = slice[i:j:] // ERROR "final index required in 3-index slice|invalid slice indices"
37 _ = slice[::k] // ERROR "middle index required in 3-index slice|invalid slice indices"
38 _ = slice[i::k] // ERROR "middle index required in 3-index slice|invalid slice indices"
46 _ = str[::] // ERROR "3-index slice of string" "middle index required in 3-index slice" "final index required in 3-index slice"
47 _ = str[i::] // ERROR "3-index slice of string" "middle index required in 3-index slice" "final index required in 3-index slice"
48 _ = str[:j:] // ERROR "3-index slice of string" "final index required in 3-index slice"
49 _ = str[i:j:] // ERROR "3-index slice of string" "final index required in 3-index slice"
50 _ = str[::k] // ERROR "3-index slice of string" "middle index required in 3-index slice"
51 _ = str[i::k] // ERROR "3-index slice of string" "middle index required in 3-index slice"
52 _ = str[:j:k] // ERROR "3-index slice of string"
53 _ = str[i:j:k] // ERROR "3-index slice of string"
55 // check invalid indices
57 _ = array[2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
62 _ = array[1:3:2] // ERROR "invalid slice index|invalid slice indices|inverted slice"
63 _ = array[2:1:3] // ERROR "invalid slice index|invalid slice indices|inverted slice"
64 _ = array[2:3:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
65 _ = array[3:1:2] // ERROR "invalid slice index|invalid slice indices|inverted slice"
66 _ = array[3:2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
68 _ = array[i:2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
70 _ = array[2:j:1] // ERROR "invalid slice index|invalid slice indices"
72 _ = array[2:1:k] // ERROR "invalid slice index|invalid slice indices|inverted slice"
75 _ = slice[2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
80 _ = slice[1:3:2] // ERROR "invalid slice index|invalid slice indices|inverted slice"
81 _ = slice[2:1:3] // ERROR "invalid slice index|invalid slice indices|inverted slice"
82 _ = slice[2:3:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
83 _ = slice[3:1:2] // ERROR "invalid slice index|invalid slice indices|inverted slice"
84 _ = slice[3:2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
86 _ = slice[i:2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
88 _ = slice[2:j:1] // ERROR "invalid slice index|invalid slice indices"
90 _ = slice[2:1:k] // ERROR "invalid slice index|invalid slice indices|inverted slice"
93 _ = str[2:1] // ERROR "invalid slice index|invalid slice indices|inverted slice"
98 // check out of bounds indices on array
99 _ = array[11:11] // ERROR "out of bounds"
100 _ = array[11:12] // ERROR "out of bounds"
101 _ = array[11:] // ERROR "out of bounds"
102 _ = array[:11] // ERROR "out of bounds"
103 _ = array[1:11] // ERROR "out of bounds"
104 _ = array[1:11:12] // ERROR "out of bounds"
105 _ = array[1:2:11] // ERROR "out of bounds"
106 _ = array[1:11:3] // ERROR "out of bounds|invalid slice index"
107 _ = array[11:2:3] // ERROR "out of bounds|inverted slice|invalid slice index"
108 _ = array[11:12:13] // ERROR "out of bounds"
110 // slice bounds not checked
118 _ = slice[1:11:3] // ERROR "invalid slice index|invalid slice indices"
119 _ = slice[11:2:3] // ERROR "invalid slice index|invalid slice indices|inverted slice"