This reverts commit 
aa8c8e770e6db895405b66d38867c2368d94024a.
Reason: Decision to back out current alias implementation.
For #16339.
Change-Id: I4db9a8d6b3625c794be9d2f1ff0e9c047f383d28
Reviewed-on: https://go-review.googlesource.com/32827
Run-TryBot: Robert Griesemer <gri@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Chris Manghane <cmang@golang.org>
 
                return
        }
        for _, spec := range gd.Specs {
-               valueSpec, ok := spec.(*ast.ValueSpec)
-               if !ok {
-                       continue
-               }
+               valueSpec := spec.(*ast.ValueSpec)
                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)
 
        for _, spec := range d.Specs {
                valueSpec, ok := spec.(*ast.ValueSpec)
                if !ok {
-                       continue
+                       f.Badf(spec.Pos(), "invalid AST: var GenDecl not ValueSpec")
+                       return
                }
                // Don't complain about deliberate redeclarations of the form
                //      var i = i
 
 package testdata
 
 import (
-       "runtime"
        "sync"
        "sync/atomic"
 )
        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