Не удается выполнить сопоставление с вложенным шаблоном - PullRequest
1 голос
/ 19 октября 2019

условие Seq[Expression]

val (subqueryPredicates, nonSubqueryPredicates) = condition.partition(
      _ match {
        case _: InSubquery => true
        case _: Not(child: InSubquery) => true
        case _ => false
      }
    )

Компилятор продолжает жаловаться Несоответствие типов, ожидаемое выражение => логическое, фактически выражение => anyVal

Проблема здесь заключается в Not(child: Subquery),до тех пор, пока я удаляю (child: Subquery), жалоба прекращается.

Я понятия не имею, почему сопоставление с вложенным шаблоном здесь не может быть выполнено. Ниже приведено определение Not

case class Not(child: Expression)

Спасибо.

1 Ответ

4 голосов
/ 19 октября 2019

Шаблон должен быть либо

case _: Not =>

, либо

case Not(child: InSubquery) =>

Прежний - это так называемый тип шаблона , а тип Not, а не Not(child: InSubquery).

...