original_string: public function innerJoinWith($assoc, callable $builder = null)
      {
          $result = $this->getEagerLoader()
              ->setMatching($assoc, $builder, [
                  'joinType' => QueryInterface::JOIN_TYPE_INNER,
                  'fields' => false
              ])
              ->getMatching();
          $this->_addAssociationsToTypeMap($this->getRepository(), $this->getTypeMap(), $result);
          $this->_dirty();
  
          return $this;
      }
code: public function innerJoinWith($assoc, callable $builder = null)
      {
          $result = $this->getEagerLoader()
              ->setMatching($assoc, $builder, [
                  'joinType' => QueryInterface::JOIN_TYPE_INNER,
                  'fields' => false
              ])
              ->getMatching();
          $this->_addAssociationsToTypeMap($this->getRepository(), $this->getTypeMap(), $result);
          $this->_dirty();
  
          return $this;
      }
code_tokens: public function innerJoinWith ( $ assoc , callable $ builder = null ) { $ result = $ this -> getEagerLoader ( ) -> setMatching ( $ assoc , $ builder , [ 'joinType' => QueryInterface :: JOIN_TYPE_INNER , 'fields' => false ] ) -> getMatching ( ) ; $ this -> _addAssociationsToTypeMap ( $ this -> getRepository ( ) , $ this -> getTypeMap ( ) , $ result ) ; $ this -> _dirty ( ) ; return $ this ; }
docstring: Creates an INNER JOIN with the passed association table while preserving
  the foreign key matching and the custom conditions that were originally set
  for it.
  
  This function will add entries in the `contain` graph.
  
  ### Example:
  
  ```
  // Bring only articles that were tagged with 'cake'
  $query->innerJoinWith('Tags', function ($q) {
  return $q->where(['name' => 'cake']);
  );
  ```
  
  This will create the following SQL:
  
  ```
  SELECT Articles.*
  FROM articles Articles
  INNER JOIN tags Tags ON Tags.name = 'cake'
  INNER JOIN articles_tags ArticlesTags ON ArticlesTags.tag_id = Tags.id
  AND ArticlesTags.articles_id = Articles.id
  ```
  
  This function works the same as `matching()` with the difference that it
  will select no fields from the association.
  
  @param string $assoc The association to join with
  @param callable|null $builder a function that will receive a pre-made query object
  that can be used to add custom conditions or selecting some fields
  @return $this
  @see \Cake\ORM\Query::matching()
docstring_tokens: Creates an INNER JOIN with the passed association table while preserving the foreign key matching and the custom conditions that were originally set for it .