summaryrefslogtreecommitdiff
path: root/src/cmd/gc/swt.c
diff options
context:
space:
mode:
authorOndřej Surý <ondrej@sury.org>2011-05-23 09:45:29 +0200
committerOndřej Surý <ondrej@sury.org>2011-05-23 11:04:16 +0200
commit4e5e42a1c1a9eb757743648c48df70cbd42635db (patch)
tree64220a5cf0a1ad27206bbcdbc810ea56ba5ed67f /src/cmd/gc/swt.c
parentfd089e27d7260cee1c7ca449c41cdd0341ebc6cb (diff)
downloadgolang-4e5e42a1c1a9eb757743648c48df70cbd42635db.tar.gz
Imported Upstream version 2011.05.22
Diffstat (limited to 'src/cmd/gc/swt.c')
-rw-r--r--src/cmd/gc/swt.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/cmd/gc/swt.c b/src/cmd/gc/swt.c
index 6e8436c3c..c2968c44b 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;
}
}