diff options
Diffstat (limited to 'ghc/compiler/parser/syntax.c')
-rw-r--r-- | ghc/compiler/parser/syntax.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/ghc/compiler/parser/syntax.c b/ghc/compiler/parser/syntax.c index fec0ae8278..509145360a 100644 --- a/ghc/compiler/parser/syntax.c +++ b/ghc/compiler/parser/syntax.c @@ -543,18 +543,19 @@ splittyconapp(app, tyc, tys) qid *tyc; list *tys; { - if(tttype(app) == tapp) - { + switch (tttype(app)) { + case tapp: splittyconapp(gtapp((struct Stapp *)app), tyc, tys); *tys = lapp(*tys, gtarg((struct Stapp *)app)); - } - else if(tttype(app) == tname) - { + break; + + case tname: + case namedtvar: *tyc = gtypeid((struct Stname *)app); *tys = Lnil; - } - else - { + break; + + default: hsperror("panic: splittyconap: bad tycon application (no tycon)"); } } |