title: phpstorm generate setter with type hint
body: <p>In phpstorm, you can generate a setter method for class members by <kbd>alt</kbd> + <kbd>insert</kbd> > setters > picking the variables to make setter methods for.</p>
  
  <p>But, even when phpstorm knows the type/class of the variable, it doesn't insert a type hint into the parameter list. </p>
  
  <p><strong>How to make phpstorm generate setters with type hints, <em>but only for type hintable types</em>?</strong></p>
  
  <p>Example class</p>
  
  <pre><code>class CodeGenerationTest {
      /* @var \DateTimeInterface */
      private $date;
      /* @var int */
      private $num;
  }
  </code></pre>
  
  <p>The desired generated setters should be:  </p>
  
  <pre><code>/**
   * @param DateTimeInterface $date
   */
  public function setDate(DateTimeInterface $date)
  {
      $this-&gt;date = $date;
  }
  
  /**
   * @param int $num
   */
  public function setNum($num)
  {
      $this-&gt;num = $num;
  }
  </code></pre>
  
  <p><code>setNum</code> is correct, but <code>setDate</code> gets generated missing the type hint on the parameter:  </p>
  
  <pre><code>/**
   * @param DateTimeInterface $date
   */
  public function setDate($date)
  {
      $this-&gt;date = $date;
  }
  </code></pre>