private function assertOutCallSites(AbstractFunction $function, array $outMethods, array $outFunctions) { $this->assertSame(count($outMethods) + count($outFunctions), count($function->getOutCallSites())); $this->assertSame(count($outMethods), count($function->getOutMethodCallSites())); $this->assertSame(count($outFunctions), count($function->getOutFunctionCallSites())); $i = 0; foreach ($function->getOutMethodCallSites() as $site) { $this->assertTrue(isset($outMethods[$i])); $this->assertSame($function, $site->getSource()); $this->assertSame($outMethods[$i], $site->getTarget()); $i += 1; } $i = 0; foreach ($function->getOutFunctionCallSites() as $site) { $this->assertTrue(isset($outFunctions[$i])); $this->assertSame($function, $site->getSource()); $this->assertSame($outFunctions[$i], $site->getTarget()); $i += 1; } }
private function removeOutCallSites(AbstractFunction $function) { foreach ($function->getOutCallSites() as $site) { $site->getTarget()->removeCallSite($site); } }