• Didier Spezia's avatar
    cmd/compile/internal/gc: fix panic in Type Stringer · 7ebb96a4
    Didier Spezia authored
    The following code:
    
    func n() {(interface{int})}
    
    generates:
    
    3: interface contains embedded non-interface int
    3: type %!v(PANIC=runtime error: invalid memory address or nil pointer dereference) is not an expression
    
    It is because the corresponding symbol (Sym field in Type object)
    is nil, resulting in a panic in typefmt.
    
    Just skip the symbol if it is nil, so that the error message becomes:
    
    3: interface contains embedded non-interface int
    3: type interface { int } is not an expression
    
    Fixes #11614
    
    Change-Id: I219ae7eb01edca264fad1d4a1bd261d026294b00
    Reviewed-on: https://go-review.googlesource.com/14015Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    Run-TryBot: Russ Cox <rsc@golang.org>
    7ebb96a4
issue11614.go 619 Bytes