2016-06-16 5 views
4

Я заметил, что если класс case устарел, его сопутствующий объект не является.Как отказаться от сопутствующего объекта класса case?

scala> @deprecated case class A(x: Int) 
warning: there was one deprecation warning; re-run with -deprecation for details 
defined class A 

scala> A(0) 
res0: A = A(0) 

scala> new A(0) 
warning: there was one deprecation warning; re-run with -deprecation for details 
res1: A = A(0) 

Я хотел бы получить предупреждение для A(0) точно так, как я его new A(0). Должен ли я определять объект-компаньон явным образом и осуждать его? Есть ли лучший способ?

ответ

2

Должен ли я определить объект-компаньон в явном виде и осудить его?

Видимо так! Согласно https://issues.scala-lang.org/browse/SI-2799, он должен быть устаревшим автоматически (и это имеет смысл для меня), но похоже, что это уже не так.

+0

Я пробовал это: '@deprecated (" foo "," ") класс case A (x: Int); @deprecated ("bar", "") объект A', но вызов 'A (0)' все еще не дает предупреждения об устаревании. – Kolmar

Смежные вопросы