/**
* @param string $sourceArg
* @param string $ruleSetArg
*
* @return Violation[]
*
* @throws \Exception
*/
public function checkForDeprecations($sourceArg, $ruleSetArg)
{
$this->output->startProgress();
$this->output->startRuleSetGeneration();
$ruleSet = $this->ruleSetLoader->loadRuleSet($ruleSetArg);
$ruleSet->merge($this->preDefinedRuleSet);
$this->output->endRuleSetGeneration();
$this->output->startUsageDetection();
// TODO: Move to AncestorResolver not hard coded
$lib = is_dir($ruleSetArg) ? $ruleSetArg : realpath('vendor');
$this->ancestorResolver->setSourcePaths(array($sourceArg, $lib));
$result = $this->deprecationFinder->parsePhpFiles($sourceArg);
$violations = $this->violationDetector->getViolations($ruleSet, $result->parsedFiles());
$this->output->endUsageDetection();
$this->output->startOutputRendering();
$this->renderer->renderViolations($violations, $result->parserErrors());
$this->output->endOutputRendering();
$this->output->endProgress($result->fileCount(), count($violations));
return $violations;
}