diff options
| author | Shayan-Najd <sh.najd@gmail.com> | 2018-11-22 01:23:29 +0000 |
|---|---|---|
| committer | Alan Zimmerman <alan.zimm@gmail.com> | 2018-11-24 12:30:21 +0200 |
| commit | 509d5be69c7507ba5d0a5f39ffd1613a59e73eea (patch) | |
| tree | b3db08f371014cbf235525843a312f67dea77354 /compiler/rename/RnFixity.hs | |
| parent | ad2d7612dbdf0e928318394ec0606da3b85a8837 (diff) | |
| download | haskell-509d5be69c7507ba5d0a5f39ffd1613a59e73eea.tar.gz | |
[TTG: Handling Source Locations] Foundation and Pat
This patch removes the ping-pong style from HsPat (only, for now),
using the plan laid out at
https://ghc.haskell.org/trac/ghc/wiki/ImplementingTreesThatGrow/HandlingSourceLocations (solution
A).
- the class `HasSrcSpan`, and its functions (e.g., `cL` and `dL`), are introduced
- some instances of `HasSrcSpan` are introduced
- some constructors `L` are replaced with `cL`
- some patterns `L` are replaced with `dL->L` view pattern
- some type annotation are necessarily updated (e.g., `Pat p` --> `Pat (GhcPass p)`)
Phab diff: D5036
Trac Issues #15495
Updates haddock submodule
Diffstat (limited to 'compiler/rename/RnFixity.hs')
| -rw-r--r-- | compiler/rename/RnFixity.hs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/compiler/rename/RnFixity.hs b/compiler/rename/RnFixity.hs index f1bfb380a5..19d8bb4c5a 100644 --- a/compiler/rename/RnFixity.hs +++ b/compiler/rename/RnFixity.hs @@ -1,3 +1,5 @@ +{-# LANGUAGE ViewPatterns #-} + {- This module contains code which maintains and manipulates the @@ -78,8 +80,8 @@ addLocalFixities mini_fix_env names thing_inside where find_fixity name = case lookupFsEnv mini_fix_env (occNameFS occ) of - Just (L _ fix) -> Just (name, FixItem occ fix) - Nothing -> Nothing + Just lfix -> Just (name, FixItem occ (unLoc lfix)) + Nothing -> Nothing where occ = nameOccName name @@ -171,7 +173,7 @@ lookupFixityRn_help' name occ --------------- lookupTyFixityRn :: Located Name -> RnM Fixity -lookupTyFixityRn (L _ n) = lookupFixityRn n +lookupTyFixityRn = lookupFixityRn . unLoc -- | Look up the fixity of a (possibly ambiguous) occurrence of a record field -- selector. We use 'lookupFixityRn'' so that we can specifiy the 'OccName' as @@ -179,9 +181,9 @@ lookupTyFixityRn (L _ n) = lookupFixityRn n -- 'Name' if @DuplicateRecordFields@ is in use (Trac #1173). If there are -- multiple possible selectors with different fixities, generate an error. lookupFieldFixityRn :: AmbiguousFieldOcc GhcRn -> RnM Fixity -lookupFieldFixityRn (Unambiguous n (L _ rdr)) - = lookupFixityRn' n (rdrNameOcc rdr) -lookupFieldFixityRn (Ambiguous _ (L _ rdr)) = get_ambiguous_fixity rdr +lookupFieldFixityRn (Unambiguous n lrdr) + = lookupFixityRn' n (rdrNameOcc (unLoc lrdr)) +lookupFieldFixityRn (Ambiguous _ lrdr) = get_ambiguous_fixity (unLoc lrdr) where get_ambiguous_fixity :: RdrName -> RnM Fixity get_ambiguous_fixity rdr_name = do |
