Server : LiteSpeed System : Linux in-mum-web1333.main-hosting.eu 4.18.0-553.37.1.lve.el8.x86_64 #1 SMP Mon Feb 10 22:45:17 UTC 2025 x86_64 User : u141265441 ( 141265441) PHP Version : 8.4.3 Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail Directory : /proc/self/root/opt/golang/1.22.0/test/typeparam/issue49027.dir/ |
// 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 a
func Conv(v interface{}) string {
return conv[string](v)
}
func conv[T any](v interface{}) T {
return v.(T)
}
func Conv2(v interface{}) (string, bool) {
return conv2[string](v)
}
func conv2[T any](v interface{}) (T, bool) {
x, ok := v.(T)
return x, ok
}
func Conv3(v interface{}) string {
return conv3[string](v)
}
func conv3[T any](v interface{}) T {
switch v := v.(type) {
case T:
return v
default:
var z T
return z
}
}
type Mystring string
func (Mystring) Foo() {
}
func Conv4(v interface{Foo()}) Mystring {
return conv4[Mystring](v)
}
func conv4[T interface{Foo()}](v interface{Foo()}) T {
switch v := v.(type) {
case T:
return v
default:
var z T
return z
}
}