diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/AbstractJavaScope.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/AbstractJavaScope.java
index d93cf75f01..fafd311a95 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/AbstractJavaScope.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/AbstractJavaScope.java
@@ -6,6 +6,7 @@ package net.sourceforge.pmd.lang.java.symboltable;
import java.util.Set;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.symboltable.AbstractScope;
import net.sourceforge.pmd.lang.symboltable.NameDeclaration;
import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
@@ -15,6 +16,8 @@ import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
*
* @see JLS 6.3
*/
+@Deprecated
+@InternalApi
public abstract class AbstractJavaScope extends AbstractScope {
@Override
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/DeclarationFinderFunction.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/DeclarationFinderFunction.java
index b513294028..d60f3c93cf 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/DeclarationFinderFunction.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/DeclarationFinderFunction.java
@@ -4,11 +4,14 @@
package net.sourceforge.pmd.lang.java.symboltable;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.ast.ASTMethodReference;
import net.sourceforge.pmd.lang.symboltable.NameDeclaration;
import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
import net.sourceforge.pmd.util.SearchFunction;
+@Deprecated
+@InternalApi
public class DeclarationFinderFunction implements SearchFunction {
private NameOccurrence occurrence;
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/NameFinder.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/NameFinder.java
index 0372c81ff8..f234097f83 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/NameFinder.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/NameFinder.java
@@ -9,6 +9,7 @@ import java.util.List;
import java.util.StringTokenizer;
import net.sourceforge.pmd.PMD;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.ast.ASTArguments;
import net.sourceforge.pmd.lang.java.ast.ASTMemberSelector;
import net.sourceforge.pmd.lang.java.ast.ASTMethodReference;
@@ -19,6 +20,8 @@ import net.sourceforge.pmd.lang.java.ast.ASTPrimarySuffix;
import net.sourceforge.pmd.lang.java.ast.JavaNode;
import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
+@Deprecated
+@InternalApi
public class NameFinder {
private List names = new ArrayList<>();
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/OccurrenceFinder.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/OccurrenceFinder.java
index 9d0f2621ef..35d5c5c83a 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/OccurrenceFinder.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/OccurrenceFinder.java
@@ -9,6 +9,7 @@ import java.util.List;
import java.util.Set;
import java.util.StringTokenizer;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.ast.ASTName;
import net.sourceforge.pmd.lang.java.ast.ASTPrimaryExpression;
import net.sourceforge.pmd.lang.java.ast.ASTResource;
@@ -16,6 +17,8 @@ import net.sourceforge.pmd.lang.java.ast.JavaParserVisitorAdapter;
import net.sourceforge.pmd.lang.symboltable.NameDeclaration;
import net.sourceforge.pmd.lang.symboltable.Scope;
+@Deprecated
+@InternalApi
public class OccurrenceFinder extends JavaParserVisitorAdapter {
// Maybe do some sort of State pattern thingy for when NameDeclaration
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/ScopeAndDeclarationFinder.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/ScopeAndDeclarationFinder.java
index b2773f4bdc..6003784965 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/ScopeAndDeclarationFinder.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/ScopeAndDeclarationFinder.java
@@ -7,6 +7,7 @@ package net.sourceforge.pmd.lang.java.symboltable;
import java.util.ArrayDeque;
import java.util.Deque;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.ast.ASTAnnotationTypeDeclaration;
import net.sourceforge.pmd.lang.java.ast.ASTBlock;
import net.sourceforge.pmd.lang.java.ast.ASTCatchStatement;
@@ -40,6 +41,8 @@ import net.sourceforge.pmd.lang.symboltable.Scope;
* each scope object is linked to its parent scope, which is the scope object of
* the next embedding syntactic entity that has a scope.
*/
+@Deprecated
+@InternalApi
public class ScopeAndDeclarationFinder extends JavaParserVisitorAdapter {
private ClassLoader classLoader;
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/Search.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/Search.java
index c64c09cd86..34a644682f 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/Search.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/Search.java
@@ -8,10 +8,13 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.symboltable.NameDeclaration;
import net.sourceforge.pmd.lang.symboltable.NameOccurrence;
import net.sourceforge.pmd.lang.symboltable.Scope;
+@Deprecated
+@InternalApi
public class Search {
private static final boolean TRACE = false;
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SimpleTypedNameDeclaration.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SimpleTypedNameDeclaration.java
index bba183a13d..12b244ab36 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SimpleTypedNameDeclaration.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SimpleTypedNameDeclaration.java
@@ -8,10 +8,14 @@ import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
+import net.sourceforge.pmd.annotation.InternalApi;
+
/**
* Just stores a type image and a actual type. And makes it easy to compare
* these.
*/
+@Deprecated
+@InternalApi
public class SimpleTypedNameDeclaration implements TypedNameDeclaration {
private final String typeImage;
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SymbolFacade.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SymbolFacade.java
index 590ded3a43..4192845643 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SymbolFacade.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/SymbolFacade.java
@@ -4,8 +4,11 @@
package net.sourceforge.pmd.lang.java.symboltable;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
+@Deprecated
+@InternalApi
public class SymbolFacade {
public void initializeWith(ASTCompilationUnit node) {
initializeWith(SymbolFacade.class.getClassLoader(), node);
diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/TypeSet.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/TypeSet.java
index 45c284a569..20ae57d9c5 100644
--- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/TypeSet.java
+++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/symboltable/TypeSet.java
@@ -13,12 +13,15 @@ import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
+import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.java.typeresolution.PMDASMClassLoader;
import net.sourceforge.pmd.util.ClasspathClassLoader;
/**
* Keeps track of the types encountered in a ASTCompilationUnit
*/
+@Deprecated
+@InternalApi
public class TypeSet {
private final PMDASMClassLoader pmdClassLoader;