]> Cypherpunks.ru repositories - gostls13.git/blob - test/named1.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / named1.go
1 // errorcheck
2
3 // Copyright 2009 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 that basic operations on named types are valid
8 // and preserve the type.
9 // Does not compile.
10
11 package main
12
13 type Bool bool
14
15 type Map map[int]int
16
17 func (Map) M() {}
18
19 type Slice []byte
20
21 var slice Slice
22
23 func asBool(Bool)     {}
24 func asString(String) {}
25
26 type String string
27
28 func main() {
29         var (
30                 b    Bool = true
31                 i, j int
32                 c    = make(chan int)
33                 m    = make(Map)
34         )
35
36         asBool(b)
37         asBool(!b)
38         asBool(true)
39         asBool(*&b)
40         asBool(Bool(true))
41         asBool(1 != 2) // ok now
42         asBool(i < j)  // ok now
43
44         _, b = m[2] // ok now
45
46         var inter interface{}
47         _, b = inter.(Map) // ok now
48         _ = b
49
50         var minter interface {
51                 M()
52         }
53         _, b = minter.(Map) // ok now
54         _ = b
55
56         _, bb := <-c
57         asBool(bb) // ERROR "cannot use.*type bool.*as type Bool|cannot use bb"
58         _, b = <-c // ok now
59         _ = b
60
61         asString(String(slice)) // ok
62 }