]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmd/compile/internal/types2: review of issues_test.go
authorRobert Griesemer <gri@golang.org>
Sat, 20 Feb 2021 00:58:24 +0000 (16:58 -0800)
committerRobert Griesemer <gri@golang.org>
Tue, 23 Feb 2021 04:13:16 +0000 (04:13 +0000)
The changes between (equivalent, and reviewed) go/types/issues_test.go
and issues_test.go can be seen by comparing patchset 1 and 3. The actual
change is just removing the "// UNREVIEWED" marker and making making
some minor code adjustments to match go/types's version more closely.

Change-Id: I26f3f700d12db69fc68161a6b0dc081a0e9cd0d4
Reviewed-on: https://go-review.googlesource.com/c/go/+/294473
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Robert Findley <rfindley@google.com>
src/cmd/compile/internal/types2/issues_test.go

index ba7cefb8925a8ae6c20c68e86b7666c0176d581e..a36b832f04037b5abb69db3da79a24fb39164773 100644 (file)
@@ -1,4 +1,3 @@
-// UNREVIEWED
 // Copyright 2013 The Go Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
@@ -29,7 +28,6 @@ func mustParse(t *testing.T, src string) *syntax.File {
 func TestIssue5770(t *testing.T) {
        f := mustParse(t, `package p; type S struct{T}`)
        var conf Config
-       // conf := Config{Importer: importer.Default()}
        _, err := conf.Check(f.PkgName.Value, []*syntax.File{f}, nil) // do not crash
        want := "undeclared name: T"
        if err == nil || !strings.Contains(err.Error(), want) {
@@ -76,7 +74,7 @@ var (
                        }
                case *syntax.Name:
                        if x.Value == "nil" {
-                               want = NewInterfaceType(nil, nil) // interface{}
+                               want = NewInterfaceType(nil, nil) // interface{} (for now, go/types types this as "untyped nil")
                        }
                }
                if want != nil && !Identical(tv.Type, want) {
@@ -387,9 +385,6 @@ func TestIssue28005(t *testing.T) {
                        t.Fatal("object X not found")
                }
                iface := obj.Type().Underlying().(*Interface) // object X must be an interface
-               if iface == nil {
-                       t.Fatalf("%s is not an interface", obj)
-               }
 
                // Each iface method m is embedded; and m's receiver base type name
                // must match the method's name per the choice in the source file.
@@ -529,22 +524,22 @@ func TestIssue34921(t *testing.T) {
 
 func TestIssue43088(t *testing.T) {
        // type T1 struct {
-       //         x T2
+       //         _ T2
        // }
        //
        // type T2 struct {
-       //         x struct {
-       //                 x T2
+       //         _ struct {
+       //                 _ T2
        //         }
        // }
        n1 := NewTypeName(syntax.Pos{}, nil, "T1", nil)
        T1 := NewNamed(n1, nil, nil)
        n2 := NewTypeName(syntax.Pos{}, nil, "T2", nil)
        T2 := NewNamed(n2, nil, nil)
-       s1 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "x", T2, false)}, nil)
+       s1 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "_", T2, false)}, nil)
        T1.SetUnderlying(s1)
-       s2 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "x", T2, false)}, nil)
-       s3 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "x", s2, false)}, nil)
+       s2 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "_", T2, false)}, nil)
+       s3 := NewStruct([]*Var{NewField(syntax.Pos{}, nil, "_", s2, false)}, nil)
        T2.SetUnderlying(s3)
 
        // These calls must terminate (no endless recursion).