• Matthew Dempsky's avatar
    cmd/compile: report more precise errors about untyped constants · e710a1fb
    Matthew Dempsky authored
    Previously, we used a single "untyped number" type for all untyped
    numeric constants. This led to vague error messages like "string(1.0)"
    reporting that "1 (type untyped number)" can't be converted to string,
    even though "string(1)" is valid.
    
    This CL makes cmd/compile more like go/types by utilizing
    types.Ideal{int,rune,float,complex} instead of types.Types[TIDEAL],
    and keeping n.Type in sync with n.Val().Ctype() during constant
    folding.
    
    Thanks to K Heller for looking into this issue, and for the included
    test case.
    
    Fixes #21979.
    
    Change-Id: Ibfea88c05704bc3c0a502a455d018a375589754d
    Reviewed-on: https://go-review.googlesource.com/c/go/+/194019Reviewed-by: default avatarRobert Griesemer <gri@golang.org>
    e710a1fb
identity.go 3.29 KB