From fbc93e43cb995e93180a9a9dd8399ff6c7f7a588 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Wed, 17 Jun 2020 21:39:03 +0200 Subject: [PATCH] Rename nodes so they don't have the 'context' suffix --- antlr4-wrapper.xml | 33 ++++++------------- pmd-swift/pom.xml | 1 + .../pmd/lang/swift/AbstractSwiftRule.java | 12 +++++++ .../pmd/lang/swift/ast/PmdSwiftParser.java | 6 ++-- .../UnavailableFunctionRule.java | 27 ++++++++------- .../lang/swift/ast/SwiftParsingHelper.java | 6 ++-- 6 files changed, 44 insertions(+), 41 deletions(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index e0c8afe559..61f9c5fddf 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -7,6 +7,7 @@ + + + + + + + + + diff --git a/pmd-swift/pom.xml b/pmd-swift/pom.xml index 5990bd6996..903c4cd898 100644 --- a/pmd-swift/pom.xml +++ b/pmd-swift/pom.xml @@ -39,6 +39,7 @@ + diff --git a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/AbstractSwiftRule.java b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/AbstractSwiftRule.java index 11199a0239..8f30d7e816 100644 --- a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/AbstractSwiftRule.java +++ b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/AbstractSwiftRule.java @@ -6,7 +6,9 @@ package net.sourceforge.pmd.lang.swift; import net.sourceforge.pmd.RuleContext; import net.sourceforge.pmd.lang.ast.AstVisitor; +import net.sourceforge.pmd.lang.ast.Node; import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrBaseRule; +import net.sourceforge.pmd.lang.swift.ast.SwiftInnerNode; public abstract class AbstractSwiftRule extends AntlrBaseRule { @@ -14,6 +16,16 @@ public abstract class AbstractSwiftRule extends AntlrBaseRule { // inheritance constructor } + @Override + public void addRuleChainVisit(Class nodeClass) { + // note that this is made unnecessary by #2490 + if (SwiftInnerNode.class.isAssignableFrom(nodeClass)) { + addRuleChainVisit(nodeClass.getSimpleName().substring("Sw".length())); + return; + } + super.addRuleChainVisit(nodeClass); + } + @Override public abstract AstVisitor buildVisitor(); } diff --git a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java index 2c1f88b2b4..2cba64edc8 100644 --- a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java +++ b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/ast/PmdSwiftParser.java @@ -10,19 +10,19 @@ import org.antlr.v4.runtime.Lexer; import net.sourceforge.pmd.lang.ParserOptions; import net.sourceforge.pmd.lang.ast.impl.antlr4.AntlrBaseParser; -import net.sourceforge.pmd.lang.swift.ast.SwiftParser.TopLevelContext; +import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwTopLevel; /** * Adapter for the SwiftParser. */ -public final class PmdSwiftParser extends AntlrBaseParser { +public final class PmdSwiftParser extends AntlrBaseParser { public PmdSwiftParser(final ParserOptions parserOptions) { super(parserOptions); } @Override - protected TopLevelContext parse(final Lexer lexer) { + protected SwTopLevel parse(final Lexer lexer) { SwiftParser parser = new SwiftParser(new CommonTokenStream(lexer)); return parser.topLevel(); } diff --git a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java index 3224ab29ad..5c49fb5669 100644 --- a/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java +++ b/pmd-swift/src/main/java/net/sourceforge/pmd/lang/swift/rule/bestpractices/UnavailableFunctionRule.java @@ -9,9 +9,12 @@ import java.util.List; import net.sourceforge.pmd.RuleContext; import net.sourceforge.pmd.lang.ast.AstVisitor; import net.sourceforge.pmd.lang.swift.AbstractSwiftRule; -import net.sourceforge.pmd.lang.swift.ast.SwiftParser; -import net.sourceforge.pmd.lang.swift.ast.SwiftParser.FunctionDeclarationContext; -import net.sourceforge.pmd.lang.swift.ast.SwiftParser.InitializerDeclarationContext; +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; +import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwFunctionDeclaration; +import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwInitializerDeclaration; +import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwStatement; import net.sourceforge.pmd.lang.swift.ast.SwiftVisitorBase; public class UnavailableFunctionRule extends AbstractSwiftRule { @@ -21,8 +24,8 @@ public class UnavailableFunctionRule extends AbstractSwiftRule { public UnavailableFunctionRule() { super(); - addRuleChainVisit(FunctionDeclarationContext.class); - addRuleChainVisit(InitializerDeclarationContext.class); + addRuleChainVisit(SwFunctionDeclaration.class); + addRuleChainVisit(SwInitializerDeclaration.class); } @Override @@ -30,13 +33,13 @@ public class UnavailableFunctionRule extends AbstractSwiftRule { return new SwiftVisitorBase() { @Override - public Void visitFunctionDeclaration(final FunctionDeclarationContext ctx, RuleContext ruleCtx) { + public Void visitFunctionDeclaration(final SwFunctionDeclaration ctx, RuleContext ruleCtx) { if (ctx == null) { return null; } if (shouldIncludeUnavailableModifier(ctx.functionBody().codeBlock())) { - final SwiftParser.AttributesContext attributes = ctx.functionHead().attributes(); + final SwAttributes attributes = ctx.functionHead().attributes(); if (attributes == null || !hasUnavailableModifier(attributes.attribute())) { addViolation(ruleCtx, ctx); } @@ -46,13 +49,13 @@ public class UnavailableFunctionRule extends AbstractSwiftRule { } @Override - public Void visitInitializerDeclaration(final InitializerDeclarationContext ctx, RuleContext ruleCtx) { + public Void visitInitializerDeclaration(final SwInitializerDeclaration ctx, RuleContext ruleCtx) { if (ctx == null) { return null; } if (shouldIncludeUnavailableModifier(ctx.initializerBody().codeBlock())) { - final SwiftParser.AttributesContext attributes = ctx.initializerHead().attributes(); + final SwAttributes attributes = ctx.initializerHead().attributes(); if (attributes == null || !hasUnavailableModifier(attributes.attribute())) { addViolation(ruleCtx, ctx); } @@ -61,17 +64,17 @@ public class UnavailableFunctionRule extends AbstractSwiftRule { return null; } - private boolean shouldIncludeUnavailableModifier(final SwiftParser.CodeBlockContext ctx) { + private boolean shouldIncludeUnavailableModifier(final SwCodeBlock ctx) { if (ctx == null || ctx.statements() == null) { return false; } - final List statements = ctx.statements().statement(); + final List statements = ctx.statements().statement(); return statements.size() == 1 && FATAL_ERROR.equals(statements.get(0).getFirstAntlrToken().getText()); } - private boolean hasUnavailableModifier(final List attributes) { + private boolean hasUnavailableModifier(final List attributes) { return attributes.stream().anyMatch(atr -> AVAILABLE_UNAVAILABLE.equals(atr.joinTokenText())); } }; diff --git a/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/ast/SwiftParsingHelper.java b/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/ast/SwiftParsingHelper.java index 1401f15a95..ebfb36b62d 100644 --- a/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/ast/SwiftParsingHelper.java +++ b/pmd-swift/src/test/java/net/sourceforge/pmd/lang/swift/ast/SwiftParsingHelper.java @@ -8,18 +8,18 @@ import org.jetbrains.annotations.NotNull; import net.sourceforge.pmd.lang.ast.test.BaseParsingHelper; import net.sourceforge.pmd.lang.swift.SwiftLanguageModule; -import net.sourceforge.pmd.lang.swift.ast.SwiftParser.TopLevelContext; +import net.sourceforge.pmd.lang.swift.ast.SwiftParser.SwTopLevel; /** * */ -public class SwiftParsingHelper extends BaseParsingHelper { +public class SwiftParsingHelper extends BaseParsingHelper { public static final SwiftParsingHelper DEFAULT = new SwiftParsingHelper(Params.getDefaultNoProcess()); public SwiftParsingHelper(@NotNull Params params) { - super(SwiftLanguageModule.NAME, TopLevelContext.class, params); + super(SwiftLanguageModule.NAME, SwTopLevel.class, params); } @NotNull