on master help sign in
Track region on module exposing (..) for docs error message
bdc9ea0Evan Czaplicki
src/AST/Canonical.hs+1−1
@@ -254,7 +254,7 @@ data Docs
254
254
255
255
256data Exports
256data Exports
257− = ExportEverything
257+ = ExportEverything R.Region
258 | Export (Map.Map N.Name (A.Located Export))
258 | Export (Map.Map N.Name (A.Located Export))
259
259
260
260
src/AST/Source.hs+1−1
@@ -143,7 +143,7 @@ data Header
143 = Header
143 = Header
144 { _name :: N.Name
144 { _name :: N.Name
145 , _effects :: Effects
145 , _effects :: Effects
146− , _exports :: Exposing
146+ , _exports :: A.Located Exposing
147 , _docs :: Docs
147 , _docs :: Docs
148 }
148 }
149
149
src/AST/Valid.hs+2−2
@@ -77,7 +77,7 @@ data Module =
77 { _name :: N.Name
77 { _name :: N.Name
78 , _overview :: Src.Docs
78 , _overview :: Src.Docs
79 , _docs :: Map.Map N.Name Text
79 , _docs :: Map.Map N.Name Text
80− , _exports :: Src.Exposing
80+ , _exports :: A.Located Src.Exposing
81 , _imports :: [Src.Import]
81 , _imports :: [Src.Import]
82 , _decls :: [A.Located Decl]
82 , _decls :: [A.Located Decl]
83 , _unions :: [Union]
83 , _unions :: [Union]
@@ -114,7 +114,7 @@ defaultModule docs imports decls unions aliases binop =
114 { _name = "Main"
114 { _name = "Main"
115 , _overview = Src.NoDocs zero zero
115 , _overview = Src.NoDocs zero zero
116 , _docs = docs
116 , _docs = docs
117− , _exports = Src.Open
117+ , _exports = A.at zero zero Src.Open
118 , _imports = imports
118 , _imports = imports
119 , _decls = decls
119 , _decls = decls
120 , _unions = unions
120 , _unions = unions
src/Canonicalize/Module.hs+3−3
@@ -221,12 +221,12 @@ canonicalizeExports
221 -> Map.Map N.Name alias
221 -> Map.Map N.Name alias
222 -> Map.Map N.Name binop
222 -> Map.Map N.Name binop
223 -> Can.Effects
223 -> Can.Effects
224− -> Src.Exposing
224+ -> A.Located Src.Exposing
225 -> Result i w Can.Exports
225 -> Result i w Can.Exports
226−canonicalizeExports decls unions aliases binops effects exposing =
226+canonicalizeExports decls unions aliases binops effects (A.At region exposing) =
227 case exposing of
227 case exposing of
228 Src.Open ->
228 Src.Open ->
229− Result.ok Can.ExportEverything
229+ Result.ok (Can.ExportEverything region)
230
230
231 Src.Explicit exposeds ->
231 Src.Explicit exposeds ->
232 do let names = Map.fromList (map declToName decls)
232 do let names = Map.fromList (map declToName decls)
src/Elm/Docs.hs+2−2
@@ -289,8 +289,8 @@ precDecoder =
289fromModule :: Can.Module -> Result.Result i w Error.Error Module
289fromModule :: Can.Module -> Result.Result i w Error.Error Module
290fromModule (Can.Module name docs exports decls unions aliases binops effects) =
290fromModule (Can.Module name docs exports decls unions aliases binops effects) =
291 case exports of
291 case exports of
292− Can.ExportEverything ->
292+ Can.ExportEverything region ->
293− Result.throw $ Error.Docs $ E.ImplicitExposing
293+ Result.throw $ Error.Docs $ E.ImplicitExposing region
294
294
295 Can.Export exportDict ->
295 Can.Export exportDict ->
296 case docs of
296 case docs of
src/Elm/Interface.hs+1−1
@@ -67,7 +67,7 @@ fromModule types (Can.Module _ _ exports _ unions aliases binops _) =
67privatize :: Can.Exports -> (a -> A.Located Can.Export -> a) -> Map.Map N.Name a -> Map.Map N.Name a
67privatize :: Can.Exports -> (a -> A.Located Can.Export -> a) -> Map.Map N.Name a -> Map.Map N.Name a
68privatize exports func dict =
68privatize exports func dict =
69 case exports of
69 case exports of
70− Can.ExportEverything ->
70+ Can.ExportEverything _ ->
71 dict
71 dict
72
72
73 Can.Export explicitExports ->
73 Can.Export explicitExports ->
src/Parse/Module.hs+1−1
@@ -43,7 +43,7 @@ chompHeader =
43 (name, effects) <- chompNameAndEffects
43 (name, effects) <- chompNameAndEffects
44 P.hint E.Exposing $ Keyword.exposing_
44 P.hint E.Exposing $ Keyword.exposing_
45 P.spaces
45 P.spaces
46− exports <- exposing
46+ exports <- P.addLocation exposing
47 P.popContext ()
47 P.popContext ()
48 docs <- chompDocComment
48 docs <- chompDocComment
49 return (Src.Header name effects exports docs)
49 return (Src.Header name effects exports docs)
src/Reporting/Error/Docs.hs+3−3
@@ -18,7 +18,7 @@ import qualified Reporting.Report as Report
18
18
19data Error
19data Error
20 = NoDocs R.Region
20 = NoDocs R.Region
21− | ImplicitExposing
21+ | ImplicitExposing R.Region
22 | Duplicate N.Name R.Region R.Region
22 | Duplicate N.Name R.Region R.Region
23 | OnlyInDocs N.Name R.Region
23 | OnlyInDocs N.Name R.Region
24 | OnlyInExports N.Name R.Region
24 | OnlyInExports N.Name R.Region
@@ -45,8 +45,8 @@ toReport source err =
45 "Learn more at <http://package.elm-lang.org/help/documentation-format>"
45 "Learn more at <http://package.elm-lang.org/help/documentation-format>"
46 ]
46 ]
47
47
48− ImplicitExposing ->
48+ ImplicitExposing region ->
49− Report.Report "IMPLICIT EXPOSING" (error "TODO") [] $
49+ Report.Report "IMPLICIT EXPOSING" region [] $
50 H.stack
50 H.stack
51 [
51 [
52 H.reflow $
52 H.reflow $