public function testInvocation()
{
$this->doAnalysisTest(function (\Closure $closure) {
$closure('abc');
}, function (ITypeAnalysis $analysis, O\InvocationExpression $expression) {
$this->assertTypeMatchesValue($analysis, $expression->getArguments()[0]->getValue(), $this->typeSystem->getNativeType(INativeType::TYPE_STRING));
$this->assertEqualsObjectType('Closure', $analysis->getInvocation($expression)->getSourceType());
$this->assertEqualsNativeType(INativeType::TYPE_MIXED, $analysis->getInvocation($expression)->getReturnType());
});
$this->assertReturnsNativeType(function (\Closure $closure) {
$closure();
}, INativeType::TYPE_MIXED);
}