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

nette / forms / 27628929619
93%
master: 93%

Build:
Build:
LAST BUILD BRANCH: v3.2
DEFAULT BRANCH: master
Ran 16 Jun 2026 03:31PM UTC
Jobs 1
Files 46
Run time 1min
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

16 Jun 2026 03:30PM UTC coverage: 93.354%. Remained the same
27628929619

Pull #352

github

dg
removed return type from Container::__call() again [Closes nette/utils#338]

The native `: mixed` return type was accidentally reintroduced on
Container::__call() by 7cbe717e ("added missing native types"),
reviving an incompatibility that had already been fixed once for
nette/utils#315 (commit 40afa807).

Nette\SmartObject::__call() in nette/utils intentionally declares no
native return type (it stays untyped for BC). As long as nobody
re-applies the trait, narrowing the inherited untyped __call() to
`: mixed` is allowed and everything loads fine - which is why the test
suite and Forms' own classes are unaffected.

The fatal error appears only when a subclass extends Form/Container AND
re-applies the SmartObject trait, e.g.:

	class MyForm extends Nette\Forms\Form { use Nette\SmartObject; }

Then the trait's untyped __call() overrides the already-typed
__call(): mixed, which PHP rejects as removing a return type:

	Declaration of Nette\SmartObject::__call(string $name, array $args)
	must be compatible with
	Nette\Forms\Container::__call(string $name, array $args): mixed

Re-applying SmartObject on top of a class that already has it is an
unusual, unexpected pattern, so the regression slipped through - but it
happens in the wild (e.g. via downstream component classes), breaks on
all PHP 8.1-8.5, and matches the report that 3.2.8 works but 3.2.9 does
not. Dropping the native return type (keeping it in phpDoc) restores
compatibility. A regression test covering the trait combination is added.
Pull Request #352: Container: removed return type from __call() again [Closes nette/utils#338]

1 of 1 new or added line in 1 file covered. (100.0%)

2107 of 2257 relevant lines covered (93.35%)

0.93 hits per line

Jobs
ID Job ID Ran Files Coverage
1 27628929619.1 16 Jun 2026 03:31PM UTC 46
93.35
GitHub Action Run
Source Files on build 27628929619
  • Tree
  • List 46
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #352
  • PR Base - v3.2 (#27033310029)
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