gexp: ‘with-parameters’ accepts plain store items in its body.

* guix/gexp.scm (compile-parameterized): Return ‘obj’ as-is when it’s
not a struct.
* tests/gexp.scm ("with-parameters + store item"): New test.

Change-Id: I5b5348b98bce923d07f6fa39b2f0948723011db8
This commit is contained in:
Ludovic Courtès 2025-01-28 14:51:00 +01:00
parent 72de3752f0
commit 3ad2d21671
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 24 additions and 7 deletions

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2021-2022 Maxime Devos <maximedevos@telenet.be>
;;;
;;; This file is part of GNU Guix.
@ -467,6 +467,15 @@
(string=? result
(string-append (derivation->output-path drv)
"/bin/touch"))))))
(test-assert "with-parameters + store item"
(let* ((file (add-text-to-store %store "hello.txt" "Hello, world!"))
(obj (with-parameters ((%current-system "aarch64-linux"))
file))
(lowered (run-with-store %store
(lower-object obj))))
(string=? lowered file)))
(test-equal "let-system"
(list `(begin ,(%current-system) #t) '(system-binding)
'low '() '())