From: Ian Lance Taylor Date: Tue, 24 Jan 2017 20:43:52 +0000 (-0800) Subject: [dev.typealias] test: match gccgo error messages on alias2.go X-Git-Tag: go1.9beta1~1834^2~7 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9259f3073afe0830ab1484bfee46bfa1f322e7e7;p=gostls13.git [dev.typealias] test: match gccgo error messages on alias2.go For #18130. Change-Id: I9561ee2b8a9f7b11f0851f281a899f78b9e9703e Reviewed-on: https://go-review.googlesource.com/35640 Reviewed-by: Robert Griesemer --- diff --git a/test/alias2.go b/test/alias2.go index f404d0dd3b..58eedf0c8c 100644 --- a/test/alias2.go +++ b/test/alias2.go @@ -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{}