2018-01-24 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / go.test / test / alias1.go
blob42cf69340963ecd1484ad8ed03096a0c3e721fd3
1 // run
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.
7 // Test that dynamic interface checks treat byte=uint8
8 // and rune=int or rune=int32.
10 package main
12 func main() {
13 var x interface{}
15 x = byte(1)
16 switch x.(type) {
17 case uint8:
18 // ok
19 default:
20 panic("byte != uint8")
23 x = uint8(2)
24 switch x.(type) {
25 case byte:
26 // ok
27 default:
28 panic("uint8 != byte")
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")
43 if rune32 {
44 x = int32(4)
45 } else {
46 x = int(5)
48 switch x.(type) {
49 case rune:
50 // ok
51 default:
52 panic("int (or int32) != rune")