On Thu, Jul 23, 2015 at 6:08 AM, Reynold Xin <r...@databricks.com> wrote:
Hi all, > > FYI, we just merged a patch that fails a build if there is a scala > compiler warning (if it is not deprecation warning). > I’m a bit confused, since I see quite a lot of warnings in semi-legitimate code. For instance, @transient (plenty of instances like this in spark-streaming) might generate warnings like: abstract class ReceiverInputDStream[T: ClassTag](@transient ssc_ : StreamingContext) extends InputDStream[T](ssc_) { // and the warning is: no valid targets for annotation on value ssc_ - it is discarded unused. You may specify targets with meta-annotations, e.g. @(transient @param) At least that’s what happens if I build with Scala 2.11, not sure if this setting is only for 2.10, or something really weird is happening on my machine that doesn’t happen on others. iulian > In the past, many compiler warnings are actually caused by legitimate bugs > that we need to address. However, if we don't fail the build with warnings, > people don't pay attention at all to the warnings (it is also tough to pay > attention since there are a lot of deprecated warnings due to unit tests > testing deprecated APIs and reliance on Hadoop on deprecated APIs). > > Note that ideally we should be able to mark deprecation warnings as errors > as well. However, due to the lack of ability to suppress individual warning > messages in the Scala compiler, we cannot do that (since we do need to > access deprecated APIs in Hadoop). > > > -- -- Iulian Dragos ------ Reactive Apps on the JVM www.typesafe.com