1
0
mirror of https://github.com/golang/go synced 2024-11-24 01:20:08 -07:00
The Go programming language
Go to file
Robert Griesemer 2abfa30f9e go/types, types2: consider type parameters for cycle detection
In validType, when we see an instantiated type, proceed as with
non-generic types but provide an environment in which to look up
the values (the corresponding type arguments) of type parameters
of the instantiated type. For each type parameter for which there
is a type argument, proceed with validating that type argument.
This corresponds to applying validType to the instantiated type
without actually instantiating the type (and running into infinite
instantiations in case of invalid recursive types).

Also, when creating a type instance, use the correct source position
for the instance (the start of the qualified identifier if we have an
imported type).

Fixes #48962.

Change-Id: I196c78bf066e4a56284d53368b2eb71bd8d8a780
Reviewed-on: https://go-review.googlesource.com/c/go/+/379414
Trust: Robert Griesemer <gri@golang.org>
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
2022-01-24 21:27:28 +00:00
.github .github: remove duplicate security link 2022-01-07 17:55:09 +00:00
api api: promote next to go1.18 2021-12-14 17:43:51 +00:00
doc spec: minor formatting and link cleanups 2022-01-21 23:16:33 +00:00
lib/time lib/time, time/tzdata: update to 2021e 2021-11-11 05:16:39 +00:00
misc src/runtime: mark asanread and asanwrite functions as NOSPLIT 2022-01-05 09:50:29 +00:00
src go/types, types2: consider type parameters for cycle detection 2022-01-24 21:27:28 +00:00
test go/types, types2: consider type parameters for cycle detection 2022-01-24 21:27:28 +00:00
.gitattributes
.gitignore
AUTHORS A+C: add Bharath Kumar Uppala (individual CLA) 2021-11-29 00:57:09 +00:00
codereview.cfg
CONTRIBUTING.md
CONTRIBUTORS A+C: add Bharath Kumar Uppala (individual CLA) 2021-11-29 00:57:09 +00:00
LICENSE
PATENTS
README.md README.md: update contribute URL 2021-09-30 13:33:21 +00:00
SECURITY.md

The Go Programming Language

Go is an open source programming language that makes it easy to build simple, reliable, and efficient software.

Gopher image Gopher image by Renee French, licensed under Creative Commons 3.0 Attributions license.

Our canonical Git repository is located at https://go.googlesource.com/go. There is a mirror of the repository at https://github.com/golang/go.

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.

Download and Install

Binary Distributions

Official binary distributions are available at https://golang.org/dl/.

After downloading a binary release, visit https://golang.org/doc/install for installation instructions.

Install From Source

If a binary distribution is not available for your combination of operating system and architecture, visit https://golang.org/doc/install/source for source installation instructions.

Contributing

Go is the work of thousands of contributors. We appreciate your help!

To contribute, please read the contribution guidelines at https://golang.org/doc/contribute.

Note that the Go project uses the issue tracker for bug reports and proposals only. See https://golang.org/wiki/Questions for a list of places to ask questions about the Go language.