Fix deprecated API usage

Fixes in pmd-doc, html, javascript,
jsp, modelica, objectivec, scala,
swift, vm
This commit is contained in:
Andreas Dangel
2023-12-16 18:33:46 +01:00
parent a558fd17eb
commit b059ecb98a
48 changed files with 184 additions and 148 deletions

View File

@ -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();
}
);
}
};
}