Skip to content

Commit 6e00d52

Browse files
Demo on S2326
1 parent 771d997 commit 6e00d52

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import java.util.List;
2121
import java.util.Locale;
2222
import org.sonar.check.Rule;
23+
import org.sonar.java.checks.helpers.logic.HelperPredicates;
2324
import org.sonar.plugins.java.api.IssuableSubscriptionVisitor;
2425
import org.sonar.plugins.java.api.semantic.Symbol;
2526
import org.sonar.plugins.java.api.tree.ClassTree;
@@ -43,7 +44,7 @@ public void visitNode(Tree tree) {
4344
TypeParameters typeParameters = tree.is(Tree.Kind.METHOD) ? ((MethodTree) tree).typeParameters() : ((ClassTree) tree).typeParameters();
4445
for (TypeParameterTree typeParameter : typeParameters) {
4546
Symbol symbol = typeParameter.symbol();
46-
if (!symbol.isUnknown() && symbol.usages().isEmpty()) {
47+
if(HelperPredicates.isUsed(symbol).isFalse()) {
4748
String message = String.format(ISSUE_MESSAGE, symbol.name(), tree.kind().name().toLowerCase(Locale.ROOT));
4849
reportIssue(typeParameter.identifier(), message);
4950
}

0 commit comments

Comments
 (0)