
-- flags --
-ignore_extra_diags

-- go.mod --
module testy.test

go 1.18

-- types/types.go --
package types


-- signature/signature.go --
package signature

type Alias = int

-- snippets/snippets.go --
package snippets

import (
	"testy.test/signature"
	t "testy.test/types"
)

func X(_ map[signature.Alias]t.CoolAlias) (map[signature.Alias]t.CoolAlias) {
	return nil
}

-- testy/testy.go --
package testy

func a() { //@item(funcA, "a", "func()", "func")
	//@complete("", funcA)
}


-- testy/testy_test.go --
package testy

import (
	"testing"

	sig "testy.test/signature"
	"testy.test/snippets"
)

func TestSomething(t *testing.T) { //@item(TestSomething, "TestSomething(t *testing.T)", "", "func")
	var x int //@loc(testyX, "x"), diag("x", re"x.*declared (and|but) not used")
	a()       //@loc(testyA, "a")
}

func _() {
	_ = snippets.X(nil) //@signature("nil", "X(_ map[sig.Alias]types.CoolAlias) map[sig.Alias]types.CoolAlias", 0)
	var _ sig.Alias
}

func issue63578(err error) {
	err.Error() //@signature(")", "Error()", 0)
}
