1
0
mirror of https://github.com/golang/go synced 2024-10-04 07:21:22 -06:00
go/src
Josh Bleecher Snyder bd2838be77 cmd/compile: use a map to detect duplicate type switch cases
This is a bit simpler than playing sorting games,
and it is clearer that it generates errors
in the correct (source) order.

It also allows us to simplify sorting.

It also prevents quadratic error messages for
(pathological) inputs with many duplicate type cases.

While we’re here, refactoring deduping into separate functions.

Negligible compilebench impact.

Fixes #15912.

Change-Id: I6cc19edd38875389a70ccbdbdf0d9b7d5ac5946f
Reviewed-on: https://go-review.googlesource.com/26762
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2016-08-23 05:17:05 +00:00
..
archive archive/tar: preallocate slice from paxHeaders 2016-08-16 02:46:50 +00:00
bufio
builtin
bytes bytes: add examples 2016-08-16 01:33:32 +00:00
cmd cmd/compile: use a map to detect duplicate type switch cases 2016-08-23 05:17:05 +00:00
compress compress/flate: make huffmanBitWriter errors persistent 2016-08-20 00:36:40 +00:00
container container/list: silence vet warnings 2016-08-16 14:35:37 +00:00
context context: test WithCancel with canceled parent 2016-08-19 20:25:12 +00:00
crypto crypto/*, runtime: nacl asm fixes 2016-08-22 19:50:41 +00:00
database/sql database/sql: deflake TestPendingConnsAfterErr and fix races, panics 2016-06-28 21:37:53 +00:00
debug debug/pe: revert CL 22720 2016-08-18 01:19:29 +00:00
encoding encoding/xml: do not ignore error return from copyValue 2016-08-22 18:01:47 +00:00
errors
expvar
flag flag: recognize "0s" as the zero value for a flag.Duration 2016-05-31 23:45:47 +00:00
fmt fmt: properly handle early io.EOF Reads in readRune.readByte 2016-07-16 19:14:58 +00:00
go cmd/compile: clean up encoding of export version info 2016-08-22 22:28:52 +00:00
hash hash/crc32: fix optimized s390x implementation 2016-08-21 02:04:43 +00:00
html html/template: update security model link 2016-06-23 04:30:07 +00:00
image
index/suffixarray index/suffixarray: add Lookup example 2016-08-21 01:10:22 +00:00
internal internal/trace: fix analysis of EvGoWaiting/EvGoInSyscall events 2016-08-19 19:22:17 +00:00
io io: fix comment in test 2016-08-22 22:27:59 +00:00
log log/syslog: document that Dial uses net.Dial parameters, add example 2016-08-19 01:01:47 +00:00
math math/big: avoid allocation in float.{Add, Sub} when there's no aliasing 2016-08-17 17:56:42 +00:00
mime
net net/http/httptest: updated example to use Result() 2016-08-23 05:12:10 +00:00
os os: make ExpandEnv recognize '-' as a special shell parameter 2016-08-21 18:32:57 +00:00
path path/filepath: fix typo in comment 2016-07-07 02:59:09 +00:00
reflect reflect: clear tflag on new types 2016-08-16 16:58:15 +00:00
regexp regexp: add some tests that were fixed in #12980 2016-08-16 18:36:43 +00:00
runtime crypto/*, runtime: nacl asm fixes 2016-08-22 19:50:41 +00:00
sort
strconv strconv: clarify doc for Atoi return type 2016-06-28 18:16:25 +00:00
strings strings: add special cases for Join of 2 and 3 strings 2016-08-16 00:33:15 +00:00
sync sync: document that RWMutex read locks may not be held recursively 2016-05-31 00:22:56 +00:00
syscall syscall: delete unreachable code 2016-08-22 19:50:49 +00:00
testing testing: respect benchtime on very fast benchmarks 2016-08-10 19:44:08 +00:00
text text/template: remove unused Tree.parse return value 2016-08-17 22:36:27 +00:00
time all: fix "result not used" vet warnings 2016-08-16 14:15:10 +00:00
unicode unicode: upgrade to version 9.0.0 2016-06-28 15:08:11 +00:00
unsafe unsafe: document use of &^ to round/align pointers 2016-08-18 16:45:17 +00:00
vendor/golang_org/x/net all: rename vendored golang.org/x/net packages to golang_org 2016-07-13 18:35:40 +00:00
all.bash
all.bat
all.rc
androidtest.bash
bootstrap.bash
buildall.bash
clean.bash
clean.bat
clean.rc
cmp.bash
iostest.bash
make.bash
make.bat
Make.dist
make.rc
naclmake.bash
nacltest.bash
race.bash
race.bat
run.bash
run.bat
run.rc