1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:44:45 -07:00
The Go programming language
Go to file
Alan Donovan d7a9805478 go.tools/pointer: use assignable not identical type predicate in reflect.{Send,SetMapIndex,etc}
Various reflect operations permit assignability conversions,
i.e. their internals behave unlike y=x.(T) which unpacks only
those interface values in x that are identical to T.

We split typeAssertConstraint y=x.(T) into two constraints:
1) typeFilter, for when T is an interface type and no
   representation change occurs.
2) unpack, for when T is a concrete type and the payload of the
   tagged object is extracted.  This constraint has an 'exact'
   parameter indicating whether to use the predicate
   IsIdentical (for type assertions) or
   IsAssignable (for reflect operators).

+ Tests.

R=crawshaw
CC=golang-dev
https://golang.org/cl/14547043
2013-10-14 13:53:41 -04:00
blog go.tools/blog: replace "\\" with "/" in path string to be compatible with windows platform 2013-10-08 16:55:56 +11:00
call go.tools/pointer: use new callgraph API. 2013-09-25 17:17:42 -04:00
cmd go.tools/cmd/cover: for range loops might contain function literals 2013-10-11 10:32:36 -07:00
dashboard go.tools/dashboard: clone main repo from local path if it already exists locally. 2013-10-07 09:06:32 -07:00
go go.tools/go/types: fix recorded type for append(s, "foo"...) 2013-10-11 14:27:44 -07:00
godoc go.tools/godoc/static: fix & escape in codewalks 2013-10-13 22:22:48 -04:00
importer go.tools/importer: delete BuiltinCallSignature 2013-10-11 12:26:31 -07:00
oracle go.tools: clear DeclarationErrors flag; it's redundant w.r.t go/types checking. 2013-10-08 10:34:36 -04:00
playground go.tools/playground/socket: move package from go.talks 2013-09-19 10:59:00 +10:00
pointer go.tools/pointer: use assignable not identical type predicate in reflect.{Send,SetMapIndex,etc} 2013-10-14 13:53:41 -04:00
present present/code.go: remove residual file from an hg merge. 2013-10-02 11:02:33 +10:00
ssa go.tools/ssa: unexport Register. 2013-10-14 13:48:34 -04:00
.hgignore go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README go.tools/README: update to make truthful 2013-10-09 11:47:05 -07:00

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 Single Static
Assignment (SSA) representation for Go programs.

To submit changes to this repository, see http://golang.org/doc/contribute.html.