]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.typealias] test: match gccgo error messages on alias2.go
authorIan Lance Taylor <iant@golang.org>
Tue, 24 Jan 2017 20:43:52 +0000 (12:43 -0800)
committerIan Lance Taylor <iant@golang.org>
Tue, 24 Jan 2017 22:51:50 +0000 (22:51 +0000)
For #18130.

Change-Id: I9561ee2b8a9f7b11f0851f281a899f78b9e9703e
Reviewed-on: https://go-review.googlesource.com/35640
Reviewed-by: Robert Griesemer <gri@golang.org>
test/alias2.go

index f404d0dd3bfc53de96eef80b741c61001fcf1a49..58eedf0c8cc76e4a9e7082f0a6d0b7d6d46e4b1f 100644 (file)
@@ -35,10 +35,10 @@ type (
 )
 
 // Methods can be declared on the original named type and the alias.
-func (T0) m1()  {}
-func (*T0) m1() {} // ERROR "method redeclared: T0\.m1"
-func (A0) m1()  {} // TODO(gri) this should be an error
-func (A0) m1()  {} // ERROR "A0\.m1 redeclared in this block"
+func (T0) m1()  {} // GCCGO_ERROR "previous"
+func (*T0) m1() {} // ERROR "method redeclared: T0\.m1|redefinition of .m1."
+func (A0) m1()  {} // TODO(gri) this should be an error  // GCCGO_ERROR "redefinition of .m1."
+func (A0) m1()  {} // ERROR "A0\.m1 redeclared in this block|redefinition of .m1."
 func (A0) m2()  {}
 
 // Type aliases and the original type name can be used interchangeably.
@@ -46,8 +46,8 @@ var _ A0 = T0{}
 var _ T0 = A0{}
 
 // But aliases and original types cannot be used with new types based on them.
-var _ N0 = T0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment"
-var _ N0 = A0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment"
+var _ N0 = T0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment|incompatible type"
+var _ N0 = A0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment|incompatible type"
 
 var _ A5 = Value{}
 
@@ -82,20 +82,20 @@ func _() {
        var _ A0 = T0{}
        var _ T0 = A0{}
 
-       var _ N0 = T0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment"
-       var _ N0 = A0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment"
+       var _ N0 = T0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment|incompatible type"
+       var _ N0 = A0{} // ERROR "cannot use T0 literal \(type T0\) as type N0 in assignment|incompatible type"
 
-       var _ A5 = Value{} // ERROR "cannot use reflect\.Value literal \(type reflect.Value\) as type A5 in assignment"
+       var _ A5 = Value{} // ERROR "cannot use reflect\.Value literal \(type reflect.Value\) as type A5 in assignment|incompatible type"
 }
 
 // Invalid type alias declarations.
 
-type _ = reflect.ValueOf // ERROR "reflect.ValueOf is not a type"
+type _ = reflect.ValueOf // ERROR "reflect.ValueOf is not a type|expected type"
 
-func (A1) m() {} // ERROR "cannot define new methods on non-local type int"
-func (A2) m() {} // ERROR "invalid receiver type struct {}"
-func (A3) m() {} // ERROR "cannot define new methods on non-local type reflect.Value"
-func (A4) m() {} // ERROR "cannot define new methods on non-local type reflect.Value"
+func (A1) m() {} // ERROR "cannot define new methods on non-local type int|may not define methods on non-local type"
+func (A2) m() {} // ERROR "invalid receiver type"
+func (A3) m() {} // ERROR "cannot define new methods on non-local type reflect.Value|may not define methods on non-local type"
+func (A4) m() {} // ERROR "cannot define new methods on non-local type reflect.Value|may not define methods on non-local type"
 
 type B1 = struct{}