codekingpro/portable-devtools
114k
1// run2 3// Copyright 2011 The Go Authors. All rights reserved.4// Use of this source code is governed by a BSD-style5// license that can be found in the LICENSE file.6 7// Test that dynamic interface checks treat byte=uint88// and rune=int or rune=int32.9 10package main11 12func main() {13 var x interface{}14 15 x = byte(1)16 switch x.(type) {17 case uint8:18 // ok19 default:20 panic("byte != uint8")21 }22 23 x = uint8(2)24 switch x.(type) {25 case byte:26 // ok27 default:28 panic("uint8 != byte")29 }30 31 rune32 := false32 x = rune(3)33 switch x.(type) {34 case int:35 // ok36 case int32:37 // must be new code38 rune32 = true39 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 // ok51 default:52 panic("int (or int32) != rune")53 }54}55 