codekingpro/portable-devtools
114k
1// run2 3// Copyright 2021 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 7package main8 9import (10 "fmt"11)12 13type Numeric interface {14 int32 | int64 | float64 | complex6415}16 17//go:noline18func inc[T Numeric](x T) T {19 x++20 return x21}22func 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}33 