Merge "Fix issue with referencing the loop variable in a foreach" am: d5f7ad3fb4 am: 7148807eeb am: 29d9ba6f38

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2004753

Change-Id: I4a2fec4cc0ba528cfe5bd49928ae012f17c68f4b
This commit is contained in:
Treehugger Robot 2022-03-02 04:47:45 +00:00 committed by Automerger Merge Worker
commit 2738ed7d58
2 changed files with 5 additions and 0 deletions

View file

@ -595,6 +595,7 @@ func (cx *callExpr) transform(transformer func(expr starlarkExpr) starlarkExpr)
for i, arg := range cx.args {
argsCopy[i] = arg.transform(transformer)
}
cx.args = argsCopy
if replacement := transformer(cx); replacement != nil {
return replacement
} else {

View file

@ -1228,6 +1228,9 @@ BOOT_KERNEL_MODULES_LIST := foo.ko
BOOT_KERNEL_MODULES_LIST += bar.ko
BOOT_KERNEL_MODULES_FILTER_2 := $(foreach m,$(BOOT_KERNEL_MODULES_LIST),%/$(m))
FOREACH_WITH_IF := $(foreach module,\
$(BOOT_KERNEL_MODULES_LIST),\
$(if $(filter $(module),foo.ko),,$(error module "$(module)" has an error!)))
`,
expected: `load("//build/make/core:product_config.rbc", "rblf")
@ -1238,6 +1241,7 @@ def init(g, handle):
g["BOOT_KERNEL_MODULES_LIST"] = ["foo.ko"]
g["BOOT_KERNEL_MODULES_LIST"] += ["bar.ko"]
g["BOOT_KERNEL_MODULES_FILTER_2"] = ["%%/%s" % m for m in g["BOOT_KERNEL_MODULES_LIST"]]
g["FOREACH_WITH_IF"] = [("" if rblf.filter(module, "foo.ko") else rblf.mkerror("product.mk", "module \"%s\" has an error!" % module)) for module in g["BOOT_KERNEL_MODULES_LIST"]]
`,
},
{