diff --git a/pmd-apex-jorje/pom.xml b/pmd-apex-jorje/pom.xml index d7fa835739..634303393d 100644 --- a/pmd-apex-jorje/pom.xml +++ b/pmd-apex-jorje/pom.xml @@ -14,7 +14,7 @@ 8 - 2020-06-04-ba31c0 + 2020-09-10-5a5192 diff --git a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.jar b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.jar similarity index 82% rename from pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.jar rename to pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.jar index 745e7e90c7..4546f33cc9 100644 Binary files a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.jar and b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.jar differ diff --git a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.pom b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.pom similarity index 91% rename from pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.pom rename to pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.pom index a2e0b78dfc..3c74212901 100644 --- a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-06-04-ba31c0/apex-jorje-lsp-minimized-2020-06-04-ba31c0.pom +++ b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/2020-09-10-5a5192/apex-jorje-lsp-minimized-2020-09-10-5a5192.pom @@ -4,6 +4,6 @@ 4.0.0 apex apex-jorje-lsp-minimized - 2020-06-04-ba31c0 + 2020-09-10-5a5192 POM was created from install:install-file diff --git a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/maven-metadata-local.xml b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/maven-metadata-local.xml index b2e75aa47d..d3df37e6e4 100644 --- a/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/maven-metadata-local.xml +++ b/pmd-apex-jorje/repo/apex/apex-jorje-lsp-minimized/maven-metadata-local.xml @@ -3,10 +3,10 @@ apex apex-jorje-lsp-minimized - 2020-06-04-ba31c0 + 2020-09-10-5a5192 - 2020-06-04-ba31c0 + 2020-09-10-5a5192 - 20200724082242 + 20201022163714 diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ASTInvalidDependentCompilation.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ASTInvalidDependentCompilation.java new file mode 100644 index 0000000000..e464e2328f --- /dev/null +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ASTInvalidDependentCompilation.java @@ -0,0 +1,27 @@ +/* + * BSD-style license; for more info see http://pmd.sourceforge.net/license.html + */ + +package net.sourceforge.pmd.lang.apex.ast; + +import apex.jorje.semantic.ast.compilation.InvalidDependentCompilation; + +public final class ASTInvalidDependentCompilation extends ApexRootNode { + + ASTInvalidDependentCompilation(InvalidDependentCompilation userClass) { + super(userClass); + } + + + @Override + public Object jjtAccept(ApexParserVisitor visitor, Object data) { + return visitor.visit(this, data); + } + + + @Override + public String getImage() { + String apexName = getDefiningType(); + return apexName.substring(apexName.lastIndexOf('.') + 1); + } +} diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitor.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitor.java index bda42b7e8c..d1b95ec898 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitor.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitor.java @@ -88,6 +88,8 @@ public interface ApexParserVisitor { Object visit(ASTInstanceOfExpression node, Object data); + Object visit(ASTInvalidDependentCompilation node, Object data); + Object visit(ASTJavaMethodCallExpression node, Object data); Object visit(ASTJavaVariableExpression node, Object data); diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitorAdapter.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitorAdapter.java index 45218ccd21..e278d14f3b 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitorAdapter.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexParserVisitorAdapter.java @@ -254,6 +254,11 @@ public class ApexParserVisitorAdapter implements ApexParserVisitor { return visit((ApexNode) node, data); } + @Override + public Object visit(ASTInvalidDependentCompilation node, Object data) { + return visit((ApexNode) node, data); + } + @Override public Object visit(ASTJavaMethodCallExpression node, Object data) { return visit((ApexNode) node, data); diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java index 648644b743..f9cc1e72db 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/ApexTreeBuilder.java @@ -26,6 +26,7 @@ import apex.jorje.parser.impl.ApexLexer; import apex.jorje.semantic.ast.AstNode; import apex.jorje.semantic.ast.compilation.AnonymousClass; import apex.jorje.semantic.ast.compilation.ConstructorPreamble; +import apex.jorje.semantic.ast.compilation.InvalidDependentCompilation; import apex.jorje.semantic.ast.compilation.UserClass; import apex.jorje.semantic.ast.compilation.UserClassMethods; import apex.jorje.semantic.ast.compilation.UserEnum; @@ -156,6 +157,8 @@ public final class ApexTreeBuilder extends AstVisitor { register(DmlUpdateStatement.class, ASTDmlUpdateStatement.class); register(DmlUpsertStatement.class, ASTDmlUpsertStatement.class); register(DoLoopStatement.class, ASTDoLoopStatement.class); + register(ElseWhenBlock.class, ASTElseWhenBlock.class); + register(EmptyReferenceExpression.class, ASTEmptyReferenceExpression.class); register(Expression.class, ASTExpression.class); register(ExpressionStatement.class, ASTExpressionStatement.class); register(Field.class, ASTField.class); @@ -163,12 +166,15 @@ public final class ApexTreeBuilder extends AstVisitor { register(FieldDeclarationStatements.class, ASTFieldDeclarationStatements.class); register(ForEachStatement.class, ASTForEachStatement.class); register(ForLoopStatement.class, ASTForLoopStatement.class); + register(IdentifierCase.class, ASTIdentifierCase.class); register(IfBlockStatement.class, ASTIfBlockStatement.class); register(IfElseBlockStatement.class, ASTIfElseBlockStatement.class); register(IllegalStoreExpression.class, ASTIllegalStoreExpression.class); register(InstanceOfExpression.class, ASTInstanceOfExpression.class); + register(InvalidDependentCompilation.class, ASTInvalidDependentCompilation.class); register(JavaMethodCallExpression.class, ASTJavaMethodCallExpression.class); register(JavaVariableExpression.class, ASTJavaVariableExpression.class); + register(LiteralCase.class, ASTLiteralCase.class); register(LiteralExpression.class, ASTLiteralExpression.class); register(MapEntryNode.class, ASTMapEntryNode.class); register(Method.class, ASTMethod.class); @@ -203,29 +209,25 @@ public final class ApexTreeBuilder extends AstVisitor { register(StatementExecuted.class, ASTStatementExecuted.class); register(SuperMethodCallExpression.class, ASTSuperMethodCallExpression.class); register(SuperVariableExpression.class, ASTSuperVariableExpression.class); + register(SwitchStatement.class, ASTSwitchStatement.class); register(TernaryExpression.class, ASTTernaryExpression.class); register(ThisMethodCallExpression.class, ASTThisMethodCallExpression.class); register(ThisVariableExpression.class, ASTThisVariableExpression.class); register(ThrowStatement.class, ASTThrowStatement.class); register(TriggerVariableExpression.class, ASTTriggerVariableExpression.class); register(TryCatchFinallyBlockStatement.class, ASTTryCatchFinallyBlockStatement.class); + register(TypeWhenBlock.class, ASTTypeWhenBlock.class); register(UserClass.class, ASTUserClass.class); register(UserClassMethods.class, ASTUserClassMethods.class); register(UserExceptionMethods.class, ASTUserExceptionMethods.class); register(UserEnum.class, ASTUserEnum.class); register(UserInterface.class, ASTUserInterface.class); register(UserTrigger.class, ASTUserTrigger.class); + register(ValueWhenBlock.class, ASTValueWhenBlock.class); register(VariableDeclaration.class, ASTVariableDeclaration.class); register(VariableDeclarationStatements.class, ASTVariableDeclarationStatements.class); register(VariableExpression.class, ASTVariableExpression.class); register(WhileLoopStatement.class, ASTWhileLoopStatement.class); - register(SwitchStatement.class, ASTSwitchStatement.class); - register(ElseWhenBlock.class, ASTElseWhenBlock.class); - register(TypeWhenBlock.class, ASTTypeWhenBlock.class); - register(ValueWhenBlock.class, ASTValueWhenBlock.class); - register(LiteralCase.class, ASTLiteralCase.class); - register(IdentifierCase.class, ASTIdentifierCase.class); - register(EmptyReferenceExpression.class, ASTEmptyReferenceExpression.class); } private static void register(Class nodeType, diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/TestAccessEvaluator.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/TestAccessEvaluator.java index 48e62d76fc..288e493a06 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/TestAccessEvaluator.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/ast/TestAccessEvaluator.java @@ -357,4 +357,9 @@ public class TestAccessEvaluator implements AccessEvaluator { public boolean hasNamespaceGuardedAccess(Namespace namespace, String arg1) { return false; } + + @Override + public boolean isNamespaceGuardNamespace(Namespace arg0) { + return false; + } } diff --git a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRule.java b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRule.java index a5015c806f..a931dbc4b5 100644 --- a/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRule.java +++ b/pmd-apex/src/main/java/net/sourceforge/pmd/lang/apex/rule/AbstractApexRule.java @@ -51,6 +51,7 @@ import net.sourceforge.pmd.lang.apex.ast.ASTIfBlockStatement; import net.sourceforge.pmd.lang.apex.ast.ASTIfElseBlockStatement; import net.sourceforge.pmd.lang.apex.ast.ASTIllegalStoreExpression; import net.sourceforge.pmd.lang.apex.ast.ASTInstanceOfExpression; +import net.sourceforge.pmd.lang.apex.ast.ASTInvalidDependentCompilation; import net.sourceforge.pmd.lang.apex.ast.ASTJavaMethodCallExpression; import net.sourceforge.pmd.lang.apex.ast.ASTJavaVariableExpression; import net.sourceforge.pmd.lang.apex.ast.ASTLiteralCase; @@ -393,6 +394,11 @@ public abstract class AbstractApexRule extends AbstractRule return visit((ApexNode) node, data); } + @Override + public Object visit(ASTInvalidDependentCompilation node, Object data) { + return visit((ApexNode) node, data); + } + @Override public Object visit(ASTJavaMethodCallExpression node, Object data) { return visit((ApexNode) node, data);