| // Copyright 2021 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. |
| |
| package p |
| |
| type integer interface { |
| ~int | ~int8 | ~int16 | ~int32 | ~int64 | |
| ~uint | ~uint8 | ~uint16 | ~uint32 | ~uint64 | ~uintptr |
| } |
| |
| func Add1024[T integer](s []T) { |
| for i, v := range s { |
| s[i] = v + 1024 // ERROR "cannot convert 1024 (untyped int constant) to type T" |
| } |
| } |
| |
| func f[T interface{ int8 }]() { |
| println(T(1024 /* ERROR "cannot convert 1024 (untyped int value) to type T" */)) |
| } |