1--TEST--
2Parameter variance with no type
3--FILE--
4<?php
5
6class Foo {
7    function testParentClass(Foo $foo) {}
8    function testBothClass(Foo $foo) {}
9    function testChildClass($foo) {}
10    function testNoneClass($foo) {}
11
12    function testParentBuiltin(int $foo) {}
13    function testBothBuiltin(int $foo) {}
14    function testChildBuiltin($foo) {}
15    function testNoneBuiltin($foo) {}
16}
17
18class Bar extends Foo {
19    function testParentClass($foo) {}
20    function testBothClass(Foo $foo) {}
21    function testChildClass(Foo $foo) {}
22    function testNoneClass($foo) {}
23
24    function testParentBuiltin($foo) {}
25    function testBothBuiltin(int $foo) {}
26    function testChildBuiltin(int $foo) {}
27    function testNoneBuiltin($foo) {}
28}
29
30?>
31--EXPECTF--
32Warning: Declaration of Bar::testChildClass(Foo $foo) should be compatible with Foo::testChildClass($foo) in %s on line %d
33
34Warning: Declaration of Bar::testChildBuiltin(int $foo) should be compatible with Foo::testChildBuiltin($foo) in %s on line %d
35