xref: /PHP-7.1/Zend/tests/traits/bug60217c.phpt (revision 113213f0)
1--TEST--
2Bug #60217 (Requiring the same method from different traits and abstract methods have to be compatible, in both directions.)
3--FILE--
4<?php
5
6trait TBroken1 {
7    public abstract function foo($a, $b = 0);
8}
9
10trait TBroken2 {
11    public abstract function foo($a);
12}
13
14class CBroken {
15    use TBroken1, TBroken2;
16
17    public function foo($a) {
18        echo 'FOO';
19    }
20}
21
22$o = new CBroken;
23$o->foo(1);
24--EXPECTF--
25Fatal error: Declaration of TBroken2::foo($a) must be compatible with TBroken1::foo($a, $b = 0) in %s on line %d
26