compiler: Report errors after evaluating invalid constant.
compiler: Report errors after evaluating invalid constant.

The fix for golang/go#11541 made the assertion that getting an invalid
Numeric_constant after evaluating an invalid constant must result in
an error in a binary expression.  However, a Numeric_constant can be
invalid if it is unset, which occurs when either operand cannot be
converted to the right type.  These errors are issued after the
Numeric_constant is lowered.

Fixes golang/go#12615.

Change-Id: I54e41d748a325004fde59f9e4e02d9c40f8f6576
Reviewed-on: https://go-review.googlesource.com/14646
Reviewed-by: Ian Lance Taylor <87e9c6d529889242b7e184afb632328636553ab4@golang.org>

golang/gofrontend,golang/gofrontend,golang/gofrontend,golang/gofrontend