golang/go

cmd/compile: more helpful "is not a type" error when variable shadows type

Open

#23.065 aberto em 9 de dez. de 2017

Ver no GitHub
 (8 comments) (8 reactions) (0 assignees)Go (19.008 forks)batch import
NeedsFixhelp wanted

Métricas do repositório

Stars
 (133.883 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

What version of Go are you using (go version)?

Current playground version.

Does this issue reproduce with the latest release?

Yes.

What operating system and processor architecture are you using (go env)?

Unknown (plaground).

What did you do?

The following code compiles with fancyMap is not a type errors in both foo and foo2 (playground):

package main

type fancyMap = map[string]string

func foo(fancyMap fancyMap) {
	var _ fancyMap
}

func foo2(fancyMap fancyMap) {
	_ = make(fancyMap)
}

func main() {
}

What did you expect to see?

Successful compilation or a more informative error message.

What did you see instead?

Poor/incorrect error message. Simply renaming the fancyMap variable fixes the problem, but the error message is incorrect: fancyMap is a type.

Apologies if there's an existing issue for this.

Guia do colaborador