Fix global phase update in BasisTranslator
Pass (backport #14078)
#14092
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #14074.
The
basis_translator
pass was not always updating the DAG's global phase as a part ofreplace_node
: this was only done when the target dag's global phase matchedParam::ParameterExpression
. Updating the global phase in the case ofParam::Float
was missing, and this is fixed now.I am somewhat unsure if we also need to handle the
Param::Obj
case. I don't understand in what kind of a circuit we would see this, and I don't believe it's even supported, as perdag_circuit.rs.add_global_phase
, which throws an error in the case ofParam::Obj
. Update: @jakelishman confirmed thatParam::Obj
is never permitted inglobal_phase
.Update: added release notes.
This is an automatic backport of pull request #14078 done by [Mergify](https://mergify.com).