github.com/JimmyHuang454/JLS-go@v0.0.0-20230831150107-90d536585ba0/internal/types/testdata/fixedbugs/issue57522.go (about)

     1  // Copyright 2023 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package p
     6  
     7  // A simplified version of the code in the original report.
     8  type S[T any] struct{}
     9  var V = S[any]{}
    10  func (fs *S[T]) M(V.M /* ERROR "V.M is not a type" */) {}
    11  
    12  // Other minimal reproducers.
    13  type S1[T any] V1.M /* ERROR "V1.M is not a type" */
    14  type V1 = S1[any]
    15  
    16  type S2[T any] struct{}
    17  type V2 = S2[any]
    18  func (fs *S2[T]) M(x V2.M /* ERROR "V2.M is not a type" */ ) {}
    19  
    20  // The following still panics, as the selector is reached from check.expr
    21  // rather than check.typexpr. TODO(rfindley): fix this.
    22  // type X[T any] int
    23  // func (X[T]) M(x [X[int].M]int) {}
    24