Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 69e87311 authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Merge "Fix "unknown binary op: string + list" errors"

parents 7e63d5fb 0484c237
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -1212,6 +1212,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", "")))
`,
	},
}
+9 −3
Original line number Diff line number Diff line
@@ -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)