summaryrefslogtreecommitdiff
path: root/lib/asserts.nix (follow)
Commit message (Collapse)AuthorAgeFilesLines
* treewide: format all inactive Nix filesSilvan Mosberger2024-12-101-20/+10
| | | | | | | | | | | | | | | | | | | | | | After final improvements to the official formatter implementation, this commit now performs the first treewide reformat of Nix files using it. This is part of the implementation of RFC 166. Only "inactive" files are reformatted, meaning only files that aren't being touched by any PR with activity in the past 2 months. This is to avoid conflicts for PRs that might soon be merged. Later we can do a full treewide reformat to get the rest, which should not cause as many conflicts. A CI check has already been running for some time to ensure that new and already-formatted files are formatted, so the files being reformatted here should also stay formatted. This commit was automatically created and can be verified using nix-build https://github.com/infinisil/treewide-nixpkgs-reformat-script/archive/a08b3a4d199c6124ac5b36a889d9099b4383463f.tar.gz \ --argstr baseRev b32a0943687d2a5094a6d92f25a4b6e16a76b5b7 result/bin/apply-formatting $NIXPKGS_PATH
* doc: lib.asserts migrate to doc-comments (#292310)Johannes Kirschbauer2024-03-071-42/+104
|
* lib: add asserts.assertEachOneOfProfpatsch2023-11-091-0/+29
| | | | | | | Along the lines of `assertOneOf`, but expects a list of values to be compared. This gives a good error message and is useful for lists of values, like `supportedGhcVersions` in the arguments of `haskell-language-server`.
* doc: auto-generate asserts and attrset library docsRyan Mulligan2022-12-081-4/+15
| | | | | | | | If all the docs are auto-generated, it should be easier to convert them to Commonmark. Co-Authored-By: Valentin Gagarin <valentin.gagarin@tweag.io> Co-Authored-By: Silvan Mosberger <contact@infinisil.com>
* lib/asserts: use throw to display message for assertMsgsternenseemann2022-01-191-12/+10
| | | | | | | | | | | | | | | | | | | | | `assert` has the annoying property that it dumps a lot of code at the user without the built in capability to display a nicer message. We have worked around this using `assertMsg` which would *additionally* display a nice message. We can do even better: By using `throw` we can make evaluation fail before assert draws its conclusions and prevent it from displaying the code making up the assert condition, so we get the nicer message of `throw` and the syntactical convenience of `assert`. Before: nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; } trace: Deterministic builds require stripping bytecode. error: assertion (((lib).assertMsg (reproducibleBuild -> stripBytecode)) "Deterministic builds require stripping bytecode.") failed at /home/lukas/src/nix/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix:45:1 After: nix-repl> python.override { reproducibleBuild = true; stripBytecode = false; } error: Deterministic builds require stripping bytecode.
* lib: move assertMsg and assertOneOf to their own library fileProfpatsch2018-09-061-0/+44
Since the `assertOneOf` uses `lib.generators`, they are not really trivial anymore and should go into their own library file.