1--TEST--
2ZE2 class type hinting
3--FILE--
4<?php
5
6interface Foo {
7	function a(Foo $foo);
8}
9
10interface Bar {
11	function b(Bar $bar);
12}
13
14class FooBar implements Foo, Bar {
15	function a(Foo $foo) {
16		// ...
17	}
18
19	function b(Bar $bar) {
20		// ...
21	}
22}
23
24class Blort {
25}
26
27$a = new FooBar;
28$b = new Blort;
29
30$a->a($b);
31$a->b($b);
32
33?>
34--EXPECTF--
35Fatal error: Uncaught TypeError: Argument 1 passed to FooBar::a() must implement interface Foo, instance of Blort given, called in %s on line 27 and defined in %s:12
36Stack trace:
37#0 %s(%d): FooBar->a(Object(Blort))
38#1 {main}
39  thrown in %s on line 12
40