Пока литерал является просто константой (нигде не назначен), его не нужно материализовать, поэтому ошибки нет. Компилятор ждет, когда вы действительно его где-нибудь используете. Учтите это:
package main
import "fmt"
const Big = 1 << 100 // no overflow here
var f float64
f = Big
fmt.Println(f)
}
Это успешно выполняется и выводит разумное приближение 2 ^ 100 (в пределах точности точности чисел с плавающей запятой). Однако, если вы попытаетесь присвоить его переменной, будет выведено значение int (в конце концов, литерал является целым числом), и то же самое верно, когда вы пытаетесь распечатать его тип.