]> Cypherpunks.ru repositories - gostls13.git/blob - test/alias1.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / alias1.go
1 // run
2
3 // Copyright 2011 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 dynamic interface checks treat byte=uint8
8 // and rune=int or rune=int32.
9
10 package main
11
12 func main() {
13         var x interface{}
14
15         x = byte(1)
16         switch x.(type) {
17         case uint8:
18                 // ok
19         default:
20                 panic("byte != uint8")
21         }
22
23         x = uint8(2)
24         switch x.(type) {
25         case byte:
26                 // ok
27         default:
28                 panic("uint8 != byte")
29         }
30
31         rune32 := false
32         x = rune(3)
33         switch x.(type) {
34         case int:
35                 // ok
36         case int32:
37                 // must be new code
38                 rune32 = true
39         default:
40                 panic("rune != int and rune != int32")
41         }
42
43         if rune32 {
44                 x = int32(4)
45         } else {
46                 x = int(5)
47         }
48         switch x.(type) {
49         case rune:
50                 // ok
51         default:
52                 panic("int (or int32) != rune")
53         }
54 }