diff options
| author | Marius Bakke <mbakke@fastmail.com> | 2019-10-08 19:24:34 +0200 | 
|---|---|---|
| committer | Marius Bakke <mbakke@fastmail.com> | 2019-10-08 19:24:34 +0200 | 
| commit | d1f3b333e6176a7879ab3742bbebb2a99f61a528 (patch) | |
| tree | 8bd82ce68bd2534a48bf13c7256997f82dd1b3f4 /gnu/packages/patches/elm-compiler-fix-map-key.patch | |
| parent | e01d384efcdaf564bbb221e43b81e087c8e2af06 (diff) | |
| parent | 861907f01efb1cae7f260e8cb7b991d5034a486a (diff) | |
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/patches/elm-compiler-fix-map-key.patch')
| -rw-r--r-- | gnu/packages/patches/elm-compiler-fix-map-key.patch | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/gnu/packages/patches/elm-compiler-fix-map-key.patch b/gnu/packages/patches/elm-compiler-fix-map-key.patch new file mode 100644 index 0000000000..4f05ded530 --- /dev/null +++ b/gnu/packages/patches/elm-compiler-fix-map-key.patch @@ -0,0 +1,38 @@ +commit e3512d887df41a8162c3e361171c04beca08415b +Author: Tom Stejskal <tom.stejskal@gmail.com> +Date:   Mon Nov 19 20:09:43 2018 +0100 + +    Fix Map.!: given key is not an element in the map + +diff --git a/compiler/src/Elm/Compiler/Type/Extract.hs b/compiler/src/Elm/Compiler/Type/Extract.hs +index 1aafe1d4..99763392 100644 +--- a/compiler/src/Elm/Compiler/Type/Extract.hs ++++ b/compiler/src/Elm/Compiler/Type/Extract.hs +@@ -10,6 +10,7 @@ module Elm.Compiler.Type.Extract +  +  + import Data.Map ((!)) ++import qualified Data.Map as Map + import qualified Data.Maybe as Maybe + import qualified Data.Set as Set +  +@@ -134,11 +135,15 @@ extractUnion interfaces (Opt.Global home name) = +     else +       let +         pname = toPublicName home name +-        unions = I._unions (interfaces ! home) ++        maybeUnions = I._unions <$> Map.lookup home interfaces +       in +-      case I.toUnionInternals (unions ! name) of +-        Can.Union vars ctors _ _ -> +-          T.Union pname vars <$> traverse extractCtor ctors ++      case Map.lookup name =<< maybeUnions of ++        Just union -> ++          case I.toUnionInternals union of ++            Can.Union vars ctors _ _ -> ++              T.Union pname vars <$> traverse extractCtor ctors ++        Nothing -> ++          return $ T.Union pname [] [] +  +  + extractCtor :: Can.Ctor -> Extractor (N.Name, [T.Type]) | 
