Fix "unknown binary op: string + list" errors
Convert lists to strings when adding them to a string. Bug: 201700692 Test: go test Change-Id: Iefb68f48191136e7115a6d6bfa0608c73d5afdac
This commit is contained in:
parent
68542bfcb5
commit
0484c2378f
2 changed files with 36 additions and 3 deletions
|
@ -1178,6 +1178,33 @@ 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"]]
|
||||
`,
|
||||
},
|
||||
{
|
||||
desc: "List appended to string",
|
||||
mkname: "product.mk",
|
||||
in: `
|
||||
NATIVE_BRIDGE_PRODUCT_PACKAGES := \
|
||||
libnative_bridge_vdso.native_bridge \
|
||||
native_bridge_guest_app_process.native_bridge \
|
||||
native_bridge_guest_linker.native_bridge
|
||||
|
||||
NATIVE_BRIDGE_MODIFIED_GUEST_LIBS := \
|
||||
libaaudio \
|
||||
libamidi \
|
||||
libandroid \
|
||||
libandroid_runtime
|
||||
|
||||
NATIVE_BRIDGE_PRODUCT_PACKAGES += \
|
||||
$(addsuffix .native_bridge,$(NATIVE_BRIDGE_ORIG_GUEST_LIBS))
|
||||
`,
|
||||
expected: `load("//build/make/core:product_config.rbc", "rblf")
|
||||
|
||||
def init(g, handle):
|
||||
cfg = rblf.cfg(handle)
|
||||
g["NATIVE_BRIDGE_PRODUCT_PACKAGES"] = "libnative_bridge_vdso.native_bridge native_bridge_guest_app_process.native_bridge native_bridge_guest_linker.native_bridge"
|
||||
g["NATIVE_BRIDGE_MODIFIED_GUEST_LIBS"] = "libaaudio libamidi libandroid libandroid_runtime"
|
||||
g["NATIVE_BRIDGE_PRODUCT_PACKAGES"] += " " + " ".join(rblf.addsuffix(".native_bridge", g.get("NATIVE_BRIDGE_ORIG_GUEST_LIBS", "")))
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
|
|
@ -81,10 +81,12 @@ func (pcv productConfigVariable) emitSet(gctx *generationContext, asgn *assignme
|
|||
emitAppend := func() {
|
||||
pcv.emitGet(gctx, true)
|
||||
gctx.write(" += ")
|
||||
value := asgn.value
|
||||
if pcv.valueType() == starlarkTypeString {
|
||||
gctx.writef(`" " + `)
|
||||
value = &toStringExpr{expr: value}
|
||||
}
|
||||
asgn.value.emit(gctx)
|
||||
value.emit(gctx)
|
||||
}
|
||||
|
||||
switch asgn.flavor {
|
||||
|
@ -136,10 +138,12 @@ func (scv otherGlobalVariable) emitSet(gctx *generationContext, asgn *assignment
|
|||
emitAppend := func() {
|
||||
scv.emitGet(gctx, true)
|
||||
gctx.write(" += ")
|
||||
value := asgn.value
|
||||
if scv.valueType() == starlarkTypeString {
|
||||
gctx.writef(`" " + `)
|
||||
value = &toStringExpr{expr: value}
|
||||
}
|
||||
asgn.value.emit(gctx)
|
||||
value.emit(gctx)
|
||||
}
|
||||
|
||||
switch asgn.flavor {
|
||||
|
@ -193,10 +197,12 @@ func (lv localVariable) emitSet(gctx *generationContext, asgn *assignmentNode) {
|
|||
case asgnAppend:
|
||||
lv.emitGet(gctx, false)
|
||||
gctx.write(" += ")
|
||||
value := asgn.value
|
||||
if lv.valueType() == starlarkTypeString {
|
||||
gctx.writef(`" " + `)
|
||||
value = &toStringExpr{expr: value}
|
||||
}
|
||||
asgn.value.emit(gctx)
|
||||
value.emit(gctx)
|
||||
case asgnMaybeAppend:
|
||||
gctx.writef("%s(%q, ", cfnLocalAppend, lv)
|
||||
asgn.value.emit(gctx)
|
||||
|
|
Loading…
Reference in a new issue