1--TEST--
2Edge cases in compile-time method argument binding
3--FILE--
4<?php
5
6class A {
7    private function method($x) {}
8}
9
10class B extends A {
11    public function test() {
12        $x = 1;
13        $this->method($x);
14        var_dump($x);
15    }
16}
17
18class C extends B {
19    public function method(&$x) {
20        ++$x;
21    }
22}
23
24(new C)->test();
25
26class D {
27    private function method(&$x) {
28        ++$x;
29    }
30}
31
32class E extends D {
33    public function __call($name, $args) { }
34
35    public function test() {
36        $this->method($x);
37    }
38}
39
40(new E)->test();
41
42?>
43--EXPECTF--
44int(2)
45
46Warning: Undefined variable $x in %s on line %d
47