¿Por qué el mecanizado de patrones de scala no funciona en los bucles para la coincidencia de tipos?

Estoy codificando contra una API que me da acceso al sistema de archivos remoto. La API devuelve una lista de archivos y directorios como lista de objetos de nodo (padre a archivo y directorio).

Quiero trabajar solo en directorios, ignorando archivos. He intentado usar el tipo de coincidencia de patrones enfor Bucle pero no funciona:

for {
    dir: CSDir <- workarea.getChildren() // <-- I'm getting an error here complaining about type conversion
} {
    println(dir)
}

Aquí hay un ejemplo similar utilizando objetos básicos de Scala para ejecutarlo sin dependencias:

val listOfBaseObjects:List[Any] = List[Any]("a string", 1:Integer);

for (x: String <- listOfObjects) {
  println(x)
}

Terminé usando una coincidencia de patrón regular en el lado de for loop y eso funciona bien:

// This works fien
for (child <- workarea.getChildren()) {
  child match {
    case dir: CSDir => println(dir)
    case _ => println("do not nothing")
  }
}
Pregunta:

¿Puede decirme por qué el primer / segundo ejemplo no funciona en scala 1.9?

En la "Programación en Scala" lafor Se anuncia que el bucle utiliza el mismo patrón que coincide con elmatch por lo que debería funcionar.

Si los valores para y coinciden son diferentes, sería genial si pudiera señalarme algunos artículos con más detalles. ¿Qué pasa con la coincidencia de patrones en la asignación?

Actualizar:

No puedo aceptar una respuesta que indique que es imposible omitir elementos en el bucle for, ya que esto contradice el "Prog. In scala". Aquí hay un fragmento de la sección 23.1:

pat <- expr ... El patrónpat se compara uno por uno con todos los elementos de esa lista. ... si la coincidencia falla, no se lanza MatchError. En su lugar, el elemento simplemente se descarta de la iteración

y de hecho el siguiente ejemplo funciona bien:

scala> val list = List( (1,2), 1, 3, (3,4))
scala> for ((x,y) <- list) { println (x +","+ y) }
1,2
3,4

¿Por qué entonces el tipo de coincidencia no funciona?

Respuestas a la pregunta(3)

Su respuesta a la pregunta