Files
golang.go/test/fixedbugs/issue78295.go
Cuong Manh Le b77fdc333a cmd/compile: skip incomplete types in needWrapper
A recursive pointer type *T may still be a TFORW when the compiler
determines if method wrappers are needed. This leads to an incorrect
decision and triggers an internal compiler error.

Fix this by skipping incomplete types during the method wrapper
generation check.

Fixes #78295

Change-Id: I4005e525e9b076c6656aed5419283c0418edcac6
Reviewed-on: https://go-review.googlesource.com/c/go/+/758922
Reviewed-by: Jakub Ciolek <jakub@ciolek.dev>
Auto-Submit: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
2026-03-26 09:01:18 -07:00

21 lines
331 B
Go

// run
// Copyright 2026 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
type B *struct{ A }
type A interface{ m(B) }
type s struct{}
func (s) m(b B) {}
func main() {
var b B = new(struct{ A })
b.A = s{}
(*b).m(b)
}