Assigning a scalar expression to mixed function space

The definition of EnrichedElement in legacy dolfin is a bit broken (partially supported).
The following works in DOLFINx (v0.5.0):

import dolfinx
import ufl
from mpi4py import MPI
mesh = dolfinx.mesh.create_unit_square(MPI.COMM_WORLD, 1, 1)
P2 = ufl.FiniteElement("P", ufl.triangle, degree=2)
bubble = ufl.FiniteElement("B", ufl.triangle, degree=3)

V = dolfinx.fem.FunctionSpace(mesh, P2+bubble)

# assigning a scalar expression to mixed element fails
u = dolfinx.fem.Function(V)
u.interpolate(lambda x: x[0])
print(u.x.array)

and

import dolfinx
import ufl
from mpi4py import MPI
mesh = dolfinx.mesh.create_unit_square(MPI.COMM_WORLD, 1, 1)
P2 = ufl.FiniteElement("P", ufl.triangle, degree=2)
bubble = ufl.FiniteElement("B", ufl.triangle, degree=3)

V = dolfinx.fem.FunctionSpace(mesh, ufl.MixedElement([P2+bubble, P2]))
W, Wmap = V.sub(0).collapse()
# assigning a scalar expression to mixed element fails
u = dolfinx.fem.Function(W)
u.interpolate(lambda x: x[0])
print(u.x.array)


v = dolfinx.fem.Function(V)
v.x.array[Wmap] = u.x.array
print(v.x.array)
print(v.sub(0).collapse().x.array)

@mscroggs might know more.

Edit
Try using a NodalEnrichedElement, which should in theory work in legacy DOLFIN.