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);