on master help sign in
Use UNPACK pragma in Region.Position
commit41df71fd12f7f9cfa5a1031b93060195f7901475 authorEvan Czaplicki <evancz@users.noreply.github.com> dateSat 26 Nov 2016, 01:52 (10 years ago) parent55a203d
2 files changed+20−14
src/Docs/Check.hs+2−2 src/Reporting/Region.hs+18−12
src/Docs/Check.hs+2−2
@@ -151,7 +151,7 @@ checkModuleComment docRegion exports locatedDocNames =
151151
152152
153153commentedNames :: R.Region -> String -> [A.Located String]
154−commentedNames (R.Region start _) comment =
154+commentedNames (R.Region (R.Position line column) _) comment =
155155 let
156156 nameParser =
157157 choice
@@ -163,7 +163,7 @@ commentedNames (R.Region start _) comment =
163163 ]
164164
165165 docCommentParser =
166− do setPosition (newPos "docs" (R.line start) (R.column start + 3))
166+ do setPosition (newPos "docs" line (column + 3))
167167 concat <$> many nameParser
168168 in
169169 case parse docCommentParser comment of
src/Reporting/Region.hs+18−12
@@ -6,16 +6,18 @@ import qualified Data.Aeson as Json
66import qualified Text.Parsec.Pos as Parsec
77
88
9−data Region = Region
10− { start :: Position
11− , end :: Position
9+data Region =
10+ Region
11+ { start :: !Position
12+ , end :: !Position
1213 }
1314 deriving (Eq, Show)
1415
1516
16−data Position = Position
17− { line :: Int
18− , column :: Int
17+data Position =
18+ Position
19+ { line :: {-# UNPACK #-} !Int
20+ , column :: {-# UNPACK #-} !Int
1921 }
2022 deriving (Eq, Show)
2123
@@ -32,22 +34,26 @@ merge (Region start _) (Region _ end) =
3234 Region start end
3335
3436
37+
3538-- TO STRING
3639
40+
3741toString :: Region -> String
38−toString (Region start end) =
39− case line start == line end of
42+toString (Region (Position startLine startColumn) (Position endLine endColumn)) =
43+ case startLine == endLine of
4044 False ->
41− "between lines " ++ show (line start)
42− ++ " and " ++ show (line end)
45+ "between lines " ++ show startLine
46+ ++ " and " ++ show endLine
4347
4448 True ->
45− "on line " ++ show (line end) ++ ", column "
46− ++ show (column start) ++ " to " ++ show (column end)
49+ "on line " ++ show endLine ++ ", column "
50+ ++ show startColumn ++ " to " ++ show endColumn
51+
4752
4853
4954-- JSON
5055
56+
5157instance Json.ToJSON Region where
5258 toJSON (Region start end) =
5359 Json.object