]> Cypherpunks repositories - gostls13.git/commitdiff
go/types: fix (some) builds
authorRobert Griesemer <gri@golang.org>
Sat, 14 May 2011 01:33:04 +0000 (18:33 -0700)
committerRobert Griesemer <gri@golang.org>
Sat, 14 May 2011 01:33:04 +0000 (18:33 -0700)
The position (type) for which the "invalid cycle" error
message is reported depends on which type in a cycle of
types is first checked. Which one is first depends on
the iteration order of maps which is different on
different platforms. For now, disable this error message.

R=rsc
CC=golang-dev
https://golang.org/cl/4527059

src/pkg/go/types/check.go
src/pkg/go/types/testdata/test0.src

index 99914a098df19fd596ab0e964f486dc6be0922ce..02d66292640c06a97933d5c18eaf46ac54158f3a 100644 (file)
@@ -118,7 +118,10 @@ func (c *checker) makeType(x ast.Expr, cycleOk bool) (typ Type) {
                }
                c.checkObj(obj, cycleOk)
                if !cycleOk && obj.Type.(*Name).Underlying == nil {
-                       msg := c.errorf(obj.Pos(), "illegal cycle in declaration of %s", obj.Name)
+                       // TODO(gri) Enable this message again once its position
+                       // is independent of the underlying map implementation.
+                       // msg := c.errorf(obj.Pos(), "illegal cycle in declaration of %s", obj.Name)
+                       msg := "illegal cycle"
                        return &Bad{Msg: msg}
                }
                return obj.Type.(Type)
index 7013055ac09acb18babf9bac8d0fc12067b384e4..84a1abe27013251a6826f8ca0524486bc9453601 100644 (file)
@@ -39,7 +39,7 @@ type (
 type (
        Pi pi /* ERROR "not a type" */
 
-       a /* ERROR "illegal cycle" */ a
+       a /* DISABLED "illegal cycle" */ a
        a /* ERROR "redeclared" */ int
 
        // where the cycle error appears depends on the
@@ -47,7 +47,7 @@ type (
        // (which depends on the order in which a map
        // is iterated through)
        b c
-       c /* ERROR "illegal cycle" */ d
+       c /* DISABLED "illegal cycle" */ d
        d e
        e b
 
@@ -74,13 +74,13 @@ type (
        S3 struct {
                x S2
        }
-       S4/* ERROR "illegal cycle" */ struct {
+       S4/* DISABLED "illegal cycle" */ struct {
                S4
        }
        S5 struct {
                S6
        }
-       S6 /* ERROR "illegal cycle" */ struct {
+       S6 /* DISABLED "illegal cycle" */ struct {
                field S7
        }
        S7 struct {
@@ -91,8 +91,8 @@ type (
        L2 []int
 
        A1 [10]int
-       A2 /* ERROR "illegal cycle" */ [10]A2
-       A3 /* ERROR "illegal cycle" */ [10]struct {
+       A2 /* DISABLED "illegal cycle" */ [10]A2
+       A3 /* DISABLED "illegal cycle" */ [10]struct {
                x A4
        }
        A4 [10]A3
@@ -127,10 +127,10 @@ type (
                I1
                I1
        }
-       I8 /* ERROR "illegal cycle" */ interface {
+       I8 /* DISABLED "illegal cycle" */ interface {
                I8
        }
-       I9 /* ERROR "illegal cycle" */ interface {
+       I9 /* DISABLED "illegal cycle" */ interface {
                I10
        }
        I10 interface {