Unverified Commit 8a5c4598 authored by Johannes Kirschbauer's avatar Johannes Kirschbauer
Browse files

lib/types: either allow unchecked values again

This fixes a slight regression of the either type
Where it allowed access to any value when used in freeformType
parent d7600c77
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -1453,7 +1453,12 @@ let
                      headError = {
                        message = "The option `${showOption loc}` is neither a value of type `${t1.description}` nor `${t2.description}`, Definition values: ${showDefs defs}";
                      };
                      value = abort "(t.merge.v2 defs).value must only be accessed when `.headError == null`. This is a bug in code that consumes a module system type.";
                      value = lib.warn ''
                        One or more definitions did not pass the type-check of the 'either' type.
                        ${headError.message}
                        If `either`, `oneOf` or similar is used in freeformType, ensure that it is preceded by an 'attrsOf' such as: `freeformType = types.attrsOf (types.either t1 t2)`.
                        Otherwise consider using the correct type for the option `${showOption loc}`.  This will be an error in Nixpkgs 26.06.
                      '' (mergeOneOption loc defs);
                    };
              in
              checkedAndMerged;