| // 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" |
| } |