forked from golang/go
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: add test cases for issue47892.
This issue has been fixed in https://golang.org/cl/345411 Fixes: golang#47892 Change-Id: I13dd3814650913da065e5f24a0c61d30adb0633a Reviewed-on: https://go-review.googlesource.com/c/go/+/345229 Reviewed-by: Dan Scales <[email protected]> Trust: Dan Scales <[email protected]> Trust: Keith Randall <[email protected]> Trust: Alberto Donizetti <[email protected]> Run-TryBot: Alberto Donizetti <[email protected]> TryBot-Result: Go Bot <[email protected]>
- Loading branch information
1 parent
f4cd001
commit f29abcc
Showing
6 changed files
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// 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 | ||
|
||
type Index[T any] interface { | ||
G() T | ||
} | ||
|
||
type I1[T any] struct { | ||
a T | ||
} | ||
|
||
func (i *I1[T]) G() T { | ||
return i.a | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// 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 main | ||
|
||
import "a" | ||
|
||
type Model[T any] struct { | ||
index a.Index[T] | ||
} | ||
|
||
func NewModel[T any](index a.Index[T]) Model[T] { | ||
return Model[T]{ | ||
index: index, | ||
} | ||
} | ||
|
||
func main() { | ||
_ = NewModel[int]((*a.I1[int])(nil)) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// rundir -G=3 | ||
|
||
// 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 ignored |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// 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 | ||
|
||
type T struct{ p *int64 } | ||
|
||
type i struct{} | ||
|
||
func G() *T { return &T{nil} } | ||
|
||
func (j i) F(a, b *T) *T { | ||
n := *a.p + *b.p | ||
return &T{&n} | ||
} | ||
|
||
func (j i) G() *T { | ||
return &T{} | ||
} | ||
|
||
type I[Idx any] interface { | ||
G() Idx | ||
F(a, b Idx) Idx | ||
} | ||
|
||
func Gen() I[*T] { | ||
return i{} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// 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 main | ||
|
||
import "a" | ||
|
||
type S[Idx any] struct { | ||
A string | ||
B Idx | ||
} | ||
|
||
type O[Idx any] struct { | ||
A int | ||
B a.I[Idx] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// compiledir -G=3 | ||
|
||
// 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 ignored |