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

Qiskit / qiskit / 24900731149
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: stable/2.4
DEFAULT BRANCH: main
Ran 24 Apr 2026 05:00PM UTC
Jobs 1
Files 933
Run time 3min
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.559% (-0.02%) from 87.574%
24900731149

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%)

28 existing lines in 2 files now uncovered.

104873 of 119774 relevant lines covered (87.56%)

981329.23 hits per line

Uncovered Changes

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

Coverage Regressions

Lines Coverage ∆ File
24
96.21
-1.9% crates/qasm2/src/parse.rs
4
92.03
-0.26% crates/qasm2/src/lex.rs
Jobs
ID Job ID Ran Files Coverage
1 24900731149.1 24 Apr 2026 05:00PM UTC 933
87.56
GitHub Action Run
Source Files on build 24900731149
  • 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 #24900731149
  • 091e4044 on github
  • Prev Build on gh-readonly-queue/main/pr-16076-56beeb8b473111f876b50b0c4d99ff50b9505943 (#24893734186)
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