aboutsummaryrefslogtreecommitdiff
path: root/scalastyle-config.xml
diff options
context:
space:
mode:
authorhyukjinkwon <gurwls223@gmail.com>2016-08-04 21:43:05 +0100
committerSean Owen <sowen@cloudera.com>2016-08-04 21:43:05 +0100
commit1d781572e832058e2ef54bccd76ef71bc1fd548c (patch)
treee41366d04fbdfc96408863cc601b16c0bef960d3 /scalastyle-config.xml
parent462784ffad77e43455dd0364064ce4994826a426 (diff)
downloadspark-1d781572e832058e2ef54bccd76ef71bc1fd548c.tar.gz
spark-1d781572e832058e2ef54bccd76ef71bc1fd548c.tar.bz2
spark-1d781572e832058e2ef54bccd76ef71bc1fd548c.zip
[SPARK-16877][BUILD] Add rules for preventing to use Java annotations (Deprecated and Override)
## What changes were proposed in this pull request? This PR adds both rules for preventing to use `Deprecated` and `Override`. - Java's `Override` It seems Scala compiler just ignores this. Apparently, `override` modifier is only mandatory for " that override some other **concrete member definition** in a parent class" but not for for **incomplete member definition** (such as ones from trait or abstract), see (http://www.scala-lang.org/files/archive/spec/2.11/05-classes-and-objects.html#override) For a simple example, - Normal class - needs `override` modifier ```bash scala> class A { def say = {}} defined class A scala> class B extends A { def say = {}} <console>:8: error: overriding method say in class A of type => Unit; method say needs `override' modifier class B extends A { def say = {}} ^ ``` - Trait - does not need `override` modifier ```bash scala> trait A { def say } defined trait A scala> class B extends A { def say = {}} defined class B ``` To cut this short, this case below is possible, ```bash scala> class B extends A { | Override | def say = {} | } defined class B ``` we can write `Override` annotation (meaning nothing) which might confuse engineers that Java's annotation is working fine. It might be great if we prevent those potential confusion. - Java's `Deprecated` When `Deprecated` is used, it seems Scala compiler recognises this correctly but it seems we use Scala one `deprecated` across codebase. ## How was this patch tested? Manually tested, by inserting both `Override` and `Deprecated`. This will shows the error messages as below: ```bash Scalastyle checks failed at following occurrences: [error] ... : deprecated should be used instead of java.lang.Deprecated. ``` ```basg Scalastyle checks failed at following occurrences: [error] ... : override modifier should be used instead of java.lang.Override. ``` Author: hyukjinkwon <gurwls223@gmail.com> Closes #14490 from HyukjinKwon/SPARK-16877.
Diffstat (limited to 'scalastyle-config.xml')
-rw-r--r--scalastyle-config.xml8
1 files changed, 8 insertions, 0 deletions
diff --git a/scalastyle-config.xml b/scalastyle-config.xml
index 9a35183c63..7fe0697202 100644
--- a/scalastyle-config.xml
+++ b/scalastyle-config.xml
@@ -250,6 +250,14 @@ This file is divided into 3 sections:
<customMessage>Omit braces in case clauses.</customMessage>
</check>
+ <!-- SPARK-16877: Avoid Java annotations -->
+ <check customId="OverrideJavaCase" level="error" class="org.scalastyle.scalariform.TokenChecker" enabled="true">
+ <parameters><parameter name="regex">^Override$</parameter></parameters>
+ <customMessage>override modifier should be used instead of @java.lang.Override.</customMessage>
+ </check>
+
+ <check level="error" class="org.scalastyle.scalariform.DeprecatedJavaChecker" enabled="true"></check>
+
<!-- ================================================================================ -->
<!-- rules we'd like to enforce, but haven't cleaned up the codebase yet -->
<!-- ================================================================================ -->