]> Cypherpunks.ru repositories - gostls13.git/blob - test/cannotassign.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / cannotassign.go
1 // errorcheck
2
3 // Copyright 2020 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.
6
7 // Test "cannot assign" errors
8
9 package main
10
11 func main() {
12         var s string = "hello"
13         s[1:2] = "a" // ERROR "cannot assign to .* (\(strings are immutable\))?"
14         s[3] = "b"   // ERROR "cannot assign to .* (\(strings are immutable\))?"
15
16         const n int = 1
17         const cs string = "hello"
18         n = 2        // ERROR "cannot assign to .* (\(declared const\))?"
19         cs = "hi"    // ERROR "cannot assign to .* (\(declared const\))?"
20         true = false // ERROR "cannot assign to .* (\(declared const\))?"
21
22         var m map[int]struct{ n int }
23         m[0].n = 7 // ERROR "cannot assign to struct field .* in map$"
24
25         1 = 7         // ERROR "cannot assign to 1"
26         "hi" = 7      // ERROR `cannot assign to "hi"`
27         nil = 7       // ERROR "cannot assign to nil"
28         len("") = 7   // ERROR `cannot assign to len\(""\)`
29         []int{} = nil // ERROR "cannot assign to \[\]int\{\}"
30
31         var x int = 7
32         x + 1 = 7 // ERROR "cannot assign to x \+ 1"
33 }