Skip to content

Commit d3e6af2

Browse files
committed
SONARJAVA-1306 Rule S1612: enable by default for source version 1.8
1 parent ab583f8 commit d3e6af2

2 files changed

Lines changed: 18 additions & 3 deletions

File tree

java-checks/src/main/java/org/sonar/java/checks/ReplaceLambdaByMethodRefCheck.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@
2222
import org.sonar.api.server.rule.RulesDefinition;
2323
import org.sonar.check.Priority;
2424
import org.sonar.check.Rule;
25+
import org.sonar.java.JavaVersionAwareVisitor;
26+
import org.sonar.java.checks.helpers.JavaVersionHelper;
2527
import org.sonar.java.tag.Tag;
2628
import org.sonar.plugins.java.api.JavaFileScanner;
2729
import org.sonar.plugins.java.api.JavaFileScannerContext;
@@ -35,6 +37,7 @@
3537
import org.sonar.plugins.java.api.tree.ReturnStatementTree;
3638
import org.sonar.plugins.java.api.tree.Tree;
3739
import org.sonar.plugins.java.api.tree.VariableTree;
40+
import org.sonar.squidbridge.annotations.ActivatedByDefault;
3841
import org.sonar.squidbridge.annotations.SqaleConstantRemediation;
3942
import org.sonar.squidbridge.annotations.SqaleSubCharacteristic;
4043

@@ -47,12 +50,18 @@
4750
name = "Lambdas should be replaced with method references",
4851
priority = Priority.MINOR,
4952
tags = {Tag.JAVA_8})
53+
@ActivatedByDefault
5054
@SqaleSubCharacteristic(RulesDefinition.SubCharacteristics.READABILITY)
5155
@SqaleConstantRemediation("2min")
52-
public class ReplaceLambdaByMethodRefCheck extends BaseTreeVisitor implements JavaFileScanner {
56+
public class ReplaceLambdaByMethodRefCheck extends BaseTreeVisitor implements JavaFileScanner, JavaVersionAwareVisitor {
5357

5458
private JavaFileScannerContext context;
5559

60+
@Override
61+
public boolean isCompatibleWithJavaVersion(@Nullable Integer version) {
62+
return JavaVersionHelper.java8Compatible(version);
63+
}
64+
5665
@Override
5766
public void scanFile(JavaFileScannerContext context) {
5867
this.context = context;

java-checks/src/test/java/org/sonar/java/checks/ReplaceLambdaByMethodRefCheckTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,15 @@
2424

2525
public class ReplaceLambdaByMethodRefCheckTest {
2626

27+
private static final String FILENAME = "src/test/files/checks/ReplaceLambdaByMethodRefCheck.java";
28+
2729
@Test
28-
public void detected() {
29-
JavaCheckVerifier.verify("src/test/files/checks/ReplaceLambdaByMethodRefCheck.java", new ReplaceLambdaByMethodRefCheck());
30+
public void java8() {
31+
JavaCheckVerifier.verify(FILENAME, new ReplaceLambdaByMethodRefCheck(), 8);
3032
}
3133

34+
@Test
35+
public void java7() {
36+
JavaCheckVerifier.verifyNoIssue(FILENAME, new ReplaceLambdaByMethodRefCheck(), 7);
37+
}
3238
}

0 commit comments

Comments
 (0)