Fix deprecated API usage
Fixes in pmd-doc, html, javascript, jsp, modelica, objectivec, scala, swift, vm
This commit is contained in:
@ -5,8 +5,14 @@
|
||||
package net.sourceforge.pmd.lang.swift.rule.bestpractices;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||
|
||||
import net.sourceforge.pmd.RuleContext;
|
||||
import net.sourceforge.pmd.lang.document.Chars;
|
||||
import net.sourceforge.pmd.lang.rule.RuleTargetSelector;
|
||||
import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwAttribute;
|
||||
import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwAttributes;
|
||||
import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwCodeBlock;
|
||||
@ -19,13 +25,12 @@ import net.sourceforge.pmd.lang.swift.rule.AbstractSwiftRule;
|
||||
|
||||
public class UnavailableFunctionRule extends AbstractSwiftRule {
|
||||
|
||||
private static final String AVAILABLE_UNAVAILABLE = "@available(*,unavailable)";
|
||||
private static final Pattern AVAILABLE_UNAVAILABLE = Pattern.compile("^\\s*@available\\s*\\(\\s*\\*\\s*,\\s*unavailable\\s*\\)\\s*$", Pattern.CASE_INSENSITIVE);
|
||||
private static final String FATAL_ERROR = "fatalError";
|
||||
|
||||
public UnavailableFunctionRule() {
|
||||
super();
|
||||
addRuleChainVisit(SwFunctionDeclaration.class);
|
||||
addRuleChainVisit(SwInitializerDeclaration.class);
|
||||
@Override
|
||||
protected @NonNull RuleTargetSelector buildTargetSelector() {
|
||||
return RuleTargetSelector.forTypes(SwFunctionDeclaration.class, SwInitializerDeclaration.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -41,7 +46,7 @@ public class UnavailableFunctionRule extends AbstractSwiftRule {
|
||||
if (shouldIncludeUnavailableModifier(ctx.functionBody().codeBlock())) {
|
||||
final SwAttributes attributes = ctx.functionHead().attributes();
|
||||
if (attributes == null || !hasUnavailableModifier(attributes.attribute())) {
|
||||
addViolation(ruleCtx, ctx);
|
||||
ruleCtx.addViolation(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,7 +62,7 @@ public class UnavailableFunctionRule extends AbstractSwiftRule {
|
||||
if (shouldIncludeUnavailableModifier(ctx.initializerBody().codeBlock())) {
|
||||
final SwAttributes attributes = ctx.initializerHead().attributes();
|
||||
if (attributes == null || !hasUnavailableModifier(attributes.attribute())) {
|
||||
addViolation(ruleCtx, ctx);
|
||||
ruleCtx.addViolation(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
@ -75,7 +80,12 @@ public class UnavailableFunctionRule extends AbstractSwiftRule {
|
||||
}
|
||||
|
||||
private boolean hasUnavailableModifier(final List<SwAttribute> attributes) {
|
||||
return attributes.stream().anyMatch(atr -> AVAILABLE_UNAVAILABLE.equals(atr.joinTokenText()));
|
||||
return attributes.stream().anyMatch(attr -> {
|
||||
Chars text = attr.getTextDocument().sliceTranslatedText(attr.getTextRegion());
|
||||
Matcher matcher = AVAILABLE_UNAVAILABLE.matcher(text);
|
||||
return matcher.matches();
|
||||
}
|
||||
);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user