compiler: avoid follow-on errors for bad types

Mark bad types as erroneous, to avoid generating further errors.

This required some code using array types to check for errors.

For golang/go#19880

Change-Id: I04d287cd66da84c123865fa1aa153ffa47c410ca
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/273626
Trust: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
3 files changed