Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/compile: depth limit reached in type formatting routine #29312

Open
griesemer opened this issue Dec 17, 2018 · 3 comments

Comments

@griesemer
Copy link
Contributor

commented Dec 17, 2018

Place holder issue for cases of overly deep types or (invalid) recursive types. See #29264 for an example.

@griesemer griesemer added this to the Unplanned milestone Dec 17, 2018

@griesemer griesemer self-assigned this Dec 17, 2018

@gopherbot

This comment has been minimized.

Copy link

commented Dec 17, 2018

Change https://golang.org/cl/154583 mentions this issue: cmd/compile: increase nesting depth limit for type descriptors

@griesemer griesemer modified the milestones: Unplanned, Go1.13 Dec 17, 2018

@griesemer

This comment has been minimized.

Copy link
Contributor Author

commented Dec 17, 2018

A recursive type where we currently fail:

type T interface {
	M(interface {
		T
	})
}

(from #16369).

gopherbot pushed a commit that referenced this issue Dec 18, 2018

cmd/compile: increase nesting depth limit for type descriptors
The formatting routines for types use a depth limit as primitive
mechanism to detect cycles. For now, increase the limit from 100
to 250 and file #29312 so we don't drop this on the floor.

Also, adjust some fatal error messages elsewhere to use
better formatting.

Fixes #29264.
Updates #29312.

Change-Id: Idd529f6682d478e0dcd2d469cb802192190602f6
Reviewed-on: https://go-review.googlesource.com/c/154583
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>

@griesemer griesemer modified the milestones: Go1.13, Go1.14 May 6, 2019

@ianlancetaylor

This comment has been minimized.

Copy link
Contributor

commented Jun 11, 2019

#32547 is a test case that fails due to the recursion limit, although the test itself does not use recursion. It just uses a very very very deep pointer type.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.