| // errorcheck | |
| // Copyright 2020 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 "cannot assign" errors | |
| package main | |
| func main() { | |
| var s string = "hello" | |
| s[1:2] = "a" // ERROR "cannot assign to .* (\(strings are immutable\))?" | |
| s[3] = "b" // ERROR "cannot assign to .* (\(strings are immutable\))?" | |
| const n int = 1 | |
| const cs string = "hello" | |
| n = 2 // ERROR "cannot assign to .* (\(declared const\))?" | |
| cs = "hi" // ERROR "cannot assign to .* (\(declared const\))?" | |
| true = false // ERROR "cannot assign to .* (\(declared const\))?" | |
| var m map[int]struct{ n int } | |
| m[0].n = 7 // ERROR "cannot assign to struct field .* in map$" | |
| 1 = 7 // ERROR "cannot assign to 1" | |
| "hi" = 7 // ERROR `cannot assign to "hi"` | |
| nil = 7 // ERROR "cannot assign to nil" | |
| len("") = 7 // ERROR `cannot assign to len\(""\)` | |
| []int{} = nil // ERROR "cannot assign to \[\]int\{\}" | |
| var x int = 7 | |
| x + 1 = 7 // ERROR "cannot assign to x \+ 1" | |
| } |