Initial commit: Go 1.23 release state
This commit is contained in:
24
test/fixedbugs/issue49143.dir/a.go
Normal file
24
test/fixedbugs/issue49143.dir/a.go
Normal file
@@ -0,0 +1,24 @@
|
||||
// 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
|
||||
|
||||
import "sync"
|
||||
|
||||
type Loader[K comparable, R any] struct {
|
||||
batch *LoaderBatch[K, R]
|
||||
}
|
||||
|
||||
func (l *Loader[K, R]) Load() error {
|
||||
l.batch.f()
|
||||
return nil
|
||||
}
|
||||
|
||||
type LoaderBatch[K comparable, R any] struct {
|
||||
once *sync.Once
|
||||
}
|
||||
|
||||
func (b *LoaderBatch[K, R]) f() {
|
||||
b.once.Do(func() {})
|
||||
}
|
||||
16
test/fixedbugs/issue49143.dir/b.go
Normal file
16
test/fixedbugs/issue49143.dir/b.go
Normal file
@@ -0,0 +1,16 @@
|
||||
// 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 b
|
||||
|
||||
import "./a"
|
||||
|
||||
|
||||
type Loaders struct {
|
||||
Loader *a.Loader[int, int]
|
||||
}
|
||||
|
||||
func NewLoaders() *Loaders {
|
||||
return new(Loaders)
|
||||
}
|
||||
15
test/fixedbugs/issue49143.dir/c.go
Normal file
15
test/fixedbugs/issue49143.dir/c.go
Normal file
@@ -0,0 +1,15 @@
|
||||
// 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 c
|
||||
|
||||
import "./b"
|
||||
|
||||
type Resolver struct{}
|
||||
|
||||
type todoResolver struct{ *Resolver }
|
||||
|
||||
func (r *todoResolver) F() {
|
||||
b.NewLoaders().Loader.Load()
|
||||
}
|
||||
11
test/fixedbugs/issue49143.dir/p.go
Normal file
11
test/fixedbugs/issue49143.dir/p.go
Normal file
@@ -0,0 +1,11 @@
|
||||
// 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 p
|
||||
|
||||
import (
|
||||
"./c"
|
||||
)
|
||||
|
||||
var _ = &c.Resolver{}
|
||||
Reference in New Issue
Block a user