1
0
mirror of https://github.com/golang/go synced 2024-09-29 10:24:34 -06:00
go/test
Gergely Brautigam 8ee9bca272 cmd/compile: suppress typecheck errors in a type switch case with broken type
If a type switch case expression has failed typechecking, the case body is
likely to also fail with confusing or spurious errors. Suppress
typechecking the case body when this happens.

Fixes #28926

Change-Id: Idfdb9d5627994f2fd90154af1659e9a92bf692c4
Reviewed-on: https://go-review.googlesource.com/c/158617
Run-TryBot: Daniel Martí <mvdan@mvdan.cc>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
2019-02-27 08:22:03 +00:00
..
alias3.dir
bench
chan test/chan: fix broken link to Squinting at Power Series 2019-02-06 20:54:16 +00:00
closure3.dir
codegen cmd/compile: don't generate newobject call for 0-sized types 2019-02-26 23:08:15 +00:00
ddd2.dir
dwarf
fixedbugs cmd/compile: suppress typecheck errors in a type switch case with broken type 2019-02-27 08:22:03 +00:00
import2.dir
import4.dir
interface
intrinsic.dir
ken
linkname.dir
method4.dir
retjmp.dir
stress
syntax
uintptrescapes.dir
64bit.go
235.go
alg.go
alias1.go
alias2.go
alias3.go
alias.go
align.go
append1.go
append.go
args.go
armimm.go
assign1.go
assign.go
atomicload.go
bigalg.go
bigmap.go
blank1.go
blank.go
bom.go
bombad.go
bounds.go
chancap.go
chanlinear.go
char_lit1.go
char_lit.go
checkbce.go
clearfat.go
closedchan.go
closure1.go
closure2.go
closure3.go
closure4.go
closure.go
cmp6.go
cmp.go
cmplx.go
cmplxdivide1.go
cmplxdivide.c
cmplxdivide.go
complit1.go
complit.go
compos.go
const1.go
const2.go
const3.go
const4.go
const5.go
const6.go
const.go
convert1.go
convert2.go
convert3.go
convert.go
convlit1.go
convlit.go
convT2X.go
copy1.go
copy.go
crlf.go
ddd1.go
ddd2.go
ddd.go
decl.go
declbad.go
defer.go
deferfin.go
deferprint.go
deferprint.out
devirt.go
divide.go
divmod.go
empty.go
env.go
eof1.go
eof.go
escape2.go
escape2n.go
escape3.go
escape4.go
escape5.go
escape_array.go
escape_because.go cmd/compile: flow interface data to heap if CONVIFACE of a non-direct interface escapes 2019-02-21 15:14:45 +00:00
escape_calls.go
escape_closure.go
escape_field.go
escape_iface.go
escape_indir.go
escape_level.go
escape_map.go
escape_param.go cmd/compile: flow interface data to heap if CONVIFACE of a non-direct interface escapes 2019-02-21 15:14:45 +00:00
escape_slice.go
escape_struct_param1.go
escape_struct_param2.go
escape_struct_return.go
escape.go
fibo.go
finprofiled.go
float_lit2.go
float_lit3.go
float_lit.go
floatcmp.go
for.go
func1.go
func2.go
func3.go
func4.go
func5.go
func6.go
func7.go
func8.go
func.go
funcdup2.go
funcdup.go
gc1.go
gc2.go
gc.go
gcgort.go
gcstring.go
goprint.go
goprint.out
goto.go
heapsampling.go
helloworld.go
helloworld.out
if.go
import1.go
import2.go
import4.go
import5.go
import6.go
import.go
index0.go
index1.go
index2.go
index.go
indirect1.go
indirect.go
init1.go
init.go
initcomma.go
initialize.go
initializerr.go
initloop.go
inline_big.go
inline_caller.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_callers.go runtime: make FuncForPC return the innermost inlined frame 2019-01-08 21:54:04 +00:00
inline_literal.go
inline_math_bits_rotate.go
inline_variadic.go
inline.go
int_lit.go
intcvt.go
intrinsic_atomic.go
intrinsic.go
iota.go
label1.go
label.go
linkmain_run.go
linkmain.go
linkname.go
linkobj.go
linkx_run.go
linkx.go
literal2.go cmd/compile: accept 'i' suffix orthogonally on all numbers 2019-02-19 22:45:09 +00:00
literal.go
live1.go
live2.go
live_syscall.go
live.go
locklinear.go
loopbce.go cmd/compile: check for negative upper bound to IsSliceInBounds 2018-12-07 23:04:58 +00:00
makechan.go
makemap.go
makenew.go
mallocfin.go
map1.go
map.go
mapclear.go
maplinear.go
mergemul.go
method1.go
method2.go
method3.go
method4.go
method5.go
method6.go
method7.go
method.go
named1.go
named.go
nil.go
nilcheck.go
nilptr2.go
nilptr3.go
nilptr4.go
nilptr5_aix.go
nilptr5_wasm.go
nilptr5.go
nilptr_aix.go
nilptr.go
nosplit.go test: add a go.mod file in the working directory of nosplit.go 2019-02-26 02:44:45 +00:00
notinheap2.go
notinheap3.go cmd/compile: omit write barriers for slice clears of go:notinheap pointers 2018-12-05 21:54:54 +00:00
notinheap.go
nowritebarrier.go
nul1.go
opt_branchlikely.go
parentype.go
peano.go
phiopt.go
print.go
print.out
printbig.go
printbig.out
prove.go cmd/compile: fix deriving from x+d >= w on overflow in prove pass 2019-01-02 19:28:06 +00:00
range.go
README.md
recover1.go
recover2.go
recover3.go
recover4.go
recover5.go
recover.go
reflectmethod1.go
reflectmethod2.go
reflectmethod3.go
reflectmethod4.go
rename1.go
rename.go
reorder2.go
reorder.go
retjmp.go
return.go
rotate0.go
rotate1.go
rotate2.go
rotate3.go
rotate.go
run.go cmd/compile: use innermost line number for -S 2018-12-11 20:24:45 +00:00
rune.go
runtime.go
shift1.go
shift2.go
sieve.go
sigchld.go
sigchld.out
simassign.go
sinit_run.go
sinit.go
sizeof.go
slice3.go
slice3err.go
slicecap.go
sliceopt.go
solitaire.go
stack.go
stackobj2.go
stackobj3.go
stackobj.go
strcopy.go
strength.go
string_lit.go
stringrange.go
struct0.go
switch2.go
switch3.go
switch4.go
switch5.go
switch6.go
switch7.go
switch.go
tinyfin.go
torture.go
turing.go
typecheck.go
typecheckloop.go
typeswitch1.go
typeswitch2.go
typeswitch3.go
typeswitch.go
uintptrescapes2.go
uintptrescapes.go
undef.go
utf.go
varerr.go
varinit.go
writebarrier.go
zerodivide.go

The test directory contains tests of the Go tool chain and runtime. It includes black box tests, regression tests, and error output tests. They are run as part of all.bash.

To run just these tests, execute:

../bin/go run run.go

Standard library tests should be written as regular Go tests in the appropriate package.

The tool chain and runtime also have regular Go tests in their packages. The main reasons to add a new test to this directory are:

  • it is most naturally expressed using the test runner; or
  • it is also applicable to gccgo and other Go tool chains.