Files
lix/tests
John EricsonandRobert Hensing d2162e7acd Make more string values work as installables
As discussed in #7417, it would be good to make more string values work
as installables. That is to say, if an installable refers to a value,
and the value is a string, it used to not work at all, since #7484, it
works somewhat, and this PR make it work some more.

The new cases that are added for `BuiltPath` contexts:

- Fixed input- or content-addressed derivation:

  ```
  nix-repl> hello.out.outPath
  "/nix/store/jppfl2bp1zhx8sgs2mgifmsx6dv16mv2-hello-2.12"

  nix-repl> :p builtins.getContext hello.out.outPath
  { "/nix/store/c7jrxqjhdda93lhbkanqfs07x2bzazbm-hello-2.12.drv" = { outputs = [ "out" ]; }; }

  The string matches the specified single output of that derivation, so
  it should also be valid.

- Floating content-addressed derivation:

  ```
  nix-repl> (hello.overrideAttrs (_: { __contentAddressed = true; })).out.outPath
  "/1a08j26xqc0zm8agps8anxpjji410yvsx4pcgyn4bfan1ddkx2g0"

  nix-repl> :p builtins.getContext (hello.overrideAttrs (_: { __contentAddressed = true; })).out.outPath
  { "/nix/store/qc645pyf9wl37c6qvqzaqkwsm1gp48al-hello-2.12.drv" = { outputs = [ "out" ]; }; }
  ```

  The string is not a path but a placeholder, however it also matches
  the context, and because it is a CA derivation we have no better
  option. This should also be valid.

We may also want to think about richer attrset based values (also
discussed in that issue and #6507), but this change "completes" our
string-based building blocks, from which the others can be desugared
into or at least described/document/taught in terms of.

Progress towards #7417

Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
2023-05-15 09:03:38 -04:00
..
2023-04-19 18:49:50 -04:00
2023-03-16 18:43:03 -04:00
2020-04-14 18:45:06 +02:00
2023-05-08 08:01:58 -04:00
2023-03-22 09:45:08 +04:00
2021-07-07 10:48:47 +02:00
2019-12-13 19:05:26 +01:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2022-12-08 16:03:20 -05:00
2023-03-16 18:43:03 -04:00
2014-08-21 21:50:19 +02:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2022-12-06 16:36:42 +01:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-16 18:43:03 -04:00
2023-03-08 10:26:30 -05:00
2021-07-07 11:30:35 +02:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2018-02-13 14:26:19 +00:00
2023-03-08 10:26:30 -05:00
2023-03-16 18:43:03 -04:00
2023-03-16 18:43:03 -04:00
2023-03-16 18:43:03 -04:00
2023-03-16 18:43:03 -04:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2020-07-30 16:38:04 -05:00
2023-03-08 10:26:30 -05:00
2022-03-11 10:00:19 -05:00
2023-03-08 10:26:30 -05:00
2023-03-16 18:43:03 -04:00
2006-07-21 13:21:43 +00:00
2023-04-17 09:35:43 -04:00
2023-03-08 10:26:30 -05:00
2023-03-16 18:43:03 -04:00
2023-04-06 19:59:57 -04:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-04-03 20:47:21 +02:00
2020-07-30 16:38:04 -05:00
2023-03-16 18:43:03 -04:00
2018-01-16 19:23:18 +01:00
2023-03-08 10:26:30 -05:00
2021-10-15 16:58:21 +02:00
2023-04-06 19:59:57 -04:00
2018-01-16 19:23:18 +01:00
2023-03-08 10:26:30 -05:00
2018-02-25 16:40:05 -06:00
2023-03-08 10:26:30 -05:00
2016-04-11 16:20:15 +02:00
2023-03-16 18:43:03 -04:00
2021-12-07 21:45:09 +01:00
2007-08-13 13:15:02 +00:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2023-03-16 18:43:03 -04:00
2012-12-04 14:47:50 +01:00
2023-03-08 10:26:30 -05:00
2023-03-08 10:26:30 -05:00
2021-04-09 23:13:08 +02:00