Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions qiskit/circuit/quantumcircuit.py
Original file line number Diff line number Diff line change
Expand Up @@ -2412,9 +2412,7 @@ def map_vars(op):
new_clbits=mapped_clbits,
)
if append_existing:
dest._current_scope().extend(
append_existing, qubits=mapped_qubits, clbits=mapped_clbits
)
dest._current_scope().extend(append_existing)

return None if inplace else dest

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
fixes:
- |
Fixed :meth:`.QuantumCircuit.compose` raising :exc:`ValueError` (``'qubits'
argument is the wrong length``) when ``front=True`` is used with an explicit
``qubits`` mapping.

See `#15834 <https://github.com/Qiskit/qiskit/issues/15834>`__.
17 changes: 17 additions & 0 deletions test/python/circuit/test_compose.py
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,23 @@ def test_compose_front_gate(self):

self.assertEqual(output, expected)

def test_compose_front_smaller_circuit(self):
"""Test composing a smaller circuit at the front with explicit qubits mapping."""

qc_base = QuantumCircuit(2)
qc_base.h(0)

qc_x = QuantumCircuit(1)
qc_x.x(0)

output = qc_base.compose(qc_x, qubits=[0], front=True)

expected = QuantumCircuit(2)
expected.x(0)
expected.h(0)

self.assertEqual(output, expected)

def test_compose_adds_parameters(self):
"""Test the composed circuit contains all parameters."""
a, b = Parameter("a"), Parameter("b")
Expand Down