]> Cypherpunks.ru repositories - gostls13.git/blob - test/typeparam/adder.go
cmd/compile/internal/inline: score call sites exposed by inlines
[gostls13.git] / test / typeparam / adder.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 AddType interface {
14         int | int64 | string
15 }
16
17 // Add can add numbers or strings
18 func Add[T AddType](a, b T) T {
19         return a + b
20 }
21
22 func main() {
23         if got, want := Add(5, 3), 8; got != want {
24                 panic(fmt.Sprintf("got %d, want %d", got, want))
25         }
26         if got, want := Add("ab", "cd"), "abcd"; got != want {
27                 panic(fmt.Sprintf("got %d, want %d", got, want))
28         }
29 }