]> Cypherpunks.ru repositories - gostls13.git/blob - test/typeparam/issue47258.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / typeparam / issue47258.go
1 // run
2
3 // Copyright 2021 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 package main
8
9 import (
10         "fmt"
11 )
12
13 type Numeric interface {
14         int32 | int64 | float64 | complex64
15 }
16
17 //go:noline
18 func inc[T Numeric](x T) T {
19         x++
20         return x
21 }
22 func main() {
23         if got, want := inc(int32(5)), int32(6); got != want {
24                 panic(fmt.Sprintf("got %d, want %d", got, want))
25         }
26         if got, want := inc(float64(5)), float64(6.0); got != want {
27                 panic(fmt.Sprintf("got %d, want %d", got, want))
28         }
29         if got, want := inc(complex64(5)), complex64(6.0); got != want {
30                 panic(fmt.Sprintf("got %d, want %d", got, want))
31         }
32 }