mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-17 19:21:04 +00:00
lib/types: fix toCoerced's typeMerge (#341112)
This commit is contained in:
commit
bb4880fbaf
|
@ -294,6 +294,9 @@ checkConfigOutput '^"42"$' config.value ./declare-coerced-value.nix
|
||||||
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
|
checkConfigOutput '^"24"$' config.value ./declare-coerced-value.nix ./define-value-string.nix
|
||||||
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n\s*- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
|
||||||
|
|
||||||
|
# Check coerced option merging.
|
||||||
|
checkConfigError 'The option .value. in .*/declare-coerced-value.nix. is already declared in .*/declare-coerced-value-no-default.nix.' config.value ./declare-coerced-value.nix ./declare-coerced-value-no-default.nix
|
||||||
|
|
||||||
# Check coerced value with unsound coercion
|
# Check coerced value with unsound coercion
|
||||||
checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
|
checkConfigOutput '^12$' config.value ./declare-coerced-value-unsound.nix
|
||||||
checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
|
checkConfigError 'A definition for option .* is not of type .*. Definition values:\n\s*- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
|
||||||
|
|
9
lib/tests/modules/declare-coerced-value-no-default.nix
Normal file
9
lib/tests/modules/declare-coerced-value-no-default.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
value = lib.mkOption {
|
||||||
|
type = lib.types.coercedTo lib.types.int builtins.toString lib.types.str;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1035,7 +1035,7 @@ rec {
|
||||||
getSubOptions = finalType.getSubOptions;
|
getSubOptions = finalType.getSubOptions;
|
||||||
getSubModules = finalType.getSubModules;
|
getSubModules = finalType.getSubModules;
|
||||||
substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
|
substSubModules = m: coercedTo coercedType coerceFunc (finalType.substSubModules m);
|
||||||
typeMerge = t1: t2: null;
|
typeMerge = t: null;
|
||||||
functor = (defaultFunctor name) // { wrapped = finalType; };
|
functor = (defaultFunctor name) // { wrapped = finalType; };
|
||||||
nestedTypes.coercedType = coercedType;
|
nestedTypes.coercedType = coercedType;
|
||||||
nestedTypes.finalType = finalType;
|
nestedTypes.finalType = finalType;
|
||||||
|
|
Loading…
Reference in a new issue