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

extphprs / ext-php-rs / 25385163029
72%
master: 66%

Build:
Build:
LAST BUILD BRANCH: feat/issue-199-primitive-union-types
DEFAULT BRANCH: master
Ran 05 May 2026 03:22PM UTC
Jobs 1
Files 100
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

05 May 2026 03:12PM UTC coverage: 72.479% (+6.2%) from 66.241%
25385163029

Pull #734

github

ptondereau
fix(tests,builders): wrap PHP function handlers in zend_fastcall! for windows

FunctionHandler resolves to extern "C" on unix and to
extern "vectorcall" on windows. The new compound-type integration
handlers (class union, intersection, DNF, primitive union) and the
src/builders/function.rs noop_handler test helper were declared
as plain extern "C", which only matches the unix alias and so
failed to type-check on windows with E0308.

Wrap each handler in zend_fastcall! { ... }, the same macro
closure.rs and builders/class.rs already use. The macro rewrites
the ABI to vectorcall on windows and stays C on unix.

Also gates the noop_handler helper behind cfg(php83) since the
tests that consume it are all PHP 8.3+ (class union, intersection,
DNF return types).

Drops a redundant `#![cfg_attr(windows, feature(abi_vectorcall))]`
attribute inside src/describe/mod.rs's tests module: inner
`feature` attributes only take effect at the crate root, so it was
a no-op that produced "the `#![feature]` attribute can only be
used at the crate root" on every windows compile. The crate root
already enables the feature in src/lib.rs.
Pull Request #734: feat!: PHP 8 union, intersection, DNF, and class-union type hints

2871 of 3074 new or added lines in 21 files covered. (93.4%)

3 existing lines in 2 files now uncovered.

11514 of 15886 relevant lines covered (72.48%)

33.34 hits per line

Uncovered Changes

Lines Coverage ∆ File
49
94.22
crates/types/src/php_type.rs
29
76.07
-0.23% src/builders/class.rs
26
72.63
crates/types/src/data_type.rs
26
61.96
11.96% src/flags.rs
18
97.17
-1.48% src/zend/_type.rs
9
88.02
26.46% src/describe/stub.rs
9
94.71
src/zend/expected_type.rs
9
8.33
-0.9% src/zend/module.rs
8
77.78
crates/macros/src/php_union.rs
8
90.76
3.44% src/describe/mod.rs
3
37.39
10.8% src/convert.rs
2
92.02
-0.59% crates/macros/src/interface.rs
2
6.12
6.12% src/error.rs
1
91.73
1.69% crates/macros/src/function.rs
1
88.92
0.21% crates/macros/src/impl_.rs
1
54.46
0.0% src/builders/enum_builder.rs
1
86.32
12.63% src/builders/function.rs
1
72.12
0.0% src/builders/module.rs

Coverage Regressions

Lines Coverage ∆ File
2
61.96
11.96% src/flags.rs
1
8.33
-0.9% src/zend/module.rs
Jobs
ID Job ID Ran Files Coverage
1 25385163029.1 05 May 2026 03:22PM UTC 100
72.48
GitHub Action Run
Source Files on build 25385163029
  • Tree
  • List 100
  • Changed 20
  • Source Changed 20
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #25385163029
  • Pull Request #734
  • PR Base - master (#24796431378)
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