If I understand right the panic is because the `m := NewMap[string, int]` is a function not a function call and after that you try to assign to this function `m[int]`. This works https://go2goplay.golang.org/p/NOaPH-dJyWd .
Sure, I know it was wrong, but I was still able to crash the compiler.
Previously I had tried using the (wrong) map-like syntax like this:
m["foo"] = 123
and this gave a helpful error message (*):
"foo" (untyped string constant) is not a type
which, if you know about generic type parameters makes sense.
So out of interest, I changed it to see what would happen if I
*did* put a type there:
m[int] = 123
... and that caused the panic.
(*) Helpful-ish. As you say, m is a function, indeed a
non-generic one without type parameters. Trying to qualify a such
a function with a type doesn't make sense. Perhaps a better error
would be "cannot use type parameters on a non-generic function" or
similar.
--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/aa0acea2-7e52-457b-b22f-92f0e19bf922n%40googlegroups.com.