In Go, aliases are supposed to be identical to the type being aliased, so questions about type compatibility need to always ignore aliases, except for error messages involving the type name. This patch implements that. This test case for this is https://golang.org/cl/94995. This fixes https://golang.org/issue/23912. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian