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

Qiskit / qiskit / 34398811182
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: gh-readonly-queue/main/pr-16996-0131cbbcc85b42076bbcbdd16737c693007c34c2
DEFAULT BRANCH: main
Ran 09 Sep 2026 08:38PM UTC
Jobs 1
Files 969
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

09 Sep 2026 08:04PM UTC coverage: 87.99% (+0.06%) from 87.933%
34398811182

Pull #16922

github

mtreinish
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.
Pull Request #16922: Add `ProgramFunction` to the providers crate

729 of 783 new or added lines in 2 files covered. (93.1%)

6 existing lines in 2 files now uncovered.

118648 of 134842 relevant lines covered (87.99%)

971307.66 hits per line

Uncovered Changes

Lines Coverage ∆ File
45
93.96
crates/providers/src/program/program_function.rs
9
78.05
-21.95% crates/providers/src/ops/program_op.rs

Coverage Regressions

Lines Coverage ∆ File
5
92.29
-0.26% crates/qasm2/src/lex.rs
1
81.8
0.1% crates/circuit/src/parameter/symbol_expr.rs
Jobs
ID Job ID Ran Files Coverage
1 34398811182.1 09 Sep 2026 08:38PM UTC 969
87.99
GitHub Action Run
Source Files on build 34398811182
  • Tree
  • List 969
  • Changed 6
  • Source Changed 1
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34398811182
  • Pull Request #16922
  • PR Base - ihincks/qp-03-node-trait-update (#34398810386)
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