summaryrefslogtreecommitdiffstats
path: root/test/fixedbugs/issue49143.dir
diff options
context:
space:
mode:
Diffstat (limited to 'test/fixedbugs/issue49143.dir')
-rw-r--r--test/fixedbugs/issue49143.dir/a.go24
-rw-r--r--test/fixedbugs/issue49143.dir/b.go16
-rw-r--r--test/fixedbugs/issue49143.dir/c.go15
-rw-r--r--test/fixedbugs/issue49143.dir/p.go11
4 files changed, 66 insertions, 0 deletions
diff --git a/test/fixedbugs/issue49143.dir/a.go b/test/fixedbugs/issue49143.dir/a.go
new file mode 100644
index 0000000..5aefcd8
--- /dev/null
+++ b/test/fixedbugs/issue49143.dir/a.go
@@ -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() {})
+}
diff --git a/test/fixedbugs/issue49143.dir/b.go b/test/fixedbugs/issue49143.dir/b.go
new file mode 100644
index 0000000..48eecdb
--- /dev/null
+++ b/test/fixedbugs/issue49143.dir/b.go
@@ -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)
+}
diff --git a/test/fixedbugs/issue49143.dir/c.go b/test/fixedbugs/issue49143.dir/c.go
new file mode 100644
index 0000000..89262e3
--- /dev/null
+++ b/test/fixedbugs/issue49143.dir/c.go
@@ -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()
+}
diff --git a/test/fixedbugs/issue49143.dir/p.go b/test/fixedbugs/issue49143.dir/p.go
new file mode 100644
index 0000000..f11d2f2
--- /dev/null
+++ b/test/fixedbugs/issue49143.dir/p.go
@@ -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{}