summaryrefslogtreecommitdiffstats
path: root/src/internal/types/testdata/fixedbugs/issue57522.go
blob: d83e5b2443e1aa14fa99911606f4836d179f3ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Copyright 2023 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

// A simplified version of the code in the original report.
type S[T any] struct{}
var V = S[any]{}
func (fs *S[T]) M(V.M /* ERROR "V.M is not a type" */) {}

// Other minimal reproducers.
type S1[T any] V1.M /* ERROR "V1.M is not a type" */
type V1 = S1[any]

type S2[T any] struct{}
type V2 = S2[any]
func (fs *S2[T]) M(x V2.M /* ERROR "V2.M is not a type" */ ) {}

// The following still panics, as the selector is reached from check.expr
// rather than check.typexpr. TODO(rfindley): fix this.
// type X[T any] int
// func (X[T]) M(x [X[int].M]int) {}