Commit aa8c8e77 authored by Josh Bleecher Snyder's avatar Josh Bleecher Snyder Committed by Russ Cox

cmd/vet: teach vet about ast.AliasSpec

Fixes #17755

Change-Id: I1ad1edc382b1312d992963054eb82648cb5112d2
Reviewed-on: https://go-review.googlesource.com/32588
Run-TryBot: Josh Bleecher Snyder <josharian@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarRuss Cox <rsc@golang.org>
parent 10f75748
......@@ -61,7 +61,10 @@ func checkCopyLocksGenDecl(f *File, gd *ast.GenDecl) {
return
}
for _, spec := range gd.Specs {
valueSpec := spec.(*ast.ValueSpec)
valueSpec, ok := spec.(*ast.ValueSpec)
if !ok {
continue
}
for i, x := range valueSpec.Values {
if path := lockPathRhs(f, x); path != nil {
f.Badf(x.Pos(), "variable declaration copies lock value to %v: %v", valueSpec.Names[i].Name, path)
......
......@@ -188,8 +188,7 @@ func checkShadowDecl(f *File, d *ast.GenDecl) {
for _, spec := range d.Specs {
valueSpec, ok := spec.(*ast.ValueSpec)
if !ok {
f.Badf(spec.Pos(), "invalid AST: var GenDecl not ValueSpec")
return
continue
}
// Don't complain about deliberate redeclarations of the form
// var i = i
......
package testdata
import (
"runtime"
"sync"
"sync/atomic"
)
......@@ -156,3 +157,11 @@ func AtomicTypesCheck() {
vP := &vX
vZ := &atomic.Value{}
}
// ensure we don't crash when we encounter aliases; issue 17755
var _ => runtime.MemProfileRate
const _ => runtime.Compiler
type _ => sync.Mutex
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment