Что означает предупреждение «не простой тип» в Scala? - PullRequest
5 голосов
/ 03 января 2012

Мой проект Scala 2.9.1 теперь выдает 176 предупреждений, все почти так же, как этот:

[warn] Not a simple type:
[warn]  Type: _29.type#source.type forSome { type _29.type <: Ontology.this.TruncationFunctor } (class class scala.tools.nsc.symtab.Types$ExistentialType)
[warn]  Transformed: class xsbti.api.Existential

(Это началось с меньшего количества, но мой стиль кодирования, кажется, провоцирует это предупреждение, поскольку я получаю все больше и больше.)

Может кто-нибудь объяснить мне, что означает это предупреждение, и как мне его избежать? Компилятор не выдает никаких номеров строк, поэтому я даже не уверен, откуда именно он исходит.

Ответы [ 2 ]

6 голосов
/ 03 января 2012

Это, кажется, характерно для sbt , где предположение о типах неверно и выдано предупреждение.Кажется, этот фрагмент кода запускается, когда sbt нужно извлечь некоторую информацию из исходных файлов.

См. https://github.com/harrah/xsbt/blob/0.11/compile/interface/API.scala#L105

Моя дикая догадка - комбинация экзистенциальных типов и проекция типа вызывает это,Вы можете сообщить об этом как о проблеме sbt, если сможете сузить ее.

1 голос
/ 27 октября 2015

Это проблема SBT: https://github.com/sbt/sbt/issues/830. Уровень этого сообщения был изменен с предупреждения на журнал на 0,13,6.

Пожалуйста, обратите внимание на обсуждение в группе scala-internals: https://groups.google.com/forum/#!msg/scala-internals/ANcaI6dVYPw/2Gt5z_S3Gc0J

...