• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Qiskit / qiskit / 24902071099
88%

Build:
DEFAULT BRANCH: main
Ran 24 Apr 2026 05:39PM UTC
Jobs 1
Files 933
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Apr 2026 04:37PM UTC coverage: 87.567% (-0.007%) from 87.574%
24902071099

push

github

web-flow
Remove equality between Param::Obj and Param::ParameterExpression (#16084)

This commit fixes a mismatch in the Param::eq() method where a Python
object param was potentially viewed as equal to a ParameterExpression
param. When comparing a python object parameter with a
ParameterExpression it would convert the ParameterExpression into a
pyobject and then uses Python's == to evaluate the equality.
Historically this was something that was done because the
ParameterExpression object was also a Python object. However, since
the function was first written the source of truth for the inner
ParameterExpression has moved to Rust. We're never in a situation
anymore when a ParameterExpression parameter on an instruction should be
treated as a Python object.

While this legacy equality may seem harmless because the equality should
typically just evaluate to false (albeit slowly through Python's
equality check), there are edge cases where this is doing the incorrect
comparison. Primarily the bug that #16076 was fixing was not caught
initially because in tests this legacy logic was converting a
ParameterExpression that is a constant int expression with no symbols
to a Python int during the conversion of the expression to Python.
That was then being compared against a Param::Obj() of a true Python
int. The equality check would incorrectly assert the ParameterExpression
was the same as the python int. This is what masked the bug in #16076
because this differs from how the rust data model treats these
parameters.

1 of 3 new or added lines in 1 file covered. (33.33%)

16 existing lines in 4 files now uncovered.

104882 of 119774 relevant lines covered (87.57%)

977677.8 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
82.31
0.16% crates/circuit/src/operations.rs

Coverage Regressions

Lines Coverage ∆ File
6
97.63
-0.47% crates/qasm2/src/parse.rs
5
73.88
-0.2% crates/circuit/src/parameter/symbol_expr.rs
4
92.29
0.0% crates/qasm2/src/lex.rs
1
90.53
0.0% crates/circuit/src/parameter/parameter_expression.rs
Jobs
ID Job ID Ran Files Coverage
1 24902071099.1 24 Apr 2026 05:39PM UTC 933
87.57
GitHub Action Run
Source Files on build 24902071099
  • Tree
  • List 933
  • Changed 5
  • Source Changed 1
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #24902071099
  • 091e4044 on github
  • Prev Build on gh-readonly-queue/main/pr-16076-56beeb8b473111f876b50b0c4d99ff50b9505943 (#24893734186)
  • Next Build on main (#24918653196)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc