diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2015-12-23 12:44:23 +0200 |
---|---|---|
committer | Alan Zimmerman <alan.zimm@gmail.com> | 2015-12-23 13:29:16 +0200 |
commit | cb989e2f71bbd31aa6b3729030034167d8f8a1ca (patch) | |
tree | 16a22ec426a5f811e56284271792c8d33de9f5cd /compiler/parser | |
parent | 380b25ea4754c2aea683538ffdb179f8946219a0 (diff) | |
download | haskell-cb989e2f71bbd31aa6b3729030034167d8f8a1ca.tar.gz |
API Annotaions:add name in PatBind Match
A PatBind operates similarly to a FunBind, and so the RdrName and
infix/prefix state needs to be captured for use in API Annotations.
Diffstat (limited to 'compiler/parser')
-rw-r--r-- | compiler/parser/RdrHsSyn.hs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/parser/RdrHsSyn.hs b/compiler/parser/RdrHsSyn.hs index e84f8afc22..d8c8b3a818 100644 --- a/compiler/parser/RdrHsSyn.hs +++ b/compiler/parser/RdrHsSyn.hs @@ -471,13 +471,13 @@ mkPatSynMatchGroup (L loc patsyn_name) (L _ decls) = ; when (length matches /= 1) (wrongNumberErr loc) ; return $ mkMatchGroup FromSource matches } where - fromDecl (L loc decl@(ValD (PatBind pat@(L _ (ConPatIn (L _ name) details)) rhs _ _ _))) = + fromDecl (L loc decl@(ValD (PatBind pat@(L _ (ConPatIn ln@(L _ name) details)) rhs _ _ _))) = do { unless (name == patsyn_name) $ wrongNameBindingErr loc decl ; match <- case details of - PrefixCon pats -> return $ Match NonFunBindMatch pats Nothing rhs + PrefixCon pats -> return $ Match (FunBindMatch ln False) pats Nothing rhs InfixCon pat1 pat2 -> - return $ Match NonFunBindMatch [pat1, pat2] Nothing rhs + return $ Match (FunBindMatch ln True) [pat1, pat2] Nothing rhs RecCon{} -> recordPatSynErr loc pat ; return $ L loc match } fromDecl (L loc decl) = extraDeclErr loc decl |