| // Copyright 2020 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. |
| |
| package types2 |
| |
| import "testing" |
| |
| func TestError(t *testing.T) { |
| var err error_ |
| want := "no error" |
| if got := err.String(); got != want { |
| t.Errorf("empty error: got %q, want %q", got, want) |
| } |
| |
| want = "<unknown position>: foo 42" |
| err.errorf(nopos, "foo %d", 42) |
| if got := err.String(); got != want { |
| t.Errorf("simple error: got %q, want %q", got, want) |
| } |
| |
| want = "<unknown position>: foo 42\n\t<unknown position>: bar 43" |
| err.errorf(nopos, "bar %d", 43) |
| if got := err.String(); got != want { |
| t.Errorf("simple error: got %q, want %q", got, want) |
| } |
| } |
| |
| func TestStripAnnotations(t *testing.T) { |
| for _, test := range []struct { |
| in, want string |
| }{ |
| {"", ""}, |
| {" ", " "}, |
| {"foo", "foo"}, |
| {"foo₀", "foo"}, |
| {"foo(T₀)", "foo(T)"}, |
| {"#foo(T₀)", "foo(T)"}, |
| } { |
| got := stripAnnotations(test.in) |
| if got != test.want { |
| t.Errorf("%q: got %q; want %q", test.in, got, test.want) |
| } |
| } |
| } |