original_string: public function get_not_whitelisted($types, $whitelist) {
  
          $whitelistedtypes = $this->expand($whitelist, true, true);
  
          if (empty($whitelistedtypes) || $whitelistedtypes == ['*']) {
              return [];
          }
  
          $giventypes = $this->normalize_file_types($types);
  
          if (empty($giventypes)) {
              return [];
          }
  
          return array_diff($giventypes, $whitelistedtypes);
      }
code: public function get_not_whitelisted($types, $whitelist) {
  
          $whitelistedtypes = $this->expand($whitelist, true, true);
  
          if (empty($whitelistedtypes) || $whitelistedtypes == ['*']) {
              return [];
          }
  
          $giventypes = $this->normalize_file_types($types);
  
          if (empty($giventypes)) {
              return [];
          }
  
          return array_diff($giventypes, $whitelistedtypes);
      }
code_tokens: public function get_not_whitelisted ( $ types , $ whitelist ) { $ whitelistedtypes = $ this -> expand ( $ whitelist , true , true ) ; if ( empty ( $ whitelistedtypes ) || $ whitelistedtypes == [ '*' ] ) { return [ ] ; } $ giventypes = $ this -> normalize_file_types ( $ types ) ; if ( empty ( $ giventypes ) ) { return [ ] ; } return array_diff ( $ giventypes , $ whitelistedtypes ) ; }
docstring: Returns all types that are not part of the give whitelist.
  
  This is similar check to the {@link self::is_whitelisted()} but this one
  actually returns the extra types.
  
  @param string|array $types File types to be checked
  @param string|array $whitelist An array or string of whitelisted types
  @return array Types not present in the whitelist
docstring_tokens: Returns all types that are not part of the give whitelist .