mirror of
https://github.com/golang/go
synced 2024-09-30 16:08:36 -06:00
The Go programming language
897f6677ae
The Uses, Defs and Scope information provided by go/types is inadequate for answering "what if?" queries about the structure of the lexical environment. In this code, for example, var x int func f() { print(x) x := "" print(x) } the two referring Idents x appear at the same lexical depth, inside the function f's Scope object, yet they resolve to different objects. This package associates a lexical.Environment instance with every reference to capture these differences. Each environment is a linked list of enclosing Blocks, and for each block, a number indicating what prefix of its bindings are visible. (Zero for the first 'x' reference above, 1 for the second.) + Smoke test over stdlib. This functionality could be integrated with the type checker in lieu of the not-so-useful types.Info.Scopes data, at little extra cost in code or in running time/space. We should talk about that. LGTM=sameer R=gri, sameer CC=golang-codereviews https://golang.org/cl/143790043 |
||
---|---|---|
astutil | ||
blog | ||
cmd | ||
container/intsets | ||
cover | ||
dashboard | ||
go | ||
godoc | ||
imports | ||
oracle | ||
playground | ||
present | ||
refactor | ||
.hgignore | ||
AUTHORS | ||
codereview.cfg | ||
CONTRIBUTORS | ||
LICENSE | ||
PATENTS | ||
README |
This subrepository holds the source for various packages and tools that support the Go programming language. Some of the tools, godoc and vet for example, are included in binary Go distributions. Others, including the Go oracle and the test coverage tool, can be fetched with "go get". Packages include a type-checker for Go and an implementation of the Static Single Assignment form (SSA) representation for Go programs. To submit changes to this repository, see http://golang.org/doc/contribute.html.