public function analyze(Registry $registryBefore, Registry $registryAfter)
 {
     $report = new Report();
     $keysBefore = array_keys($registryBefore->data['interface']);
     $keysAfter = array_keys($registryAfter->data['interface']);
     $added = array_diff($keysAfter, $keysBefore);
     $removed = array_diff($keysBefore, $keysAfter);
     $toVerify = array_intersect($keysBefore, $keysAfter);
     foreach ($removed as $key) {
         $fileBefore = $registryBefore->mapping['interface'][$key];
         $interfaceBefore = $registryBefore->data['interface'][$key];
         $data = new InterfaceRemoved($fileBefore, $interfaceBefore);
         $report->addInterface($data);
     }
     foreach ($toVerify as $key) {
         $fileBefore = $registryBefore->mapping['interface'][$key];
         /** @var \PhpParser\Node\Stmt\Interface_ $interfaceBefore */
         $interfaceBefore = $registryBefore->data['interface'][$key];
         $fileAfter = $registryAfter->mapping['interface'][$key];
         /** @var \PhpParser\Node\Stmt\Interface_ $interfaceBefore */
         $interfaceAfter = $registryAfter->data['interface'][$key];
         // Leave non-strict comparison here
         if ($interfaceBefore != $interfaceAfter) {
             $analyzer = new ClassMethodAnalyzer('interface', $fileBefore, $fileAfter);
             $interfaceMethodReport = $analyzer->analyze($interfaceBefore, $interfaceAfter);
             $report->merge($interfaceMethodReport);
         }
     }
     foreach ($added as $key) {
         $fileAfter = $registryAfter->mapping['interface'][$key];
         $interfaceAfter = $registryAfter->data['interface'][$key];
         $data = new InterfaceAdded($fileAfter, $interfaceAfter);
         $report->addInterface($data);
     }
     return $report;
 }