compile('override_variadic_absorbs_params.php'); } public function testChildVariadicTypeMustCoverEveryAbsorbedPosition(): void { $this->exec( 'Declaration of `B::f()` must be compatible with `A::f()`', 'override_variadic_bad_type.php', ); } public function testChildVariadicMustMatchByRefOfAbsorbedPosition(): void { $this->exec( 'Declaration of `B::f()` must be compatible with `A::f()`', 'override_variadic_byref_mismatch.php', ); } public function testVariadicParentRequiresVariadicChild(): void { $this->exec( 'Declaration of `B::f()` must be compatible with `A::f()`', 'override_parent_variadic_child_not.php', ); } public function testExtraChildParametersCheckedAgainstParentVariadic(): void { $this->compile('override_parent_variadic_child_extra.php'); } }