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

Qiskit / qiskit / 35909882113
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: no-str-parser/1
DEFAULT BRANCH: main
Ran 23 Sep 2026 08:04PM UTC
Jobs 1
Files 974
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

23 Sep 2026 07:31PM UTC coverage: 87.957% (+0.05%) from 87.905%
35909882113

push

github

web-flow
Add `ProgramFunction` to the providers crate (#16922)

* Add a program function, one typed dataflow graph

Instructions are the only entity a function holds. A value is an output slot of
the instruction that produces it, and a function's parameters and results are
instructions too, so every value has a producer and every operand refers to one.
Three properties then follow from how a function is built rather than needing to
be maintained: an instruction stores exactly as many operands as its arity, so it
cannot be half-wired; its result types are inferred and kept as it is added, so a
signature is a table read; and its operands must already exist, so storage order
is topological, evaluation is one forward walk with nothing to sort, and a cycle
is not representable.

Instructions carry no labels. An instruction is identified by its index and
described by its type name, and those are what a diagnostic names.

A function holds ops of different concrete types, so it stores them behind `dyn`.
`ErasedOpNodeType` is `OpNodeType` with its error type boxed, blanket implemented
for every op that is `Clone`, `Send` and `Sync`. `Clone` is not dyn-compatible,
so it is reached through a sealed helper trait whose blanket implementation asks
an implementor for nothing but `Clone`.

An instruction records both its operand types and its result types, so the
coercions in a built program remain reconstructible as explicit conversions.

* Assert on error variants rather than on error messages

A test that reads an error's `Display` output has to change whenever the wording
does. Each one now matches on the variant, downcasting where the source is boxed.
Also applies four doc-comment suggestions from review.

738 of 795 new or added lines in 2 files covered. (92.83%)

8 existing lines in 3 files now uncovered.

120447 of 136939 relevant lines covered (87.96%)

959283.11 hits per line

Uncovered Changes

Lines Coverage ∆ File
45
94.12
crates/providers/src/program/program_function.rs
12
63.64
-36.36% crates/providers/src/ops/program_op.rs

Coverage Regressions

Lines Coverage ∆ File
5
92.03
-0.51% crates/qasm2/src/lex.rs
2
81.63
-0.03% crates/circuit/src/parameter/symbol_expr.rs
1
90.32
0.0% crates/circuit/src/parameter/parameter_expression.rs
Jobs
ID Job ID Ran Files Coverage
1 35909882113.1 23 Sep 2026 08:04PM UTC 974
87.96
GitHub Action Run
Source Files on build 35909882113
  • Tree
  • List 974
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35909882113
  • 1e83a77a on github
  • Prev Build on gh-readonly-queue/main/pr-16916-806feaca6c60ac935448bf275676a8702ff2a4d7 (#35909879487)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc