<?php
/**
 * Test xdebug coverage results regarding multi-line class instantiate
 *
 * @author Erik Theoboldt <theoboldt@teqneers.de>
 */

//TEST
class A {
    public function b($a, $b, $c, $d) {
        return new B(
            $a,
            $b,
            $c,
            $d
        );
    }
}

class B {
    public function __construct($a, $b, $c, bool $d) { }
}

xdebug_start_code_coverage(XDEBUG_CC_UNUSED | XDEBUG_CC_DEAD_CODE);
$a        = new A();
$b        = $a->b(
    'a',
    'b',
    'c',
    'd'
);
$coverage = xdebug_get_code_coverage();
xdebug_stop_code_coverage();


//EVALUATE (not part of proof)
echo "<pre>\n";
print_r(
    [
        'phpversion(\'xdebug\')' => phpversion('xdebug'),
        'phpversion()'           => phpversion(),
        'php_sapi_name()'        => php_sapi_name()
    ]
);
print_r($coverage);