package main
func main() {
var s uint
_ = string(1 << s)
}
(https://play.golang.org/p/owHsmdZd32v) is an error: The 1 in 1 << s assumes the type it would have without the shift, which is string. Both cm/compile and gccgo correct report an error.
go/types appears to accept it.