Initial commit: Go 1.23 release state
This commit is contained in:
37
test/const3.go
Normal file
37
test/const3.go
Normal file
@@ -0,0 +1,37 @@
|
||||
// run
|
||||
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Test typed integer constants.
|
||||
|
||||
package main
|
||||
|
||||
import "fmt"
|
||||
|
||||
type T int
|
||||
|
||||
func (t T) String() string { return fmt.Sprintf("T%d", int(t)) }
|
||||
|
||||
const (
|
||||
A T = 1 << (1 << iota)
|
||||
B
|
||||
C
|
||||
D
|
||||
E
|
||||
)
|
||||
|
||||
func main() {
|
||||
s := fmt.Sprintf("%v %v %v %v %v", A, B, C, D, E)
|
||||
if s != "T2 T4 T16 T256 T65536" {
|
||||
println("type info didn't propagate in const: got", s)
|
||||
panic("fail")
|
||||
}
|
||||
x := uint(5)
|
||||
y := float64(uint64(1)<<x) // used to fail to compile
|
||||
if y != 32 {
|
||||
println("wrong y", y)
|
||||
panic("fail")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user