original_string: private function getOwnInterfaces($class, $parent)
      {
          $ownInterfaces = class_implements($class, false);
  
          if ($parent) {
              foreach (class_implements($parent, false) as $interface) {
                  unset($ownInterfaces[$interface]);
              }
          }
  
          foreach ($ownInterfaces as $interface) {
              foreach (class_implements($interface) as $interface) {
                  unset($ownInterfaces[$interface]);
              }
          }
  
          return $ownInterfaces;
      }
code: private function getOwnInterfaces($class, $parent)
      {
          $ownInterfaces = class_implements($class, false);
  
          if ($parent) {
              foreach (class_implements($parent, false) as $interface) {
                  unset($ownInterfaces[$interface]);
              }
          }
  
          foreach ($ownInterfaces as $interface) {
              foreach (class_implements($interface) as $interface) {
                  unset($ownInterfaces[$interface]);
              }
          }
  
          return $ownInterfaces;
      }
code_tokens: private function getOwnInterfaces ( $ class , $ parent ) { $ ownInterfaces = class_implements ( $ class , false ) ; if ( $ parent ) { foreach ( class_implements ( $ parent , false ) as $ interface ) { unset ( $ ownInterfaces [ $ interface ] ) ; } } foreach ( $ ownInterfaces as $ interface ) { foreach ( class_implements ( $ interface ) as $ interface ) { unset ( $ ownInterfaces [ $ interface ] ) ; } } return $ ownInterfaces ; }
docstring: `class_implements` includes interfaces from the parents so we have to manually exclude them.
  
  @param string       $class
  @param string|false $parent
  
  @return string[]
docstring_tokens: class_implements includes interfaces from the parents so we have to manually exclude them .