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

Reply via email to