2016-06-16 4 views
4

Ich bemerkte, dass, wenn eine Fallklasse veraltet ist, ihr Begleitobjekt nicht ist.Wie wird das Begleitobjekt einer Fallklasse veraltet?

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) 

Ich möchte eine Warnung für A(0) genau bekommen, wie ich es für new A(0) bekommen. Soll ich das Begleitobjekt explizit definieren und ablehnen? Gibt es einen besseren Weg?

Antwort

2

Sollte ich das Begleitobjekt explizit definieren und ablehnen?

Anscheinend so! Laut https://issues.scala-lang.org/browse/SI-2799 sollte es automatisch veraltet sein (und es macht für mich Sinn), aber es scheint nicht mehr zu sein.

+0

Ich versuchte dies: '@deprecated (" foo "," ") Fall Klasse A (x: Int); @deprecated ("bar", "") Objekt A', aber Aufruf von 'A (0)' gibt immer noch keine Verwarnungswarnung. – Kolmar