...
Run Format

Text file src/cmd/compile/testdata/script/issue75461.txt

Documentation: cmd/compile/testdata/script

     1go build main.go
     2! stdout .
     3! stderr .
     4
     5-- main.go --
     6package main
     7
     8import (
     9	"demo/registry"
    10)
    11
    12func main() {
    13	_ = registry.NewUserRegistry()
    14}
    15
    16-- go.mod --
    17module demo
    18
    19go 1.24
    20
    21-- model/user.go --
    22package model
    23
    24type User struct {
    25	ID int
    26}
    27
    28func (c *User) String() string {
    29	return ""
    30}
    31
    32-- ordered/map.go --
    33package ordered
    34
    35type OrderedMap[K comparable, V any] struct {
    36	m map[K]V
    37}
    38
    39func New[K comparable, V any](options ...any) *OrderedMap[K, V] {
    40	orderedMap := &OrderedMap[K, V]{}
    41	return orderedMap
    42}
    43
    44-- registry/user.go --
    45package registry
    46
    47import (
    48	"demo/model"
    49	"demo/ordered"
    50)
    51
    52type baseRegistry = Registry[model.User, *model.User]
    53
    54type UserRegistry struct {
    55	*baseRegistry
    56}
    57
    58type Registry[T any, P PStringer[T]] struct {
    59	m *ordered.OrderedMap[string, P]
    60}
    61
    62type PStringer[T any] interface {
    63	*T
    64	String() string
    65}
    66
    67func NewRegistry[T any, P PStringer[T]]() *Registry[T, P] {
    68	r := &Registry[T, P]{
    69		m: ordered.New[string, P](),
    70	}
    71	return r
    72}
    73
    74func NewUserRegistry() *UserRegistry {
    75	return &UserRegistry{
    76		baseRegistry: NewRegistry[model.User](),
    77	}
    78}

View as plain text