compiler: fix buglet in lshift type determination
It's possible to construct an lshift expression using unsafe.Sizeof
that is technically a compile-time constant but can't be evaluated
without going through backend methods. In this case, insure that
Type::make_non_abstract_type is called on the numeric operand of the
shift (as opposed to leaving as abstract), to avoid an assert later on
in the compiler flow.
Fixes golang/go#21372.
Reviewed-on: https://go-review.googlesource.com/54370
From-SVN: r251006