aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches/elm-compiler-fix-map-key.patch
blob: 4f05ded53099f7652a38b80de438a37ad2be4cbc (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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])
s' returns modules in path order....A particular effect of this is that if there are ambiguous packages in a directory specified with `-L module_dir` and the distribution, the version from `module_dir` will be loaded, which is usually what would be expected. (E.g. for `guix build` or `guix package -i`.) * guix/discovery.scm (all-modules): Return modules in path order. * tests/guix-package.sh: Test local definitions take precedence. Signed-off-by: Ludovic Courtès <ludo@gnu.org> Robert Vollmert 2019-05-13tests: Fix guix-package.sh....GCC is now a hidden package, so cannot be installed. * tests/guix-package.sh: Replace 'gcc' by 'zile' in a test that install multiple packages. Maxim Cournoyer 2019-05-09ui: Make package outputs searchable....* guix/ui.scm (relevance): Allow the "field" procedure of a metric to return a list, and handle that case appropriately. Update docstring. (%package-metrics): Add a metric for package outputs. * guix/scripts/package.scm (find-packages-by-description): Update docstring. * tests/guix-package.sh: Add a test case to verify that package outputs are included in search results. Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr> Chris Marusich 2019-02-07profiles: Raise an error for unmatched patterns....Previously, "guix package -r something-not-installed" would silently complete. Now an error is raised. * guix/profiles.scm (&unmatched-pattern-error): New condition type. (manifest-matching-entries): Rewrite to raise an error when one of PATTERNS is not matched. * guix/ui.scm (call-with-error-handling): Handle 'unmatched-pattern-error?'. * tests/guix-package.sh: Add test. * tests/profiles.scm ("manifest-matching-entries"): Don't try to remove unmatched pattern. ("manifest-matching-entries, no match"): New test. ("manifest-transaction-effects"): Remove 'remove' field. Ludovic Courtès 2018-11-11guix package: '--show' errors when asked for a non-existent package....Fixes <https://bugs.gnu.org/33323>. Reported by swedebugia <swedebugia@riseup.net>. * guix/scripts/package.scm (process-query): Call 'leave' when 'find-packages-by-name' returns the empty list. * tests/guix-package.sh: Test it. Ludovic Courtès 2018-09-21profiles: 'packages->manifest' now accepts inferior packages....* guix/profiles.scm (packages->manifest)[inferiors-loaded?]: New variable. [inferior->entry]: New procedure. Accept inferior packages when INFERIORS-LOADED? is true. * tests/guix-package.sh: Add test using a manifest with an inferior. * tests/inferior.scm ("packages->manifest"): New test. Ludovic Courtès 2018-07-13guix package: Use relative symlinks to generations....Reported by Roel Janssen <roel@gnu.org> at <https://lists.gnu.org/archive/html/guix-devel/2018-07/msg00036.html>. * guix/profiles.scm (switch-to-generation): Use (basename generation) as the symlink target. * guix/scripts/package.scm (build-and-use-profile): Likewise, use (basename name) as the symlink target. * tests/guix-package.sh: Adjust --roll-back test accordingly. Add explicitly test with '-p foo/prof'. Ludovic Courtès 2018-06-06tests: Adjust 'guix package' test to "python2" name....This is a followup to a7714d42de2c3082f3609d1e63c83d703fb39cf9, which renamed Python 2.x to "python2". * tests/guix-package.sh: Use g-wrap and guile@2.0 when testing collisions. Ludovic Courtès 2018-03-31guix package: Add '--allow-collisions'....Fixes <https://bugs.gnu.org/30830>. Suggested by Ricardo Wurmus <rekado@elephly.net>. * guix/scripts/package.scm (build-and-use-profile): Add #:allow-collisions? and pass it to 'profile-derivation'. (show-help, %options): Add '--allow-collisions'. (manifest-action, process-actions): Pass #:allow-collisions? to 'build-and-use-profile'. * tests/guix-package.sh: Add collision test. * doc/guix.texi (Invoking guix package): Document '--allow-collisions'. Ludovic Courtès 2018-02-27guix package: '--search' no longer shows superseded packages....Fixes <https://bugs.gnu.org/30566>. Reported by Björn Höfling <bjoern.hoefling@bjoernhoefling.de>. * guix/scripts/package.scm (find-packages-by-description): Ignore superseded packages. * tests/guix-package.sh: Add test. Ludovic Courtès 2017-11-11tests: Adjust to new unbound-variable error message....This is a followup to dc856223f5eab57d8a4881782ec0f50abd12afa3. * tests/guix-package.sh: Adjust unbound-variable message regexp. Ludovic Courtès 2017-06-26guix package: 'guix package -r PKG -u' does not upgrade PKG....Fixes <http://bugs.gnu.org/27262>. Reported by Mark H Weaver <mhw@netris.org>. * guix/scripts/package.scm (transaction-upgrade-entry): Check if ENTRY matches 'manifest-transaction-removal-candidate?' and return TRANSACTION if it does. (process-actions): Move 'options->removable' from step 2 to step 1. Ludovic Courtès 2017-01-11guix package: Fix version and output for 'guix package -i /gnu/store/…'....* guix/utils.scm (package-name->name+version): Add optional 'delimiter' parameter. * guix/scripts/package.scm (store-item->manifest-entry): Pass #\- as the delimiter for 'package-name->name+version'. Use "out" instead of #f for the 'output' field. * tests/guix-package.sh: Add test. Ludovic Courtès