Skip to content

Commit 1c61a14

Browse files
Demo on S2326
1 parent 771d997 commit 1c61a14

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.sonar.java.checks.helpers.logic;
2+
3+
import org.sonar.plugins.java.api.semantic.Symbol;
4+
5+
import static org.sonar.java.checks.helpers.logic.Ternary.UNKNOWN;
6+
7+
/**
8+
* Demo for {@link Ternary}
9+
*/
10+
public class HelperPredicates {
11+
private HelperPredicates() {}
12+
13+
public static Ternary isUsed(Symbol symbol) {
14+
if(symbol.isUnknown()) {
15+
return UNKNOWN;
16+
}
17+
return Ternary.of(!symbol.usages().isEmpty());
18+
}
19+
}

java-checks/src/main/java/org/sonar/java/checks/unused/UnusedTypeParameterCheck.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
import org.sonar.plugins.java.api.tree.TypeParameterTree;
2929
import org.sonar.plugins.java.api.tree.TypeParameters;
3030

31+
import static org.sonar.java.checks.helpers.logic.HelperPredicates.isUsed;
32+
3133
@Rule(key = "S2326")
3234
public class UnusedTypeParameterCheck extends IssuableSubscriptionVisitor {
3335

@@ -43,7 +45,7 @@ public void visitNode(Tree tree) {
4345
TypeParameters typeParameters = tree.is(Tree.Kind.METHOD) ? ((MethodTree) tree).typeParameters() : ((ClassTree) tree).typeParameters();
4446
for (TypeParameterTree typeParameter : typeParameters) {
4547
Symbol symbol = typeParameter.symbol();
46-
if (!symbol.isUnknown() && symbol.usages().isEmpty()) {
48+
if(isUsed(symbol).isFalse()) {
4749
String message = String.format(ISSUE_MESSAGE, symbol.name(), tree.kind().name().toLowerCase(Locale.ROOT));
4850
reportIssue(typeParameter.identifier(), message);
4951
}

0 commit comments

Comments
 (0)