title: Secondary constructor not being "selected" by the compiler
body: <p>For the following class with a secondary constructor - and with no default parameters on the second one:</p>
  
  <pre><code> case class ExecParams(tag: String, process: String, args: Option[Seq[String]] = None,
    env: Option[Seq[String]] = None, dir: String = ".") {
  
    def this(tag: String, cmdLine: String, dir: String, env: Option[Seq[String]]) = this(tag, cmdLine.split(" ").apply(0),
      Option(cmdLine.split(" ").tail),  if (env.isEmpty) None else env, dir)
    override def toString: String = process + " " + args.flatMap(arr =&gt; Some(arr.mkString(" "," ",""))).getOrElse("")
  
  }
  </code></pre>
  
  <p>The following code that is structured to invoke the secondary parameter apparently is being  applied by the compiler to the primary instead:</p>
  
  <pre><code>ExecParams("tag", "cmd", "dir", None)
  </code></pre>
  
  <p>The compiler error is:</p>
  
  <pre><code>&lt;console&gt;:14: error: type mismatch;
   found   : String("dir")
   required: Option[Seq[String]]
         ExecParams("tag", "cmd", "dir", None)
                                  ^
  </code></pre>
  
  <p>Why is the primary constructor being selected instead of the secondary?</p>