on master help sign in
Minor updates needed because of AST changes
d78e502Evan Czaplicki
src/Elm/Compiler/Type.hs+4−1
@@ -216,7 +216,10 @@ fromRawType (A.At _ astType) =
216 (fromRawType b)
216 (fromRawType b)
217 (map fromRawType cs)
217 (map fromRawType cs)
218
218
219− Src.TType _ _ name args ->
219+ Src.TType _ name args ->
220+ Type name (map fromRawType args)
221+
222+ Src.TTypeQual _ _ name args ->
220 Type name (map fromRawType args)
223 Type name (map fromRawType args)
221
224
222 Src.TRecord fields ext ->
225 Src.TRecord fields ext ->
src/Elm/Compiler/Type/Extract.hs+10−4
@@ -133,11 +133,17 @@ extractAlias interfaces (Opt.Global home name) =
133extractUnion :: I.Interfaces -> Opt.Global -> Extractor T.Union
133extractUnion :: I.Interfaces -> Opt.Global -> Extractor T.Union
134extractUnion interfaces (Opt.Global home name) =
134extractUnion interfaces (Opt.Global home name) =
135 let
135 let
136+ pname = toPublicName home name
136− (I.Interface _ unions _ _) = interfaces ! home
137+ unions = I._unions (interfaces ! home)
137− (Can.Union args constructors) = unions ! name
138 in
138 in
139− T.Union (toPublicName home name) args
139+ case unions ! name of
140+ Can.Union vars ctors _ _ ->
141+ T.Union pname vars <$> traverse extractCtor ctors
142+
143+
144+extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type])
145+extractCtor (Can.Ctor ctor _ _ args) =
140− <$> traverse (traverse (traverse extract)) constructors
146+ (,) ctor <$> traverse extract args
141
147
142
148
143
149
src/Elm/Docs.hs+4−4
@@ -443,14 +443,14 @@ addExport info (Module n c us as_ vs bs) (name, A.At region export) =
443 Result.ok $ Module n c us newAliases vs bs
443 Result.ok $ Module n c us newAliases vs bs
444
444
445 Can.ExportUnionOpen ->
445 Can.ExportUnionOpen ->
446− do let (Can.Union tvars ctors) = _iUnions info ! name
446+ do let (Can.Union tvars ctors _ _) = _iUnions info ! name
447 comment <- getComment region name info
447 comment <- getComment region name info
448
448
449 let newUnions = Map.insert name (Union comment tvars (map dector ctors)) us
449 let newUnions = Map.insert name (Union comment tvars (map dector ctors)) us
450 Result.ok $ Module n c newUnions as_ vs bs
450 Result.ok $ Module n c newUnions as_ vs bs
451
451
452 Can.ExportUnionClosed ->
452 Can.ExportUnionClosed ->
453− do let (Can.Union tvars _) = _iUnions info ! name
453+ do let (Can.Union tvars _ _ _) = _iUnions info ! name
454 comment <- getComment region name info
454 comment <- getComment region name info
455
455
456 let newUnions = Map.insert name (Union comment tvars []) us
456 let newUnions = Map.insert name (Union comment tvars []) us
@@ -480,8 +480,8 @@ getType name info =
480 Result.ok (Extract.fromType tipe)
480 Result.ok (Extract.fromType tipe)
481
481
482
482
483−dector :: (N.Name, [Can.Type]) -> (N.Name, [Type.Type])
483+dector :: Can.Ctor -> (N.Name, [Type.Type])
484−dector (name, args) =
484+dector (Can.Ctor name _ _ args) =
485 ( name, map Extract.fromType args )
485 ( name, map Extract.fromType args )
486
486
487
487