diff options
| author | Lorenzo Stoakes <lstoakes@gmail.com> | 2011-05-11 23:41:59 -0400 |
|---|---|---|
| committer | Russ Cox <rsc@golang.org> | 2011-05-11 23:41:59 -0400 |
| commit | f58d911698e8e4690675fe276dac4795c39a9dfe (patch) | |
| tree | 401ce46ac68a3f109f0b7ab1fe76afdcbdc65e8d /src | |
| parent | 9d2a697fb9d04f65bb9ba6c7b2b508c263da0503 (diff) | |
| download | go-f58d911698e8e4690675fe276dac4795c39a9dfe.tar.xz | |
gc: fix type switch error message for invalid cases.
Fixes #1606.
R=rsc
CC=golang-dev
https://golang.org/cl/4532045
Diffstat (limited to 'src')
| -rw-r--r-- | src/cmd/gc/swt.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/gc/swt.c b/src/cmd/gc/swt.c index 6e8436c3c5..c2968c44bc 100644 --- a/src/cmd/gc/swt.c +++ b/src/cmd/gc/swt.c @@ -867,8 +867,11 @@ typecheckswitch(Node *n) case Etype: // type switch if(ll->n->op == OLITERAL && istype(ll->n->type, TNIL)) ; - else if(ll->n->op != OTYPE && ll->n->type != T) + else if(ll->n->op != OTYPE && ll->n->type != T) { yyerror("%#N is not a type", ll->n); + // reset to original type + ll->n = n->ntest->right; + } break; } } |
