if ($frame['function'
] ?? false
) { $stub =
new CutStub(new \
stdClass());
$stub->class =
(isset($frame['class'
]) ?
$frame['class'
].
$frame['type'
] : ''
).
$frame['function'
];
$stub->type = Stub::TYPE_OBJECT;
$stub->attr
['cut_hash'
] = true;
$stub->attr
['file'
] =
$frame['file'
];
$stub->attr
['line'
] =
$frame['line'
];
try { $caller =
isset($frame['class'
]) ?
new \
ReflectionMethod($frame['class'
],
$frame['function'
]) :
new \
ReflectionFunction($frame['function'
]);
$stub->class .= ReflectionCaster::
getSignature(ReflectionCaster::
castFunctionAbstract($caller,
[],
$stub, true, Caster::EXCLUDE_VERBOSE
));
if ($f =
$caller->
getFileName()) { $stub->attr
['file'
] =
$f;
$stub->attr
['line'
] =
$caller->
getStartLine();
} } catch (\ReflectionException
) { // ignore fake class/function
} $srcLines =
["\0~separator=\0" =>
$stub];
} else {