diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ChangeUtil.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ChangeUtil.java index 824d4d84d0..03a1b9d394 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ChangeUtil.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ChangeUtil.java @@ -88,8 +88,8 @@ public class ChangeUtil { */ public static WorkspaceEdit convertToWorkspaceEdit(Change change) throws CoreException { WorkspaceEdit edit = new WorkspaceEdit(); - if (change instanceof CompositeChange) { - convertCompositeChange((CompositeChange) change, edit); + if (change instanceof CompositeChange compositeChange) { + convertCompositeChange(compositeChange, edit); } else { convertSingleChange(change, edit); } @@ -101,18 +101,18 @@ private static void convertSingleChange(Change change, WorkspaceEdit edit) throw return; } - if (change instanceof TextChange) { - convertTextChange((TextChange) change, edit); - } else if (change instanceof ResourceChange) { - convertResourceChange((ResourceChange) change, edit); + if (change instanceof TextChange textChange) { + convertTextChange(textChange, edit); + } else if (change instanceof ResourceChange resourceChange) { + convertResourceChange(resourceChange, edit); } } private static void convertCompositeChange(CompositeChange change, WorkspaceEdit edit) throws CoreException { Change[] changes = change.getChildren(); for (Change ch : changes) { - if (ch instanceof CompositeChange) { - convertCompositeChange((CompositeChange) ch, edit); + if (ch instanceof CompositeChange compositeChange) { + convertCompositeChange(compositeChange, edit); } else { convertSingleChange(ch, edit); } @@ -141,16 +141,16 @@ private static void convertResourceChange(ResourceChange resourceChange, Workspa } // Resource change is needed and supported by client - if (resourceChange instanceof RenameCompilationUnitChange) { - convertCUResourceChange(edit, (RenameCompilationUnitChange) resourceChange); - } else if (resourceChange instanceof RenamePackageChange) { - convertRenamePackcageChange(edit, (RenamePackageChange) resourceChange); - } else if (resourceChange instanceof MoveCompilationUnitChange) { - convertMoveCompilationUnitChange(edit, (MoveCompilationUnitChange) resourceChange); - } else if (resourceChange instanceof CreateFileChange) { - convertCreateFileChange(edit, (CreateFileChange) resourceChange); - } else if (resourceChange instanceof CreateCompilationUnitChange) { - convertCreateCompilationUnitChange(edit, (CreateCompilationUnitChange) resourceChange); + if (resourceChange instanceof RenameCompilationUnitChange renameCUChange) { + convertCUResourceChange(edit, renameCUChange); + } else if (resourceChange instanceof RenamePackageChange renamePackageChange) { + convertRenamePackcageChange(edit, renamePackageChange); + } else if (resourceChange instanceof MoveCompilationUnitChange moveCUChange) { + convertMoveCompilationUnitChange(edit, moveCUChange); + } else if (resourceChange instanceof CreateFileChange createFileChange) { + convertCreateFileChange(edit, createFileChange); + } else if (resourceChange instanceof CreateCompilationUnitChange createCUChange) { + convertCreateCompilationUnitChange(edit, createCUChange); } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/HoverInfoProvider.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/HoverInfoProvider.java index 0eff887934..6d309ffdc5 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/HoverInfoProvider.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/HoverInfoProvider.java @@ -128,8 +128,8 @@ public List> computeHover(int line, int column, IPr } if (JDTEnvironmentUtils.isSyntaxServer() || isResolved(curr, monitor)) { IBuffer buffer = curr.getOpenable().getBuffer(); - if (buffer == null && curr instanceof BinaryMember) { - IClassFile classFile = ((BinaryMember) curr).getClassFile(); + if (buffer == null && curr instanceof BinaryMember binaryMember) { + IClassFile classFile = binaryMember.getClassFile(); if (classFile != null) { Optional bs = JavaLanguageServerPlugin.getProjectsManager().getBuildSupport(curr.getJavaProject().getProject()); if (bs.isPresent()) { @@ -224,8 +224,7 @@ public void acceptSearchMatch(SearchMatch match) throws CoreException { return; } Object o = match.getElement(); - if (o instanceof IJavaElement) { - IJavaElement element = (IJavaElement) o; + if (o instanceof IJavaElement element) { if (element.getElementType() == IJavaElement.TYPE) { res[0] = true; return; @@ -255,8 +254,7 @@ public static MarkedString computeSignature(IJavaElement element) { } else { elementLabel = JavaElementLabels.getElementLabel(element, COMMON_SIGNATURE_FLAGS); } - if (element instanceof IField) { - IField field = (IField) element; + if (element instanceof IField field) { IRegion region = null; try { ISourceRange nameRange = JDTUtils.getNameRange(field); @@ -297,10 +295,10 @@ private static String getDefaultValue(IMethod method) { public static MarkedString computeJavadoc(IJavaElement element) throws CoreException { IMember member = null; String result = null; - if (element instanceof ITypeParameter) { - member= ((ITypeParameter) element).getDeclaringMember(); - } else if (element instanceof IMember) { - member= (IMember) element; + if (element instanceof ITypeParameter typeParameter) { + member = typeParameter.getDeclaringMember(); + } else if (element instanceof IMember memberElement) { + member = memberElement; } else if (element instanceof IPackageFragment) { Reader r = JavadocContentAccess2.getMarkdownContentReader(element); if (r != null) { @@ -312,8 +310,8 @@ public static MarkedString computeJavadoc(IJavaElement element) throws CoreExcep if (r != null) { result = getString(r); } - if (member instanceof IMethod) { - String defaultValue = getDefaultValue((IMethod) member); + if (member instanceof IMethod method) { + String defaultValue = getDefaultValue(method); if (defaultValue != null) { if (JavaLanguageServerPlugin.getPreferencesManager().getClientPreferences().isSupportsCompletionDocumentationMarkdown()) { result = (result == null ? CompletionResolveHandler.EMPTY_STRING : result) + "\n" + CompletionResolveHandler.DEFAULT + defaultValue; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JDTUtils.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JDTUtils.java index 98f6bd522e..7081c42bf7 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JDTUtils.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JDTUtils.java @@ -235,8 +235,8 @@ public static IPackageFragment resolvePackage(URI uri) { return null; } IJavaElement element = JavaCore.create(resource); - if (element instanceof IPackageFragment) { - return (IPackageFragment) element; + if (element instanceof IPackageFragment pkg) { + return pkg; } } return null; @@ -357,10 +357,10 @@ public static String getName(IJavaElement element) { */ public static boolean isDeprecated(IJavaElement element) throws JavaModelException { Assert.isNotNull(element, "element"); - if (element instanceof ITypeRoot) { - return Flags.isDeprecated(((ITypeRoot) element).findPrimaryType().getFlags()); - } else if (element instanceof IMember) { - return Flags.isDeprecated(((IMember) element).getFlags()); + if (element instanceof ITypeRoot typeRoot) { + return Flags.isDeprecated(typeRoot.findPrimaryType().getFlags()); + } else if (element instanceof IMember member) { + return Flags.isDeprecated(member.getFlags()); } return false; } @@ -498,14 +498,13 @@ public boolean visit(SimpleName node) { @Override public boolean visit(MethodInvocation node) { if (element.getElementName().equals(node.getName().getIdentifier())) { - if (element instanceof IMethod) { - IMethod method = (IMethod) element; + if (element instanceof IMethod method) { String[] parameters = method.getParameterTypes(); - List astParameters = node.typeArguments(); + List astParameters = node.typeArguments(); if (parameters.length == astParameters.size()) { int size = astParameters.size(); String[] astParameterTypes = new String[size]; - Iterator iterator = astParameters.iterator(); + Iterator iterator = astParameters.iterator(); for (int i = 0; i < size; i++) { Type parameter = (Type) iterator.next(); astParameterTypes[i] = getSignature(parameter); @@ -527,8 +526,7 @@ public boolean visit(MethodInvocation node) { @Override public boolean visit(MethodDeclaration node) { if (element.getElementName().equals(node.getName().getIdentifier())) { - if (element instanceof IMethod) { - IMethod method = (IMethod) element; + if (element instanceof IMethod method) { String[] parameters = method.getParameterTypes(); IMethodBinding binding = node.resolveBinding(); if (binding != null) { @@ -703,8 +701,7 @@ public static Location toLocation(IJavaElement element, LocationType type) throw if (cf == null) { // https://github.com/redhat-developer/vscode-java/issues/2805 // 1. Jump to the field of the lombok-annotated class corresponding to the getter and setter method - if (element instanceof IMethod) { - IMethod method = (IMethod) element; + if (element instanceof IMethod method) { if (isGenerated(method)) { IType iType = method.getDeclaringType(); if (iType != null) { @@ -736,16 +733,15 @@ public static Location toLocation(IJavaElement element, LocationType type) throw public static ISourceRange getNameRange(IJavaElement element) throws JavaModelException { ISourceRange nameRange = null; - if (element instanceof IMember) { - IMember member = (IMember) element; + if (element instanceof IMember member) { nameRange = member.getNameRange(); if ((!SourceRange.isAvailable(nameRange))) { nameRange = member.getSourceRange(); } } else if (element instanceof ITypeParameter || element instanceof ILocalVariable) { nameRange = ((ISourceReference) element).getNameRange(); - } else if (element instanceof ISourceReference) { - nameRange = ((ISourceReference) element).getSourceRange(); + } else if (element instanceof ISourceReference sourceRef) { + nameRange = sourceRef.getSourceRange(); } if (!SourceRange.isAvailable(nameRange) && element.getParent() != null) { nameRange = getNameRange(element.getParent()); @@ -755,13 +751,12 @@ public static ISourceRange getNameRange(IJavaElement element) throws JavaModelEx private static ISourceRange getSourceRange(IJavaElement element) throws JavaModelException { ISourceRange sourceRange = null; - if (element instanceof IMember) { - IMember member = (IMember) element; + if (element instanceof IMember member) { sourceRange = member.getSourceRange(); } else if (element instanceof ITypeParameter || element instanceof ILocalVariable) { sourceRange = ((ISourceReference) element).getSourceRange(); - } else if (element instanceof ISourceReference) { - sourceRange = ((ISourceReference) element).getSourceRange(); + } else if (element instanceof ISourceReference sourceRef) { + sourceRange = sourceRef.getSourceRange(); } if (!SourceRange.isAvailable(sourceRange) && element.getParent() != null) { sourceRange = getSourceRange(element.getParent()); @@ -854,11 +849,11 @@ public static String replaceUriFragment(String uriString, String fragment) { } public static String toUri(ITypeRoot typeRoot) { - if (typeRoot instanceof ICompilationUnit) { - return toURI((ICompilationUnit) typeRoot); + if (typeRoot instanceof ICompilationUnit unit) { + return toURI(unit); } - if (typeRoot instanceof IClassFile) { - return toUri((IClassFile) typeRoot); + if (typeRoot instanceof IClassFile classFile) { + return toUri(classFile); } return null; } @@ -1126,9 +1121,9 @@ public static URI toURI(String uriString) { public static boolean isHiddenGeneratedElement(IJavaElement element) { // generated elements are annotated with @Generated and they need to be filtered out - if (element instanceof IAnnotatable) { + if (element instanceof IAnnotatable annotable) { try { - IAnnotation[] annotations = ((IAnnotatable) element).getAnnotations(); + IAnnotation[] annotations = annotable.getAnnotations(); if (annotations.length != 0) { for (IAnnotation annotation : annotations) { if (isSilencedGeneratedAnnotation(annotation)) { @@ -1151,8 +1146,8 @@ private static boolean isSilencedGeneratedAnnotation(IAnnotation annotation) thr && IMemberValuePair.K_STRING == m.getValueKind()) { if (m.getValue() instanceof String) { return SILENCED_CODEGENS.contains(m.getValue()); - } else if (m.getValue() instanceof Object[]) { - for (Object val : (Object[])m.getValue()) { + } else if (m.getValue() instanceof Object[] values) { + for (Object val : values) { if(SILENCED_CODEGENS.contains(val)) { return true; } @@ -1252,8 +1247,8 @@ public static String getConstantValue(IField field, ITypeRoot typeRoot, IRegion return null; } - if (constantValue instanceof String) { - return ASTNodes.getEscapedStringLiteral((String) constantValue); + if (constantValue instanceof String s) { + return ASTNodes.getEscapedStringLiteral(s); } else if (constantValue instanceof Character) { return '\'' + constantValue.toString() + '\''; } else { @@ -1354,8 +1349,8 @@ public static Object computeFieldConstantFromTypeAST(IField constantField, IProg } catch (OperationCanceledException e) { return null; } - if (createBindings[0] instanceof IVariableBinding) { - return ((IVariableBinding) createBindings[0]).getConstantValue(); + if (createBindings[0] instanceof IVariableBinding variableBinding) { + return variableBinding.getConstantValue(); } return null; @@ -1382,13 +1377,13 @@ public static String getAnnotationMemberDefaultValue(IMethod method, ITypeRoot t } Object defaultValue = memberValuePair.getValue(); - boolean isEmptyArray = defaultValue instanceof Object[] && ((Object[]) defaultValue).length == 0; + boolean isEmptyArray = defaultValue instanceof Object[] values && values.length == 0; int valueKind = memberValuePair.getValueKind(); if (valueKind == IMemberValuePair.K_UNKNOWN && !isEmptyArray) { IBinding binding = getHoveredNodeBinding(method, typeRoot, hoverRegion); - if (binding instanceof IMethodBinding) { - Object value = ((IMethodBinding) binding).getDefaultValue(); + if (binding instanceof IMethodBinding methodBinding) { + Object value = methodBinding.getDefaultValue(); StringBuilder buf = new StringBuilder(); try { addValue(buf, value, false); @@ -1410,8 +1405,7 @@ public static String getAnnotationMemberDefaultValue(IMethod method, ITypeRoot t private static void addValue(StringBuilder buf, Object value, boolean addLinks) throws URISyntaxException { // Note: To be bug-compatible with Javadoc from Java 5/6/7, we currently don't escape HTML tags in String-valued annotations. - if (value instanceof ITypeBinding) { - ITypeBinding typeBinding = (ITypeBinding) value; + if (value instanceof ITypeBinding typeBinding) { IJavaElement type = typeBinding.getJavaElement(); if (type == null || !addLinks) { buf.append(typeBinding.getName()); @@ -1422,8 +1416,7 @@ private static void addValue(StringBuilder buf, Object value, boolean addLinks) } buf.append(".class"); //$NON-NLS-1$ - } else if (value instanceof IVariableBinding) { // only enum constants - IVariableBinding variableBinding = (IVariableBinding) value; + } else if (value instanceof IVariableBinding variableBinding) { // only enum constants IJavaElement variable = variableBinding.getJavaElement(); if (variable == null || !addLinks) { buf.append(variableBinding.getName()); @@ -1433,18 +1426,16 @@ private static void addValue(StringBuilder buf, Object value, boolean addLinks) addLink(buf, uri, name); } - } else if (value instanceof IAnnotationBinding) { - IAnnotationBinding annotationBinding = (IAnnotationBinding) value; + } else if (value instanceof IAnnotationBinding annotationBinding) { addAnnotation(buf, annotationBinding, addLinks); - } else if (value instanceof String) { - buf.append(ASTNodes.getEscapedStringLiteral((String) value)); + } else if (value instanceof String s) { + buf.append(ASTNodes.getEscapedStringLiteral(s)); - } else if (value instanceof Character) { - buf.append(ASTNodes.getEscapedCharacterLiteral(((Character) value).charValue())); + } else if (value instanceof Character c) { + buf.append(ASTNodes.getEscapedCharacterLiteral(c.charValue())); - } else if (value instanceof Object[]) { - Object[] values = (Object[]) value; + } else if (value instanceof Object[] values) { buf.append('{'); for (int i = 0; i < values.length; i++) { if (i > 0) { @@ -1516,8 +1507,7 @@ private static IBinding getHoveredNodeBinding(IJavaElement element, ITypeRoot ty } private static IBinding resolveBinding(ASTNode node) { - if (node instanceof SimpleName) { - SimpleName simpleName = (SimpleName) node; + if (node instanceof SimpleName simpleName) { // workaround for https://bugs.eclipse.org/62605 (constructor name resolves to type, not method) ASTNode normalized = ASTNodes.getNormalizedNode(simpleName); if (normalized.getLocationInParent() == ClassInstanceCreation.TYPE_PROPERTY) { @@ -1535,12 +1525,12 @@ private static IBinding resolveBinding(ASTNode node) { } return simpleName.resolveBinding(); - } else if (node instanceof SuperConstructorInvocation) { - return ((SuperConstructorInvocation) node).resolveConstructorBinding(); - } else if (node instanceof ConstructorInvocation) { - return ((ConstructorInvocation) node).resolveConstructorBinding(); - } else if (node instanceof LambdaExpression) { - return ((LambdaExpression) node).resolveMethodBinding(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + return superConstructorInvocation.resolveConstructorBinding(); + } else if (node instanceof ConstructorInvocation constructorInvocation) { + return constructorInvocation.resolveConstructorBinding(); + } else if (node instanceof LambdaExpression lambda) { + return lambda.resolveMethodBinding(); } else { return null; } @@ -1643,10 +1633,9 @@ public static IMethod resolveMethod(CompletionProposal proposal, IJavaProject ja } } char[] signature = proposal.getSignature(); - if (proposal instanceof InternalCompletionProposal) { - Binding binding = ((InternalCompletionProposal) proposal).getBinding(); - if (binding instanceof MethodBinding) { - MethodBinding methodBinding = (MethodBinding) binding; + if (proposal instanceof InternalCompletionProposal internalProposal) { + Binding binding = internalProposal.getBinding(); + if (binding instanceof MethodBinding methodBinding) { MethodBinding original = methodBinding.original(); if (original != binding) { signature = Engine.getSignature(original); @@ -1722,13 +1711,13 @@ public static List searchDecompiledSources(IJavaElement element, IClas return locations; } OccurrencesFinder finder = new OccurrencesFinder(); - if (node instanceof MethodDeclaration) { - SimpleName name = ((MethodDeclaration) node).getName(); + if (node instanceof MethodDeclaration methodDecl) { + SimpleName name = methodDecl.getName(); finder.initialize(unit, name); } else if (node instanceof Name) { finder.initialize(unit, node); - } else if (node instanceof MethodInvocation) { - SimpleName name = ((MethodInvocation) node).getName(); + } else if (node instanceof MethodInvocation methodInvocation) { + SimpleName name = methodInvocation.getName(); } else { return locations; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JSONUtility.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JSONUtility.java index a7e2cc8428..150ccbf1e9 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JSONUtility.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JSONUtility.java @@ -52,14 +52,14 @@ private static T toModel(Gson gson, Object object, Class clazz) { if(clazz == null ){ throw new IllegalArgumentException("Class can not be null"); } - if(object instanceof JsonElement){ - return gson.fromJson((JsonElement) object, clazz); + if (object instanceof JsonElement json) { + return gson.fromJson(json, clazz); } if (clazz.isInstance(object)) { return clazz.cast(object); } - if (object instanceof String) { - return gson.fromJson((String) object, clazz); + if (object instanceof String json) { + return gson.fromJson(json, clazz); } return null; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JVMConfigurator.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JVMConfigurator.java index ebe3ea5004..a0bdb7045f 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JVMConfigurator.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JVMConfigurator.java @@ -330,8 +330,7 @@ public static void configureJVMSettings(IJavaProject javaProject, IVMInstall vmI return; } String version = ""; - if (vmInstall instanceof AbstractVMInstall) { - AbstractVMInstall jvm = (AbstractVMInstall) vmInstall; + if (vmInstall instanceof AbstractVMInstall jvm) { version = jvm.getJavaVersion(); long jdkLevel = CompilerOptions.versionToJdkLevel(jvm.getJavaVersion()); String compliance = CompilerOptions.versionFromJdkLevel(jdkLevel); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JobHelpers.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JobHelpers.java index 0386107203..7867d7c392 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JobHelpers.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/JobHelpers.java @@ -139,8 +139,8 @@ private static boolean flushProcessingQueues(IJobManager jobManager, IProgressMo private static List getProcessingQueues(IJobManager jobManager) { ArrayList queues = new ArrayList<>(); for(Job job : jobManager.find(null)) { - if(job instanceof IBackgroundProcessingQueue) { - queues.add((IBackgroundProcessingQueue) job); + if (job instanceof IBackgroundProcessingQueue backgroundProcessingQueue) { + queues.add(backgroundProcessingQueue); } } return queues; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/LanguageServerWorkingCopyOwner.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/LanguageServerWorkingCopyOwner.java index 7558755d41..408f67907a 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/LanguageServerWorkingCopyOwner.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/LanguageServerWorkingCopyOwner.java @@ -40,8 +40,8 @@ public LanguageServerWorkingCopyOwner(JavaClientConnection connection) { public IBuffer createBuffer(ICompilationUnit workingCopy) { ICompilationUnit original= workingCopy.getPrimary(); IResource resource= original.getResource(); - if (resource instanceof IFile) { - return new DocumentAdapter(workingCopy, (IFile)resource); + if (resource instanceof IFile file) { + return new DocumentAdapter(workingCopy, file); } return DocumentAdapter.Null; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ParentProcessWatcher.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ParentProcessWatcher.java index f86a74f6fa..3e9a9883cb 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ParentProcessWatcher.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/ParentProcessWatcher.java @@ -54,8 +54,8 @@ public void run() { if (!parentProcessStillRunning()) { JavaLanguageServerPlugin.logInfo("Parent process stopped running, forcing server exit"); task.cancel(true); - if (JavaLanguageServerPlugin.getInstance() != null && JavaLanguageServerPlugin.getInstance().getProtocol() instanceof org.eclipse.lsp4j.services.LanguageServer) { - ((org.eclipse.lsp4j.services.LanguageServer) JavaLanguageServerPlugin.getInstance().getProtocol()).exit(); + if (JavaLanguageServerPlugin.getInstance() != null && JavaLanguageServerPlugin.getInstance().getProtocol() instanceof org.eclipse.lsp4j.services.LanguageServer languageServer) { + languageServer.exit(); } else { server.exit(); Executors.newSingleThreadScheduledExecutor().schedule(() -> { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/codemanipulation/OverrideMethodsOperation.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/codemanipulation/OverrideMethodsOperation.java index 31d4163a24..2783382a7c 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/codemanipulation/OverrideMethodsOperation.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/codemanipulation/OverrideMethodsOperation.java @@ -41,8 +41,8 @@ import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.core.dom.rewrite.ImportRewrite; import org.eclipse.jdt.core.dom.rewrite.ImportRewrite.ImportRewriteContext; -import org.eclipse.jdt.core.manipulation.CoreASTProvider; import org.eclipse.jdt.core.dom.rewrite.ListRewrite; +import org.eclipse.jdt.core.manipulation.CoreASTProvider; import org.eclipse.jdt.internal.core.manipulation.StubUtility; import org.eclipse.jdt.internal.corext.codemanipulation.CodeGenerationSettings; import org.eclipse.jdt.internal.corext.codemanipulation.ContextSensitiveImportRewriteContext; @@ -130,8 +130,8 @@ private static TextEdit createTextEditForOverridableMethods(ICompilationUnit cu, ASTNode typeNode = astRoot.findDeclaringNode(typeBinding); if (typeNode instanceof AnonymousClassDeclaration) { listRewrite = astRewrite.getListRewrite(typeNode, AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY); - } else if (typeNode instanceof AbstractTypeDeclaration) { - listRewrite = astRewrite.getListRewrite(typeNode, ((AbstractTypeDeclaration) typeNode).getBodyDeclarationsProperty()); + } else if (typeNode instanceof AbstractTypeDeclaration typeDeclaration) { + listRewrite = astRewrite.getListRewrite(typeNode, typeDeclaration.getBodyDeclarationsProperty()); } else { return null; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/DiagnosticsCommand.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/DiagnosticsCommand.java index 6b99a257cf..03b7d2f4e6 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/DiagnosticsCommand.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/DiagnosticsCommand.java @@ -105,8 +105,8 @@ private static void publishDiagnostics(JavaClientConnection connection, ICompila public IBuffer createBuffer(ICompilationUnit workingCopy) { ICompilationUnit original = workingCopy.getPrimary(); IResource resource = original.getResource(); - if (resource instanceof IFile) { - return new DocumentAdapter(workingCopy, (IFile) resource); + if (resource instanceof IFile file) { + return new DocumentAdapter(workingCopy, file); } return DocumentAdapter.Null; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/OrganizeImportsCommand.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/OrganizeImportsCommand.java index 9b99d618e7..4320cbe9d9 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/OrganizeImportsCommand.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/OrganizeImportsCommand.java @@ -52,8 +52,7 @@ public class OrganizeImportsCommand { public Object organizeImports(List arguments) throws CoreException { WorkspaceEdit edit = new WorkspaceEdit(); - if (arguments != null && !arguments.isEmpty() && arguments.get(0) instanceof String) { - final String fileUri = (String) arguments.get(0); + if (arguments != null && !arguments.isEmpty() && arguments.get(0) instanceof String fileUri) { final IPath rootPath = ResourceUtils.filePathFromURI(fileUri); if (rootPath == null) { throw new CoreException(new Status(IStatus.ERROR, IConstants.PLUGIN_ID, "URI is not found")); @@ -184,8 +183,7 @@ public void organizeImportsInCompilationUnit(ICompilationUnit unit, WorkspaceEdi private void collectCompilationUnits(Object element, Collection result, String packagePrefix) { try { - if (element instanceof IJavaElement) { - IJavaElement elem = (IJavaElement) element; + if (element instanceof IJavaElement elem) { if (elem.exists()) { switch (elem.getElementType()) { case IJavaElement.TYPE: diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/TypeHierarchyCommand.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/TypeHierarchyCommand.java index 16434ba867..80513783a0 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/TypeHierarchyCommand.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/commands/TypeHierarchyCommand.java @@ -28,8 +28,8 @@ import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.internal.core.DefaultWorkingCopyOwner; import org.eclipse.jdt.ls.core.internal.JDTUtils; -import org.eclipse.jdt.ls.core.internal.JSONUtility; import org.eclipse.jdt.ls.core.internal.JDTUtils.LocationType; +import org.eclipse.jdt.ls.core.internal.JSONUtility; import org.eclipse.jdt.ls.core.internal.JavaLanguageServerPlugin; import org.eclipse.jdt.ls.core.internal.handlers.DocumentSymbolHandler; import org.eclipse.lsp4j.Location; @@ -88,10 +88,10 @@ private TypeHierarchyItem getTypeHierarchy(String uri, Position position, TypeHi } else { String handleIdentifier = JSONUtility.toModel(itemInput.getData(), String.class); IJavaElement element = JavaCore.create(handleIdentifier); - if (element instanceof IType) { - type = ((IType)element); - } else if (element instanceof IOrdinaryClassFile) { - type = ((IOrdinaryClassFile)element).getType(); + if (element instanceof IType theType) { + type = theType; + } else if (element instanceof IOrdinaryClassFile classFile) { + type = classFile.getType(); } else { return null; } @@ -109,10 +109,10 @@ private TypeHierarchyItem getTypeHierarchy(String uri, Position position, TypeHi private IType getType(String uri, Position position, IProgressMonitor monitor) throws JavaModelException { IJavaElement typeElement = findTypeElement(JDTUtils.resolveTypeRoot(uri), position, monitor); - if (typeElement instanceof IType) { - return (IType)typeElement; - } else if (typeElement instanceof IMethod) { - return ((IMethod)typeElement).getDeclaringType(); + if (typeElement instanceof IType type) { + return type; + } else if (typeElement instanceof IMethod method) { + return method.getDeclaringType(); } else { return null; } @@ -124,8 +124,8 @@ private static IJavaElement findTypeElement(ITypeRoot unit, Position position, I } IJavaElement element = JDTUtils.findElementAtSelection(unit, position.getLine(), position.getCharacter(), JavaLanguageServerPlugin.getPreferencesManager(), monitor); if (element == null) { - if (unit instanceof IOrdinaryClassFile) { - element = ((IOrdinaryClassFile) unit).getType(); + if (unit instanceof IOrdinaryClassFile classFile) { + element = classFile.getType(); } else if (unit instanceof ICompilationUnit) { element = unit.findPrimaryType(); } @@ -178,7 +178,7 @@ private void resolve(TypeHierarchyItem item, IType type, TypeHierarchyDirection } ITypeHierarchy typeHierarchy = (direction == TypeHierarchyDirection.Parents) ? type.newSupertypeHierarchy(DefaultWorkingCopyOwner.PRIMARY, monitor) : type.newTypeHierarchy(type.getJavaProject(), DefaultWorkingCopyOwner.PRIMARY, monitor); if (direction == TypeHierarchyDirection.Children || direction == TypeHierarchyDirection.Both) { - List childrenItems = new ArrayList(); + List childrenItems = new ArrayList<>(); IType[] children = typeHierarchy.getSubtypes(type); for (IType childType : children) { TypeHierarchyItem childItem = TypeHierarchyCommand.toTypeHierarchyItem(childType); @@ -191,7 +191,7 @@ private void resolve(TypeHierarchyItem item, IType type, TypeHierarchyDirection item.setChildren(childrenItems); } if (direction == TypeHierarchyDirection.Parents || direction == TypeHierarchyDirection.Both) { - List parentsItems = new ArrayList(); + List parentsItems = new ArrayList<>(); IType[] parents = typeHierarchy.getSupertypes(type); for (IType parentType : parents) { TypeHierarchyItem parentItem = TypeHierarchyCommand.toTypeHierarchyItem(parentType); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/CompletionProposalReplacementProvider.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/CompletionProposalReplacementProvider.java index 26c2f03e9f..2fb8916202 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/CompletionProposalReplacementProvider.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/CompletionProposalReplacementProvider.java @@ -170,8 +170,8 @@ private void updateReplacement(CompletionProposal proposal, CompletionItem item, appendMethodOverrideReplacement(completionBuffer, proposal); break; case CompletionProposal.POTENTIAL_METHOD_DECLARATION: - if (proposal instanceof GetterSetterCompletionProposal) { - appendMethodPotentialReplacement(completionBuffer, (GetterSetterCompletionProposal) proposal); + if (proposal instanceof GetterSetterCompletionProposal getterSetterProposal) { + appendMethodPotentialReplacement(completionBuffer, getterSetterProposal); } else { appendReplacementString(completionBuffer, proposal); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/JavadocCompletionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/JavadocCompletionProposal.java index 556ac8fbec..4759c1d8fc 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/JavadocCompletionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/JavadocCompletionProposal.java @@ -232,12 +232,12 @@ private String createTypeTags(IDocument document, int offset, String indentation if (!JavaModelUtil.isVersionLessThan(version, JavaCore.VERSION_14)) { ISourceRange range = type.getNameRange(); ASTNode node = NodeFinder.perform(unit, range.getOffset(), range.getLength()).getParent(); - if (node instanceof RecordDeclaration) { - List components = ((RecordDeclaration) node).recordComponents(); + if (node instanceof RecordDeclaration recordDeclaration) { + List components = recordDeclaration.recordComponents(); List paramList = new ArrayList<>(components.size()); for (Object o : components) { - if (o instanceof VariableDeclaration) { - paramList.add(((VariableDeclaration) o).getName().getFullyQualifiedName()); + if (o instanceof VariableDeclaration variableDeclaration) { + paramList.add(variableDeclaration.getName().getFullyQualifiedName()); } } typeParamNames = paramList.toArray(new String[0]); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/OverrideCompletionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/OverrideCompletionProposal.java index 181aac22fd..0358b2d815 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/OverrideCompletionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/OverrideCompletionProposal.java @@ -123,11 +123,10 @@ public String updateReplacementString(IDocument document, int offset, ImportRewr ASTNode node= NodeFinder.perform(unit, offset, 1); node= ASTResolving.findParentType(node); String result = null; - if (node instanceof AnonymousClassDeclaration) { - declaringType= ((AnonymousClassDeclaration) node).resolveBinding(); + if (node instanceof AnonymousClassDeclaration anonymousClassDeclaration) { + declaringType = anonymousClassDeclaration.resolveBinding(); descriptor= AnonymousClassDeclaration.BODY_DECLARATIONS_PROPERTY; - } else if (node instanceof AbstractTypeDeclaration) { - AbstractTypeDeclaration declaration= (AbstractTypeDeclaration) node; + } else if (node instanceof AbstractTypeDeclaration declaration) { descriptor= declaration.getBodyDeclarationsProperty(); declaringType= declaration.resolveBinding(); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/ParameterGuesser.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/ParameterGuesser.java index ac697c1380..cfe357749d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/ParameterGuesser.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/ParameterGuesser.java @@ -122,7 +122,7 @@ private List evaluateVisibleMatches(String expectedType, IJavaElement[ } // add 'this' - if (currentType != null && !(fEnclosingElement instanceof IMethod && Flags.isStatic(((IMethod) fEnclosingElement).getFlags()))) { + if (currentType != null && !(fEnclosingElement instanceof IMethod method && Flags.isStatic(method.getFlags()))) { String fullyQualifiedName= currentType.getFullyQualifiedName('.'); if (fullyQualifiedName.equals(expectedType)) { res.add(new Variable(fullyQualifiedName, "this", Variable.LITERALS, false, res.size())); //$NON-NLS-1$ diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SignatureHelpRequestor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SignatureHelpRequestor.java index ae905d5e54..5913bfed79 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SignatureHelpRequestor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SignatureHelpRequestor.java @@ -216,10 +216,9 @@ public String computeJavaDoc(CompletionProposal proposal) { type = unit.getJavaProject().findType(fullyQualifiedName, new NullProgressMonitor()); } if (type != null) { - if (proposal instanceof InternalCompletionProposal) { - Binding binding = ((InternalCompletionProposal) proposal).getBinding(); - if (binding instanceof MethodBinding) { - MethodBinding methodBinding = (MethodBinding) binding; + if (proposal instanceof InternalCompletionProposal internalCompletionProposal) { + Binding binding = internalCompletionProposal.getBinding(); + if (binding instanceof MethodBinding methodBinding) { MethodBinding original = methodBinding.original(); char[] signature; if (original != binding) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetCompletionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetCompletionProposal.java index 75b8c59700..c34255c981 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetCompletionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/contentassist/SnippetCompletionProposal.java @@ -121,8 +121,7 @@ private static boolean needsPublic(ICompilationUnit cu, CompletionContext comple if (completionContext.isInJavadoc()) { return false; } - if (completionContext instanceof InternalCompletionContext) { - InternalCompletionContext internalCompletionContext = (InternalCompletionContext) completionContext; + if (completionContext instanceof InternalCompletionContext internalCompletionContext) { ASTNode node = internalCompletionContext.getCompletionNode(); if (node instanceof CompletionOnKeyword2 || node instanceof CompletionOnFieldType || node instanceof CompletionOnSingleNameReference) { if (completionContext.getEnclosingElement() instanceof IMethod) { @@ -404,8 +403,7 @@ private static boolean accept(ICompilationUnit cu, CompletionContext completionC if (completionContext.isInJavadoc()) { return false; } - if (completionContext instanceof InternalCompletionContext) { - InternalCompletionContext internalCompletionContext = (InternalCompletionContext) completionContext; + if (completionContext instanceof InternalCompletionContext internalCompletionContext) { ASTNode node = internalCompletionContext.getCompletionNode(); if (node instanceof CompletionOnKeyword2) { return true; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/InvertBooleanUtility.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/InvertBooleanUtility.java index 691f58a979..ce0bff2328 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/InvertBooleanUtility.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/InvertBooleanUtility.java @@ -70,7 +70,6 @@ import org.eclipse.jdt.ls.core.internal.corrections.proposals.ChangeCorrectionProposal; import org.eclipse.jdt.ls.core.internal.corrections.proposals.IProposalRelevance; import org.eclipse.jdt.ls.core.internal.corrections.proposals.LinkedCorrectionProposal; -import org.eclipse.jdt.ls.core.internal.preferences.PreferenceManager; import org.eclipse.jdt.ls.core.internal.text.correction.CUCorrectionCommandProposal; import org.eclipse.jdt.ls.core.internal.text.correction.QuickAssistProcessor; import org.eclipse.jdt.ls.core.internal.text.correction.RefactorProposalUtility; @@ -217,7 +216,7 @@ public SimpleName getRenamed(SimpleName simpleName) { } // set new name rewrite.replace(name, newName, null); - } else if (name.getParent() instanceof PrefixExpression && ((PrefixExpression) name.getParent()).getOperator() == PrefixExpression.Operator.NOT) { + } else if (name.getParent() instanceof PrefixExpression prefixExpression && prefixExpression.getOperator() == PrefixExpression.Operator.NOT) { rewrite.replace(name.getParent(), newName, null); } else { PrefixExpression expression = ast.newPrefixExpression(); @@ -387,8 +386,7 @@ private interface SimpleNameRenameProvider { private static Expression getRenamedNameCopy(SimpleNameRenameProvider provider, ASTRewrite rewrite, Expression expression) { if (provider != null) { - if (expression instanceof SimpleName) { - SimpleName name = (SimpleName) expression; + if (expression instanceof SimpleName name) { SimpleName newName = provider.getRenamed(name); if (newName != null) { return newName; @@ -406,11 +404,10 @@ private static Expression getInversedExpression(ASTRewrite rewrite, Expression e private static Expression getInversedExpression(ASTRewrite rewrite, Expression expression, SimpleNameRenameProvider provider) { AST ast = rewrite.getAST(); - if (expression instanceof BooleanLiteral) { - return ast.newBooleanLiteral(!((BooleanLiteral) expression).booleanValue()); + if (expression instanceof BooleanLiteral booleanLiteral) { + return ast.newBooleanLiteral(!booleanLiteral.booleanValue()); } - if (expression instanceof InfixExpression) { - InfixExpression infixExpression = (InfixExpression) expression; + if (expression instanceof InfixExpression infixExpression) { InfixExpression.Operator operator = infixExpression.getOperator(); if (operator == InfixExpression.Operator.LESS) { return getInversedInfixExpression(rewrite, infixExpression, InfixExpression.Operator.GREATER_EQUALS, provider); @@ -446,16 +443,14 @@ private static Expression getInversedExpression(ASTRewrite rewrite, Expression e return getInversedNotExpression(rewrite, expression, ast); } } - if (expression instanceof PrefixExpression) { - PrefixExpression prefixExpression = (PrefixExpression) expression; + if (expression instanceof PrefixExpression prefixExpression) { if (prefixExpression.getOperator() == PrefixExpression.Operator.NOT) { Expression operand = prefixExpression.getOperand(); - if ((operand instanceof ParenthesizedExpression) && NecessaryParenthesesChecker.canRemoveParentheses(operand, expression.getParent(), expression.getLocationInParent())) { - operand = ((ParenthesizedExpression) operand).getExpression(); + if (operand instanceof ParenthesizedExpression parenthesizedExpression && NecessaryParenthesesChecker.canRemoveParentheses(operand, expression.getParent(), expression.getLocationInParent())) { + operand = parenthesizedExpression.getExpression(); } Expression renamedNameCopy = getRenamedNameCopy(provider, rewrite, operand); - if (renamedNameCopy instanceof InfixExpression) { - InfixExpression infixExpression = (InfixExpression) renamedNameCopy; + if (renamedNameCopy instanceof InfixExpression infixExpression) { infixExpression.setOperator(((InfixExpression) operand).getOperator()); } return renamedNameCopy; @@ -464,11 +459,10 @@ private static Expression getInversedExpression(ASTRewrite rewrite, Expression e if (expression instanceof InstanceofExpression) { return getInversedNotExpression(rewrite, expression, ast); } - if (expression instanceof ParenthesizedExpression) { - ParenthesizedExpression parenthesizedExpression = (ParenthesizedExpression) expression; + if (expression instanceof ParenthesizedExpression parenthesizedExpression) { Expression innerExpression = parenthesizedExpression.getExpression(); - while (innerExpression instanceof ParenthesizedExpression) { - innerExpression = ((ParenthesizedExpression) innerExpression).getExpression(); + while (innerExpression instanceof ParenthesizedExpression innerParenthesizedExpression) { + innerExpression = innerParenthesizedExpression.getExpression(); } if (innerExpression instanceof InstanceofExpression) { return getInversedExpression(rewrite, innerExpression, provider); @@ -476,8 +470,7 @@ private static Expression getInversedExpression(ASTRewrite rewrite, Expression e parenthesizedExpression = getParenthesizedExpression(ast, getInversedExpression(rewrite, innerExpression, provider)); return parenthesizedExpression; } - if (expression instanceof ConditionalExpression) { - ConditionalExpression conditionalExpression = (ConditionalExpression) expression; + if (expression instanceof ConditionalExpression conditionalExpression) { ConditionalExpression newExpression = ast.newConditionalExpression(); newExpression.setExpression((Expression) rewrite.createCopyTarget(conditionalExpression.getExpression())); newExpression.setThenExpression(getInversedExpression(rewrite, conditionalExpression.getThenExpression())); @@ -519,8 +512,8 @@ public static boolean getSplitAndConditionProposals(IInvocationContext context, // check that infix expression is part of first level && condition of IfStatement InfixExpression topInfixExpression = infixExpression; - while (topInfixExpression.getParent() instanceof InfixExpression && ((InfixExpression) topInfixExpression.getParent()).getOperator() == andOperator) { - topInfixExpression = (InfixExpression) topInfixExpression.getParent(); + while (topInfixExpression.getParent() instanceof InfixExpression parentInfixExpression && parentInfixExpression.getOperator() == andOperator) { + topInfixExpression = parentInfixExpression; } if (ifStatement.getExpression() != topInfixExpression) { return false; @@ -696,13 +689,13 @@ private static void breakInfixOperationAtOperation(ASTRewrite rewrite, Expressio private static Expression combineOperands(ASTRewrite rewrite, Expression existing, Expression originalNode, boolean removeParentheses, Operator operator) { if (existing == null && removeParentheses) { - while (originalNode instanceof ParenthesizedExpression) { - originalNode = ((ParenthesizedExpression) originalNode).getExpression(); + while (originalNode instanceof ParenthesizedExpression parenthesizedExpression) { + originalNode = parenthesizedExpression.getExpression(); } } Expression newRight = (Expression) rewrite.createMoveTarget(originalNode); - if (originalNode instanceof InfixExpression) { - ((InfixExpression) newRight).setOperator(((InfixExpression) originalNode).getOperator()); + if (originalNode instanceof InfixExpression infixExpression) { + ((InfixExpression) newRight).setOperator(infixExpression.getOperator()); } if (existing == null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/QuickFixProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/QuickFixProcessor.java index 2d09410752..f6692f9723 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/QuickFixProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/QuickFixProcessor.java @@ -683,7 +683,7 @@ public void addAddAllMissingImportsProposal(IInvocationContext context, Collecti if (proposals.size() == 0) { return; } - Optional minRelevance = proposals.stream().filter((proposal) -> (proposal instanceof AddImportCorrectionProposal)).map((proposal) -> proposal.getRelevance()).min(Comparator.naturalOrder()); + Optional minRelevance = proposals.stream().filter(AddImportCorrectionProposal.class::isInstance).map((proposal) -> proposal.getRelevance()).min(Comparator.naturalOrder()); if (minRelevance.isPresent()) { CUCorrectionProposal proposal = OrganizeImportsHandler.getOrganizeImportsProposal(CorrectionMessages.UnresolvedElementsSubProcessor_add_allMissing_imports_description, CodeActionKind.QuickFix, context.getCompilationUnit(), minRelevance.get() - 1, context.getASTRoot(), JavaLanguageServerPlugin.getPreferencesManager().getClientPreferences().isAdvancedOrganizeImportsSupported(), true); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/RefactorProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/RefactorProcessor.java index 5e64f60f69..7bae08bad0 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/RefactorProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/RefactorProcessor.java @@ -315,8 +315,7 @@ private boolean getInlineProposal(IInvocationContext context, ASTNode node, Coll SimpleName name= (SimpleName) node; IBinding binding = name.resolveBinding(); try { - if (binding instanceof IVariableBinding) { - IVariableBinding varBinding = (IVariableBinding) binding; + if (binding instanceof IVariableBinding varBinding) { if (varBinding.isParameter()) { return false; } @@ -348,7 +347,7 @@ private boolean getInlineProposal(IInvocationContext context, ASTNode node, Coll } // Inline Local Variable - if (binding.getJavaElement() instanceof ILocalVariable && RefactoringAvailabilityTesterCore.isInlineTempAvailable((ILocalVariable) binding.getJavaElement())) { + if (binding.getJavaElement() instanceof ILocalVariable localVar && RefactoringAvailabilityTesterCore.isInlineTempAvailable(localVar)) { InlineTempRefactoring refactoring= new InlineTempRefactoring((VariableDeclaration) decl); boolean status; try { @@ -461,8 +460,8 @@ private static ClassInstanceCreation getClassInstanceCreation(ASTNode node) { node = node.getParent(); } - if (node instanceof ClassInstanceCreation) { - return (ClassInstanceCreation) node; + if (node instanceof ClassInstanceCreation classInstanceCreation) { + return classInstanceCreation; } else if (node.getLocationInParent() == ClassInstanceCreation.ANONYMOUS_CLASS_DECLARATION_PROPERTY) { return (ClassInstanceCreation) node.getParent(); } else { @@ -499,8 +498,8 @@ private static boolean getConvertLambdaToAnonymousClassCreationsProposals(IInvoc } LambdaExpression lambda; - if (covering instanceof LambdaExpression) { - lambda = (LambdaExpression) covering; + if (covering instanceof LambdaExpression lambdaExpression) { + lambda = lambdaExpression; } else if (covering.getLocationInParent() == LambdaExpression.BODY_PROPERTY) { lambda = (LambdaExpression) covering.getParent(); } else { @@ -560,14 +559,14 @@ private static boolean getConvertVarTypeToResolvedTypeProposal(IInvocationContex } Type type = null; - if (varDeclaration instanceof SingleVariableDeclaration) { - type = ((SingleVariableDeclaration) varDeclaration).getType(); + if (varDeclaration instanceof SingleVariableDeclaration singleVar) { + type = singleVar.getType(); } else if (varDeclaration instanceof VariableDeclarationFragment) { ASTNode parent = varDeclaration.getParent(); - if (parent instanceof VariableDeclarationStatement) { - type = ((VariableDeclarationStatement) parent).getType(); - } else if (parent instanceof VariableDeclarationExpression) { - type = ((VariableDeclarationExpression) parent).getType(); + if (parent instanceof VariableDeclarationStatement variableDeclStatement) { + type = variableDeclStatement.getType(); + } else if (parent instanceof VariableDeclarationExpression variableDeclExpression) { + type = variableDeclExpression.getType(); } } if (type == null || !type.isVar()) { @@ -589,8 +588,8 @@ private static SimpleName getSimpleNameForVariable(ASTNode node) { while (node instanceof Name || node instanceof Type) { node = node.getParent(); } - if (node instanceof VariableDeclarationStatement) { - List fragments = ((VariableDeclarationStatement) node).fragments(); + if (node instanceof VariableDeclarationStatement variableDeclStatement) { + List fragments = variableDeclStatement.fragments(); if (fragments.size() > 0) { // var is not allowed in a compound declaration name = fragments.get(0).getName(); @@ -642,16 +641,14 @@ private static boolean getConvertResolvedTypeToVarTypeProposal(IInvocationContex } ITypeBinding expressionTypeBinding = null; - if (varDeclaration instanceof SingleVariableDeclaration) { - SingleVariableDeclaration svDecl = (SingleVariableDeclaration) varDeclaration; + if (varDeclaration instanceof SingleVariableDeclaration svDecl) { type = svDecl.getType(); expression = svDecl.getInitializer(); if (expression != null) { expressionTypeBinding = expression.resolveTypeBinding(); } else { ASTNode parent = svDecl.getParent(); - if (parent instanceof EnhancedForStatement) { - EnhancedForStatement efStmt = (EnhancedForStatement) parent; + if (parent instanceof EnhancedForStatement efStmt) { expression = efStmt.getExpression(); if (expression != null) { ITypeBinding expBinding = expression.resolveTypeBinding(); @@ -672,16 +669,15 @@ private static boolean getConvertResolvedTypeToVarTypeProposal(IInvocationContex } } } - } else if (varDeclaration instanceof VariableDeclarationFragment) { + } else if (varDeclaration instanceof VariableDeclarationFragment variableDeclarationFragment) { ASTNode parent = varDeclaration.getParent(); - expression = ((VariableDeclarationFragment) varDeclaration).getInitializer(); + expression = variableDeclarationFragment.getInitializer(); if (expression != null) { expressionTypeBinding = expression.resolveTypeBinding(); } - if (parent instanceof VariableDeclarationStatement) { - type = ((VariableDeclarationStatement) parent).getType(); - } else if (parent instanceof VariableDeclarationExpression) { - VariableDeclarationExpression varDecl = (VariableDeclarationExpression) parent; + if (parent instanceof VariableDeclarationStatement variableDeclarationStatement) { + type = variableDeclarationStatement.getType(); + } else if (parent instanceof VariableDeclarationExpression varDecl) { // cannot convert a VariableDeclarationExpression with multiple fragments to var. if (varDecl.fragments().size() > 1) { return false; @@ -730,9 +726,7 @@ private static boolean getAddStaticImportProposals(IInvocationContext context, A // get bindings for method invocation or variable access - if (name.getParent() instanceof MethodInvocation) { - MethodInvocation mi = (MethodInvocation) name.getParent(); - + if (name.getParent() instanceof MethodInvocation mi) { Expression expression = mi.getExpression(); if (expression == null || expression.equals(name)) { return false; @@ -744,14 +738,12 @@ private static boolean getAddStaticImportProposals(IInvocationContext context, A } declaringClass = ((IMethodBinding) binding).getDeclaringClass(); - } else if (name.getParent() instanceof QualifiedName) { - QualifiedName qn = (QualifiedName) name.getParent(); - - if (name.equals(qn.getQualifier()) || qn.getParent() instanceof ImportDeclaration) { + } else if (name.getParent() instanceof QualifiedName qualifiedName) { + if (name.equals(qualifiedName.getQualifier()) || qualifiedName.getParent() instanceof ImportDeclaration) { return false; } - binding = qn.resolveBinding(); + binding = qualifiedName.resolveBinding(); if (!(binding instanceof IVariableBinding)) { return false; } @@ -788,8 +780,8 @@ private static boolean getAddStaticImportProposals(IInvocationContext context, A ImportRemover removerAllOccurences = new ImportRemover(context.getCompilationUnit().getJavaProject(), context.getASTRoot()); MethodInvocation mi = null; QualifiedName qn = null; - if (name.getParent() instanceof MethodInvocation) { - mi = (MethodInvocation) name.getParent(); + if (name.getParent() instanceof MethodInvocation parentInvocation) { + mi = parentInvocation; // convert the method invocation astRewrite.remove(mi.getExpression(), null); remover.registerRemovedNode(mi.getExpression()); @@ -800,8 +792,8 @@ private static boolean getAddStaticImportProposals(IInvocationContext context, A remover.registerRemovedNode(type); removerAllOccurences.registerRemovedNode(type); }); - } else if (name.getParent() instanceof QualifiedName) { - qn = (QualifiedName) name.getParent(); + } else if (name.getParent() instanceof QualifiedName qname) { + qn = qname; // convert the field access astRewrite.replace(qn, ASTNodeFactory.newName(node.getAST(), name.getFullyQualifiedName()), null); remover.registerRemovedNode(qn); @@ -819,9 +811,9 @@ public boolean visit(MethodInvocation methodInvocation) { return super.visit(methodInvocation); } - if (methodInvocationExpression instanceof Name) { - String fullyQualifiedName = ((Name) methodInvocationExpression).getFullyQualifiedName(); - if (miFinal != null && miFinal.getExpression() instanceof Name && ((Name) miFinal.getExpression()).getFullyQualifiedName().equals(fullyQualifiedName) + if (methodInvocationExpression instanceof Name name) { + String fullyQualifiedName = name.getFullyQualifiedName(); + if (miFinal != null && miFinal.getExpression() instanceof Name exprName && exprName.getFullyQualifiedName().equals(fullyQualifiedName) && miFinal.getName().getIdentifier().equals(methodInvocation.getName().getIdentifier())) { methodInvocation.typeArguments().forEach(type -> { astRewriteReplaceAllOccurrences.remove((Type) type, null); @@ -876,13 +868,13 @@ private static boolean isDirectlyAccessible(ASTNode nameNode, ITypeBinding decla ASTNode node = nameNode.getParent(); while (node != null) { - if (node instanceof AbstractTypeDeclaration) { - ITypeBinding binding = ((AbstractTypeDeclaration) node).resolveBinding(); + if (node instanceof AbstractTypeDeclaration typeDecl) { + ITypeBinding binding = typeDecl.resolveBinding(); if (binding != null && binding.isSubTypeCompatible(declaringClass)) { return true; } - } else if (node instanceof AnonymousClassDeclaration) { - ITypeBinding binding = ((AnonymousClassDeclaration) node).resolveBinding(); + } else if (node instanceof AnonymousClassDeclaration anonymousClassDecl) { + ITypeBinding binding = anonymousClassDecl.resolveBinding(); if (binding != null && binding.isSubTypeCompatible(declaringClass)) { return true; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/ReturnTypeSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/ReturnTypeSubProcessor.java index cf6ccfb44a..d5a33940c5 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/ReturnTypeSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/ReturnTypeSubProcessor.java @@ -127,7 +127,7 @@ public static void addVoidMethodReturnsProposals(IInvocationContext context, IPr } BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode); - if (decl instanceof MethodDeclaration && selectedNode.getNodeType() == ASTNode.RETURN_STATEMENT) { + if (decl instanceof MethodDeclaration methodDeclaration && selectedNode.getNodeType() == ASTNode.RETURN_STATEMENT) { ReturnStatement returnStatement= (ReturnStatement) selectedNode; Expression expr= returnStatement.getExpression(); if (expr != null) { @@ -141,8 +141,6 @@ public static void addVoidMethodReturnsProposals(IInvocationContext context, IPr binding= ASTResolving.normalizeWildcardType(binding, true, ast); } - MethodDeclaration methodDeclaration= (MethodDeclaration) decl; - ASTRewrite rewrite= ASTRewrite.create(ast); String label= Messages.format(CorrectionMessages.ReturnTypeSubProcessor_voidmethodreturns_description, BindingLabelProviderCore.getBindingLabel(binding, BindingLabelProviderCore.DEFAULT_TEXTFLAGS)); @@ -197,9 +195,7 @@ public static void addMissingReturnTypeProposals(IInvocationContext context, IPr return; } BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode); - if (decl instanceof MethodDeclaration) { - MethodDeclaration methodDeclaration= (MethodDeclaration) decl; - + if (decl instanceof MethodDeclaration methodDeclaration) { ReturnStatementCollector eval= new ReturnStatementCollector(); decl.accept(eval); @@ -250,10 +246,10 @@ public static void addMissingReturnTypeProposals(IInvocationContext context, IPr // change to constructor ASTNode parentType= ASTResolving.findParentType(decl); - if (parentType instanceof AbstractTypeDeclaration) { - boolean isInterface= parentType instanceof TypeDeclaration && ((TypeDeclaration) parentType).isInterface(); + if (parentType instanceof AbstractTypeDeclaration parentTypeDecl) { + boolean isInterface = parentType instanceof TypeDeclaration concreteParentTypeDecl && concreteParentTypeDecl.isInterface(); if (!isInterface) { - String constructorName= ((AbstractTypeDeclaration) parentType).getName().getIdentifier(); + String constructorName = parentTypeDecl.getName().getIdentifier(); ASTNode nameNode= methodDeclaration.getName(); label= Messages.format(CorrectionMessages.ReturnTypeSubProcessor_wrongconstructorname_description, BasicElementLabels.getJavaElementName(constructorName)); proposals.add(new ReplaceCorrectionProposal(label, cu, nameNode.getStartPosition(), nameNode.getLength(), constructorName, IProposalRelevance.CHANGE_TO_CONSTRUCTOR)); @@ -269,16 +265,15 @@ public static void addMissingReturnStatementProposals(IInvocationContext context if (selectedNode == null) { return; } - ReturnStatement existingStatement= (selectedNode instanceof ReturnStatement) ? (ReturnStatement) selectedNode : null; + ReturnStatement existingStatement = selectedNode instanceof ReturnStatement returnStatement ? returnStatement : null; // Lambda Expression can be in a MethodDeclaration or a Field Declaration - if (selectedNode instanceof LambdaExpression) { - MissingReturnTypeInLambdaCorrectionProposal proposal= new MissingReturnTypeInLambdaCorrectionProposal(cu, (LambdaExpression) selectedNode, existingStatement, + if (selectedNode instanceof LambdaExpression lambda) { + MissingReturnTypeInLambdaCorrectionProposal proposal = new MissingReturnTypeInLambdaCorrectionProposal(cu, lambda, existingStatement, IProposalRelevance.MISSING_RETURN_TYPE); proposals.add(proposal); } else { BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode); - if (decl instanceof MethodDeclaration) { - MethodDeclaration methodDecl= (MethodDeclaration) decl; + if (decl instanceof MethodDeclaration methodDecl) { Block block= methodDecl.getBody(); if (block == null) { return; @@ -318,8 +313,7 @@ public static void addMethodReturnsVoidProposals(IInvocationContext context, IPr return; } BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode); - if (decl instanceof MethodDeclaration) { - MethodDeclaration methDecl= (MethodDeclaration) decl; + if (decl instanceof MethodDeclaration methDecl) { Type retType= methDecl.getReturnType2(); if (retType == null || retType.resolveBinding() == null) { return; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/SimilarElement.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/SimilarElement.java index c0d0e500c4..86109d4a7d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/SimilarElement.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/SimilarElement.java @@ -68,11 +68,7 @@ public int getRelevance() { @Override public boolean equals(Object obj) { - if (obj instanceof SimilarElement) { - SimilarElement elem= (SimilarElement) obj; - return fName.equals(elem.fName) && fKind == elem.fKind && Arrays.equals(fTypesParameters, elem.fTypesParameters); - } - return false; + return obj instanceof SimilarElement elem && fName.equals(elem.fName) && fKind == elem.fKind && Arrays.equals(fTypesParameters, elem.fTypesParameters); } @Override diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AbstractMethodCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AbstractMethodCorrectionProposal.java index b212270d03..ed914fbacf 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AbstractMethodCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AbstractMethodCorrectionProposal.java @@ -150,7 +150,7 @@ private MethodDeclaration getStub(ASTRewrite rewrite, ASTNode targetTypeDecl) th Type returnType= getNewMethodType(rewrite, context); decl.setReturnType2(returnType); - boolean isVoid= returnType instanceof PrimitiveType && PrimitiveType.VOID.equals(((PrimitiveType)returnType).getPrimitiveTypeCode()); + boolean isVoid = returnType instanceof PrimitiveType primitiveType && PrimitiveType.VOID.equals(primitiveType.getPrimitiveTypeCode()); if (!isAbstractMethod && !isVoid) { ReturnStatement returnStatement= ast.newReturnStatement(); returnStatement.setExpression(ASTNodeFactory.newDefaultExpression(ast, returnType, 0)); @@ -200,8 +200,8 @@ private int findConstructorInsertIndex(List decls) { int lastMethod= 0; for (int i= nDecls - 1; i >= 0; i--) { BodyDeclaration curr= decls.get(i); - if (curr instanceof MethodDeclaration) { - if (((MethodDeclaration) curr).isConstructor()) { + if (curr instanceof MethodDeclaration method) { + if (method.isConstructor()) { return i + 1; } lastMethod= i; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AddTypeParameterProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AddTypeParameterProposal.java index 58113045d6..da79b25296 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AddTypeParameterProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AddTypeParameterProposal.java @@ -64,8 +64,8 @@ public AddTypeParameterProposal(ICompilationUnit targetCU, IBinding binding, Com fTypeParamName= name; fBounds= bounds; - if (binding instanceof IMethodBinding) { - String[] args = { BasicElementLabels.getJavaElementName(fTypeParamName), org.eclipse.jdt.ls.core.internal.corrections.ASTResolving.getMethodSignature((IMethodBinding) binding) }; + if (binding instanceof IMethodBinding methodBinding) { + String[] args = { BasicElementLabels.getJavaElementName(fTypeParamName), org.eclipse.jdt.ls.core.internal.corrections.ASTResolving.getMethodSignature(methodBinding) }; setDisplayName(Messages.format(CorrectionMessages.AddTypeParameterProposal_method_label, args)); } else { String[] args = { BasicElementLabels.getJavaElementName(fTypeParamName), org.eclipse.jdt.ls.core.internal.corrections.ASTResolving.getTypeSignature((ITypeBinding) binding) }; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AssignToVariableAssistProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AssignToVariableAssistProposal.java index 4a7a9de74b..2fb0d90689 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AssignToVariableAssistProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/AssignToVariableAssistProposal.java @@ -247,10 +247,10 @@ private ASTRewrite doAddField(ASTRewrite rewrite, ASTNode nodeToAssign, ITypeBin BodyDeclaration bodyDecl= ASTResolving.findParentBodyDeclaration(nodeToAssign); Block body; - if (bodyDecl instanceof MethodDeclaration) { - body= ((MethodDeclaration) bodyDecl).getBody(); - } else if (bodyDecl instanceof Initializer) { - body= ((Initializer) bodyDecl).getBody(); + if (bodyDecl instanceof MethodDeclaration method) { + body = method.getBody(); + } else if (bodyDecl instanceof Initializer initializer) { + body = initializer.getBody(); } else { return null; } @@ -401,7 +401,7 @@ private ArrayList getRemainingParamNamed(ASTNode nodeToAssign) { if (fParamNames != null) { paramNames = new ArrayList<>(); paramNames.addAll(fParamNames); - if (nodeToAssign instanceof SingleVariableDeclaration && ((SingleVariableDeclaration) nodeToAssign).getName() != null) { + if (nodeToAssign instanceof SingleVariableDeclaration singleVar && singleVar.getName() != null) { int index = fNodesToAssign.indexOf(nodeToAssign); if (index >= 0 && index < paramNames.size()) { paramNames.remove(index); @@ -429,10 +429,9 @@ private int findAssignmentInsertIndex(List statements, ASTNode nodeTo break; case ASTNode.EXPRESSION_STATEMENT: Expression expr= ((ExpressionStatement) curr).getExpression(); - if (expr instanceof Assignment) { - Assignment assignment= (Assignment) expr; + if (expr instanceof Assignment assignment) { Expression rightHand = assignment.getRightHandSide(); - if (rightHand instanceof SimpleName && paramsBefore.contains(((SimpleName) rightHand).getIdentifier())) { + if (rightHand instanceof SimpleName simpleName && paramsBefore.contains(simpleName.getIdentifier())) { IVariableBinding binding = Bindings.getAssignedVariable(assignment); if (binding == null || binding.isField()) { break; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/CastCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/CastCorrectionProposal.java index d5345ee545..e63cf93019 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/CastCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/CastCorrectionProposal.java @@ -80,8 +80,7 @@ private Type getNewCastTypeNode(ASTRewrite rewrite, ImportRewrite importRewrite) node= parent; parent= parent.getParent(); } - if (parent instanceof MethodInvocation) { - MethodInvocation invocation= (MethodInvocation) node.getParent(); + if (parent instanceof MethodInvocation invocation) { if (invocation.getExpression() == node) { IBinding targetContext= ASTResolving.getParentMethodOrTypeBinding(node); ITypeBinding[] bindings= ASTResolving.getQualifierGuess(node.getRoot(), invocation.getName().getIdentifier(), invocation.arguments(), targetContext); @@ -160,16 +159,16 @@ private static boolean needsInnerParantheses(ASTNode nodeToCast) { private static boolean needsOuterParantheses(ASTNode nodeToCast) { ASTNode parent= nodeToCast.getParent(); - if (parent instanceof MethodInvocation) { - if (((MethodInvocation)parent).getExpression() == nodeToCast) { + if (parent instanceof MethodInvocation methodInvocation) { + if (methodInvocation.getExpression() == nodeToCast) { return true; } - } else if (parent instanceof QualifiedName) { - if (((QualifiedName)parent).getQualifier() == nodeToCast) { + } else if (parent instanceof QualifiedName name) { + if (name.getQualifier() == nodeToCast) { return true; } - } else if (parent instanceof FieldAccess) { - if (((FieldAccess)parent).getExpression() == nodeToCast) { + } else if (parent instanceof FieldAccess fieldAccess) { + if (fieldAccess.getExpression() == nodeToCast) { return true; } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ChangeMethodSignatureProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ChangeMethodSignatureProposal.java index c8e1c70e17..e44dee7d5a 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ChangeMethodSignatureProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ChangeMethodSignatureProposal.java @@ -125,9 +125,7 @@ protected ASTRewrite getRewrite() throws CoreException { } createImportRewrite(astRoot); - if (newMethodDecl instanceof MethodDeclaration) { - MethodDeclaration decl= (MethodDeclaration) newMethodDecl; - + if (newMethodDecl instanceof MethodDeclaration decl) { ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); if (fParameterChanges != null) { modifyParameters(rewrite, decl); @@ -165,8 +163,7 @@ private void modifyParameters(ASTRewrite rewrite, MethodDeclaration methodDecl) SingleVariableDeclaration oldParam= parameters.get(k); usedNames.add(oldParam.getName().getIdentifier()); k++; - } else if (curr instanceof InsertDescription) { - InsertDescription desc= (InsertDescription) curr; + } else if (curr instanceof InsertDescription desc) { SingleVariableDeclaration newNode= ast.newSingleVariableDeclaration(); newNode.setType(imports.addImport(desc.type, ast, context, TypeLocation.PARAMETER)); newNode.setName(ast.newSimpleName("x")); //$NON-NLS-1$ @@ -199,9 +196,7 @@ private void modifyParameters(ASTRewrite rewrite, MethodDeclaration methodDecl) if (tagNode != null) { rewrite.remove(tagNode, null); } - } else if (curr instanceof EditDescription) { - EditDescription desc= (EditDescription) curr; - + } else if (curr instanceof EditDescription desc) { ITypeBinding newTypeBinding= desc.type; SingleVariableDeclaration decl= parameters.get(k); @@ -289,9 +284,7 @@ private void fixupNames(ASTRewrite rewrite, ArrayList usedNames) { // set names for new parameters for (int i= 0; i < fParameterChanges.length; i++) { ChangeDescription curr= fParameterChanges[i]; - if (curr instanceof ModifyDescription) { - ModifyDescription desc= (ModifyDescription) curr; - + if (curr instanceof ModifyDescription desc) { String typeKey= getParamTypeGroupId(i); String nameKey= getParamNameGroupId(i); @@ -358,8 +351,7 @@ private void modifyExceptions(ASTRewrite rewrite, MethodDeclaration methodDecl) if (curr == null) { k++; - } else if (curr instanceof InsertDescription) { - InsertDescription desc= (InsertDescription) curr; + } else if (curr instanceof InsertDescription desc) { String type= imports.addImport(desc.type, context); ASTNode newNode= imports.addImport(desc.type, ast, context, TypeLocation.EXCEPTION); @@ -386,9 +378,7 @@ private void modifyExceptions(ASTRewrite rewrite, MethodDeclaration methodDecl) if (tagNode != null) { rewrite.remove(tagNode, null); } - } else if (curr instanceof EditDescription) { - EditDescription desc= (EditDescription) curr; - + } else if (curr instanceof EditDescription desc) { Type oldNode= exceptions.get(k); String type= imports.addImport(desc.type, context); @@ -403,9 +393,9 @@ private void modifyExceptions(ASTRewrite rewrite, MethodDeclaration methodDecl) rewrite.replace((ASTNode) tagNode.fragments().get(0), newRef, null); } - } else if (curr instanceof SwapDescription) { + } else if (curr instanceof SwapDescription desc) { Type decl1= exceptions.get(k); - Type decl2= exceptions.get(((SwapDescription) curr).index); + Type decl2 = exceptions.get(desc.index); rewrite.replace(decl1, rewrite.createCopyTarget(decl2), null); rewrite.replace(decl2, rewrite.createCopyTarget(decl1), null); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/GetterSetterCorrectionSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/GetterSetterCorrectionSubProcessor.java index 674bc47d55..97d68fb550 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/GetterSetterCorrectionSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/GetterSetterCorrectionSubProcessor.java @@ -219,8 +219,7 @@ private static ChangeCorrectionProposal addGetterProposal(ProposalParameter cont return proposal; } else { IJavaElement element = context.variableBinding.getJavaElement(); - if (element instanceof IField) { - IField field = (IField) element; + if (element instanceof IField field) { try { if (RefactoringAvailabilityTester.isSelfEncapsulateAvailable(field)) { return new SelfEncapsulateFieldProposal(relevance, field); @@ -304,8 +303,7 @@ private static ChangeCorrectionProposal addSetterProposal(ProposalParameter cont return proposal; } else { IJavaElement element = context.variableBinding.getJavaElement(); - if (element instanceof IField) { - IField field = (IField) element; + if (element instanceof IField field) { try { if (RefactoringAvailabilityTester.isSelfEncapsulateAvailable(field)) { return new SelfEncapsulateFieldProposal(relevance, field); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/JavadocTagsSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/JavadocTagsSubProcessor.java index 3752db48d2..86be7e938a 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/JavadocTagsSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/JavadocTagsSubProcessor.java @@ -175,8 +175,8 @@ private void insertMissingJavadocTag(ASTRewrite rewrite, ASTNode missingNode, Bo text.setText(name); newTag.fragments().add(text); List params; - if (bodyDecl instanceof TypeDeclaration) { - params= ((TypeDeclaration) bodyDecl).typeParameters(); + if (bodyDecl instanceof TypeDeclaration typeDecl) { + params = typeDecl.typeParameters(); } else { params= ((MethodDeclaration) bodyDecl).typeParameters(); } @@ -221,8 +221,8 @@ public AddAllMissingJavadocTagsProposal(String label, ICompilationUnit cu, BodyD @Override protected ASTRewrite getRewrite() throws CoreException { ASTRewrite rewrite= ASTRewrite.create(fBodyDecl.getAST()); - if (fBodyDecl instanceof MethodDeclaration) { - insertAllMissingMethodTags(rewrite, (MethodDeclaration) fBodyDecl); + if (fBodyDecl instanceof MethodDeclaration methodDecl) { + insertAllMissingMethodTags(rewrite, methodDecl); } else { insertAllMissingTypeTags(rewrite, (TypeDeclaration) fBodyDecl); } @@ -236,8 +236,8 @@ private void insertAllMissingMethodTags(ASTRewrite rewriter, MethodDeclaration m List typeParams= methodDecl.typeParameters(); ASTNode root= methodDecl.getRoot(); - if (root instanceof CompilationUnit) { - ITypeRoot typeRoot= ((CompilationUnit) root).getTypeRoot(); + if (root instanceof CompilationUnit unit) { + ITypeRoot typeRoot = unit.getTypeRoot(); if (typeRoot != null && !StubUtility.shouldGenerateMethodTypeParameterTags(typeRoot.getJavaProject())) { typeParams= Collections.emptyList(); } @@ -430,8 +430,7 @@ public static void getMissingJavadocCommentProposals(IInvocationContext context, return; } - if (declaration instanceof MethodDeclaration) { - MethodDeclaration methodDecl= (MethodDeclaration) declaration; + if (declaration instanceof MethodDeclaration methodDecl) { IMethodBinding methodBinding= methodDecl.resolveBinding(); IMethodBinding overridden= null; if (methodBinding != null) { @@ -453,8 +452,8 @@ public static void getMissingJavadocCommentProposals(IInvocationContext context, } else if (declaration instanceof AbstractTypeDeclaration) { String typeQualifiedName= Bindings.getTypeQualifiedName(binding); String[] typeParamNames; - if (declaration instanceof TypeDeclaration) { - List typeParams= ((TypeDeclaration) declaration).typeParameters(); + if (declaration instanceof TypeDeclaration typeDecl) { + List typeParams = typeDecl.typeParameters(); typeParamNames= new String[typeParams.size()]; for (int i= 0; i < typeParamNames.length; i++) { typeParamNames[i]= (typeParams.get(i)).getName().getIdentifier(); @@ -469,10 +468,10 @@ public static void getMissingJavadocCommentProposals(IInvocationContext context, String label= Messages.format(CorrectionMessages.JavadocTagsSubProcessor_addjavadoc_type_description, typeQualifiedName); proposals.add(new AddJavadocCommentProposal(label, cu, IProposalRelevance.ADD_JAVADOC_TYPE, kind, declaration.getStartPosition(), string)); } - } else if (declaration instanceof FieldDeclaration) { + } else if (declaration instanceof FieldDeclaration fieldDecl) { String comment= "/**\n *\n */\n"; //$NON-NLS-1$ String fieldName= null; - List fragments= ((FieldDeclaration)declaration).fragments(); + List fragments = fieldDecl.fragments(); if (fragments != null && fragments.size() > 0) { VariableDeclaration decl= fragments.get(0); fieldName= decl.getName().getIdentifier(); @@ -483,8 +482,7 @@ public static void getMissingJavadocCommentProposals(IInvocationContext context, String label= Messages.format(CorrectionMessages.JavadocTagsSubProcessor_addjavadoc_field_description, fieldName); proposals.add(new AddJavadocCommentProposal(label, cu, IProposalRelevance.ADD_JAVADOC_FIELD, kind, declaration.getStartPosition(), comment)); } - } else if (declaration instanceof EnumConstantDeclaration) { - EnumConstantDeclaration enumDecl= (EnumConstantDeclaration) declaration; + } else if (declaration instanceof EnumConstantDeclaration enumDecl) { String id= enumDecl.getName().getIdentifier(); String comment = CodeGeneration.getFieldComment(cu, binding.getName(), id, String.valueOf('\n')); if (comment != null && id != null) { @@ -650,15 +648,15 @@ private static String getArgument(TagElement curr) { List fragments= curr.fragments(); if (!fragments.isEmpty()) { Object first= fragments.get(0); - if (first instanceof Name) { - return ASTNodes.getSimpleNameIdentifier((Name) first); - } else if (first instanceof TextElement && TagElement.TAG_PARAM.equals(curr.getTagName())) { - String text= ((TextElement) first).getText(); + if (first instanceof Name name) { + return ASTNodes.getSimpleNameIdentifier(name); + } else if (first instanceof TextElement firstTextElement && TagElement.TAG_PARAM.equals(curr.getTagName())) { + String text = firstTextElement.getText(); if ("<".equals(text) && fragments.size() >= 3) { //$NON-NLS-1$ Object second= fragments.get(1); Object third= fragments.get(2); - if (second instanceof Name && third instanceof TextElement && ">".equals(((TextElement) third).getText())) { //$NON-NLS-1$ - return '<' + ASTNodes.getSimpleNameIdentifier((Name) second) + '>'; + if (second instanceof Name secondName && third instanceof TextElement thirdTextElement && ">".equals(thirdTextElement.getText())) { //$NON-NLS-1$ + return '<' + ASTNodes.getSimpleNameIdentifier(secondName) + '>'; } } else if (text.startsWith(String.valueOf('<')) && text.endsWith(String.valueOf('>')) && text.length() > 2) { return text.substring(1, text.length() - 1); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/LocalCorrectionsSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/LocalCorrectionsSubProcessor.java index a22267cb91..b00cf2bd72 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/LocalCorrectionsSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/LocalCorrectionsSubProcessor.java @@ -245,8 +245,7 @@ public static void addUncaughtExceptionProposals(IInvocationContext context, IPr CatchClause catchClause = catchClauses.get(0); Type type = catchClause.getException().getType(); - if (type instanceof UnionType) { - UnionType unionType = (UnionType) type; + if (type instanceof UnionType unionType) { ListRewrite listRewrite = rewrite.getListRewrite(unionType, UnionType.TYPES_PROPERTY); for (int i = 0; i < filteredExceptions.size(); i++) { ITypeBinding excBinding = filteredExceptions.get(i); @@ -322,8 +321,7 @@ public static void addUncaughtExceptionProposals(IInvocationContext context, IPr } //Add throws declaration - if (enclosingNode instanceof MethodDeclaration) { - MethodDeclaration methodDecl = (MethodDeclaration) enclosingNode; + if (enclosingNode instanceof MethodDeclaration methodDecl) { IMethodBinding binding = methodDecl.resolveBinding(); boolean isApplicable = (binding != null); if (isApplicable) { @@ -508,8 +506,8 @@ public static void getUnreachableCodeProposals(IInvocationContext context, IProb ASTRewrite rewrite = ASTRewrite.create(parent.getAST()); Expression replacement = leftOperand; - while (replacement instanceof ParenthesizedExpression) { - replacement = ((ParenthesizedExpression) replacement).getExpression(); + while (replacement instanceof ParenthesizedExpression expression) { + replacement = expression.getExpression(); } Expression toReplace = infixExpression; @@ -545,8 +543,7 @@ public static void getUnreachableCodeProposals(IInvocationContext context, IProb if (idx > 0) { Object prevStatement = statements.get(idx - 1); - if (prevStatement instanceof IfStatement) { - IfStatement ifStatement = (IfStatement) prevStatement; + if (prevStatement instanceof IfStatement ifStatement) { if (ifStatement.getElseStatement() == null) { // remove if (true), see https://bugs.eclipse.org/bugs/show_bug.cgi?id=261519 rewrite.replace(ifStatement, rewrite.createMoveTarget(ifStatement.getThenStatement()), null); @@ -592,10 +589,8 @@ private static void addRemoveIncludingConditionProposal(IInvocationContext conte rewrite.remove(toRemove, null); } - } else if (toRemove instanceof Expression && replacement instanceof Expression) { + } else if (toRemove instanceof Expression toRemoveExpression && replacement instanceof Expression replacementExpression) { Expression moved = (Expression) rewrite.createMoveTarget(replacement); - Expression toRemoveExpression = (Expression) toRemove; - Expression replacementExpression = (Expression) replacement; ITypeBinding explicitCast = ASTNodes.getExplicitCast(replacementExpression, toRemoveExpression); if (explicitCast != null) { CastExpression cast = ast.newCastExpression(); @@ -615,9 +610,9 @@ private static void addRemoveIncludingConditionProposal(IInvocationContext conte } else { ASTNode parent = toRemove.getParent(); ASTNode moveTarget; - if ((parent instanceof Block || parent instanceof SwitchStatement) && replacement instanceof Block) { + if ((parent instanceof Block || parent instanceof SwitchStatement) && replacement instanceof Block block) { ListRewrite listRewrite = rewrite.getListRewrite(replacement, Block.STATEMENTS_PROPERTY); - List list = ((Block) replacement).statements(); + List list = block.statements(); int lastIndex = list.size() - 1; moveTarget = listRewrite.createMoveTarget(list.get(0), list.get(lastIndex)); } else { @@ -781,23 +776,22 @@ public static boolean evaluateMissingSwitchCases(ITypeBinding enumBindings, List List statements = switchStatements; for (int i = 0; i < statements.size(); i++) { Statement curr = statements.get(i); - if (curr instanceof SwitchCase) { - SwitchCase switchCase = (SwitchCase) curr; + if (curr instanceof SwitchCase switchCase) { if (ASTHelper.isSwitchCaseExpressionsSupportedInAST(switchCase.getAST())) { List expressions = switchCase.expressions(); if (expressions.size() == 0) { hasDefault = true; } else { for (Expression expression : expressions) { - if (expression instanceof SimpleName) { - enumConstNames.remove(((SimpleName) expression).getFullyQualifiedName()); + if (expression instanceof SimpleName simpleName) { + enumConstNames.remove(simpleName.getFullyQualifiedName()); } } } } else { - Expression expression = ((SwitchCase) curr).getExpression(); - if (expression instanceof SimpleName) { - enumConstNames.remove(((SimpleName) expression).getFullyQualifiedName()); + Expression expression = switchCase.getExpression(); + if (expression instanceof SimpleName simpleName) { + enumConstNames.remove(simpleName.getFullyQualifiedName()); } else if (expression == null) { hasDefault = true; } @@ -811,12 +805,10 @@ public static boolean evaluateMissingSwitchCases(ITypeBinding enumBindings, List public static void createMissingCaseProposals(IInvocationContext context, ASTNode parent, ArrayList enumConstNames, Collection proposals) { List statements; Expression expression; - if (parent instanceof SwitchStatement) { - SwitchStatement switchStatement = (SwitchStatement) parent; + if (parent instanceof SwitchStatement switchStatement) { statements = switchStatement.statements(); expression = switchStatement.getExpression(); - } else if (parent instanceof SwitchExpression) { - SwitchExpression switchExpression = (SwitchExpression) parent; + } else if (parent instanceof SwitchExpression switchExpression) { statements = switchExpression.statements(); expression = switchExpression.getExpression(); } else { @@ -825,8 +817,7 @@ public static void createMissingCaseProposals(IInvocationContext context, ASTNod int defaultIndex = statements.size(); for (int i = 0; i < statements.size(); i++) { Statement curr = statements.get(i); - if (curr instanceof SwitchCase) { - SwitchCase switchCase = (SwitchCase) curr; + if (curr instanceof SwitchCase switchCase) { if (ASTHelper.isSwitchCaseExpressionsSupportedInAST(switchCase.getAST())) { if (switchCase.expressions().size() == 0) { defaultIndex = i; @@ -953,7 +944,7 @@ public static void addMissingDefaultCaseProposal(IInvocationContext context, IPr } for (Statement statement : statements) { - if (statement instanceof SwitchCase && ((SwitchCase) statement).isDefault()) { + if (statement instanceof SwitchCase switchCase && switchCase.isDefault()) { return; } } @@ -965,12 +956,10 @@ public static void addMissingDefaultCaseProposal(IInvocationContext context, IPr private static void createMissingDefaultProposal(IInvocationContext context, ASTNode parent, Collection proposals) { List statements; Expression expression; - if (parent instanceof SwitchStatement) { - SwitchStatement switchStatement = (SwitchStatement) parent; + if (parent instanceof SwitchStatement switchStatement) { statements = switchStatement.statements(); expression = switchStatement.getExpression(); - } else if (parent instanceof SwitchExpression) { - SwitchExpression switchExpression = (SwitchExpression) parent; + } else if (parent instanceof SwitchExpression switchExpression) { statements = switchExpression.statements(); expression = switchExpression.getExpression(); } else { @@ -1036,7 +1025,7 @@ public static void addCasesOmittedProposals(IInvocationContext context, IProblem SwitchStatement parent = (SwitchStatement) selectedNode.getParent(); for (Statement statement : (List) parent.statements()) { - if (statement instanceof SwitchCase && ((SwitchCase) statement).isDefault()) { + if (statement instanceof SwitchCase switchCase && switchCase.isDefault()) { // insert //$CASES-OMITTED$: ASTRewrite rewrite = ASTRewrite.create(ast); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/MissingReturnTypeCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/MissingReturnTypeCorrectionProposal.java index e5ef2d483e..053a9e9b28 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/MissingReturnTypeCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/MissingReturnTypeCorrectionProposal.java @@ -80,8 +80,7 @@ protected ASTRewrite getRewrite() { ASTNode body= getBody(); // For lambda the body can be a block or an expression. - if (body instanceof Block) { - Block block= (Block) body; + if (body instanceof Block block) { List statements= block.statements(); int nStatements= statements.size(); ASTNode lastStatement= null; @@ -89,8 +88,8 @@ protected ASTRewrite getRewrite() { lastStatement= statements.get(nStatements - 1); } - if (returnBinding != null && lastStatement instanceof ExpressionStatement && lastStatement.getNodeType() != ASTNode.ASSIGNMENT) { - Expression expression= ((ExpressionStatement) lastStatement).getExpression(); + if (returnBinding != null && lastStatement instanceof ExpressionStatement expressionStatement && lastStatement.getNodeType() != ASTNode.ASSIGNMENT) { + Expression expression = expressionStatement.getExpression(); ITypeBinding binding= expression.resolveTypeBinding(); if (binding != null && binding.isAssignmentCompatible(returnBinding)) { Expression placeHolder= (Expression) rewrite.createMoveTarget(expression); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ModifierChangeCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ModifierChangeCorrectionProposal.java index 5c1b04b53b..91a8488358 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ModifierChangeCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/ModifierChangeCorrectionProposal.java @@ -79,14 +79,12 @@ protected ASTRewrite getRewrite() throws CoreException { if (declNode.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT) { VariableDeclarationFragment fragment = (VariableDeclarationFragment) declNode; ASTNode parent = declNode.getParent(); - if (parent instanceof FieldDeclaration) { - FieldDeclaration fieldDecl = (FieldDeclaration) parent; + if (parent instanceof FieldDeclaration fieldDecl) { if (fieldDecl.fragments().size() > 1 && (fieldDecl.getParent() instanceof AbstractTypeDeclaration)) { // split VariableDeclarationRewrite.rewriteModifiers(fieldDecl, new VariableDeclarationFragment[] { fragment }, fIncludedModifiers, fExcludedModifiers, rewrite, null); return rewrite; } - } else if (parent instanceof VariableDeclarationStatement) { - VariableDeclarationStatement varDecl = (VariableDeclarationStatement) parent; + } else if (parent instanceof VariableDeclarationStatement varDecl) { if (varDecl.fragments().size() > 1 && (varDecl.getParent() instanceof Block)) { // split VariableDeclarationRewrite.rewriteModifiers(varDecl, new VariableDeclarationFragment[] { fragment }, fIncludedModifiers, fExcludedModifiers, rewrite, null); return rewrite; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewAnnotationMemberProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewAnnotationMemberProposal.java index 57ca2be254..26d3334733 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewAnnotationMemberProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewAnnotationMemberProposal.java @@ -63,9 +63,7 @@ protected ASTRewrite getRewrite() throws CoreException { } createImportRewrite(astRoot); - if (newTypeDecl instanceof AnnotationTypeDeclaration) { - AnnotationTypeDeclaration newAnnotationTypeDecl= (AnnotationTypeDeclaration) newTypeDecl; - + if (newTypeDecl instanceof AnnotationTypeDeclaration newAnnotationTypeDecl) { ASTRewrite rewrite= ASTRewrite.create(astRoot.getAST()); AnnotationTypeMemberDeclaration newStub= getStub(rewrite, newAnnotationTypeDecl); @@ -104,8 +102,8 @@ private Type getNewType(ASTRewrite rewrite) { if (fInvocationNode.getLocationInParent() == MemberValuePair.NAME_PROPERTY) { Expression value= ((MemberValuePair) fInvocationNode.getParent()).getValue(); binding= value.resolveTypeBinding(); - } else if (fInvocationNode instanceof Expression) { - binding= ((Expression) fInvocationNode).resolveTypeBinding(); + } else if (fInvocationNode instanceof Expression expression) { + binding = expression.resolveTypeBinding(); } if (binding != null) { ImportRewriteContext importRewriteContext= new ContextSensitiveImportRewriteContext(fInvocationNode, getImportRewrite()); @@ -121,8 +119,8 @@ private int evaluateModifiers(AnnotationTypeDeclaration targetTypeDecl) { List methodDecls= targetTypeDecl.bodyDeclarations(); for (int i= 0; i < methodDecls.size(); i++) { Object curr= methodDecls.get(i); - if (curr instanceof AnnotationTypeMemberDeclaration) { - return ((AnnotationTypeMemberDeclaration) curr).getModifiers(); + if (curr instanceof AnnotationTypeMemberDeclaration annotation) { + return annotation.getModifiers(); } } return 0; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewCUProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewCUProposal.java index 0e3d8a48d0..87d2bdd695 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewCUProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewCUProposal.java @@ -112,8 +112,8 @@ private void setDisplayName() { if (fNode != null) { containerName = ASTNodes.getQualifier(fNode); } else { - if (fTypeContainer instanceof IPackageFragment) { - containerName = ((IPackageFragment) fTypeContainer).getElementName(); + if (fTypeContainer instanceof IPackageFragment pack) { + containerName = pack.getElementName(); } else { containerName = ""; //$NON-NLS-1$ } @@ -238,13 +238,13 @@ private static String getTypeName(int typeKind, Name node) { private TypeDeclaration findEnclosingTypeDeclaration(ASTNode node, String typeName) { Iterator iter; - if (node instanceof CompilationUnit) { - iter = ((CompilationUnit) node).types().iterator(); - } else if (node instanceof TypeDeclaration) { - if (Objects.equals(typeName, ((TypeDeclaration) node).getName().toString())) { - return (TypeDeclaration) node; + if (node instanceof CompilationUnit unit) { + iter = unit.types().iterator(); + } else if (node instanceof TypeDeclaration typeDecl) { + if (Objects.equals(typeName, typeDecl.getName().toString())) { + return typeDecl; } - iter = ((TypeDeclaration) node).bodyDeclarations().iterator(); + iter = typeDecl.bodyDeclarations().iterator(); } else { return null; } @@ -261,17 +261,16 @@ private TypeDeclaration findEnclosingTypeDeclaration(ASTNode node, String typeNa @Override protected Change createChange() throws CoreException { IType targetType; - if (fTypeContainer instanceof IType) { - IType enclosingType = (IType) fTypeContainer; + if (fTypeContainer instanceof IType enclosingType) { ICompilationUnit parentCU = enclosingType.getCompilationUnit(); CompilationUnitChange cuChange = new CompilationUnitChange(fName, parentCU); TextEdit edit = constructEnclosingTypeEdit(parentCU); cuChange.setEdit(edit); return cuChange; - } else if (fTypeContainer instanceof IPackageFragment && ((IPackageFragment) fTypeContainer).getKind() == IPackageFragmentRoot.K_SOURCE) { + } else if (fTypeContainer instanceof IPackageFragment pack && pack.getKind() == IPackageFragmentRoot.K_SOURCE) { String name = ASTNodes.getSimpleNameIdentifier(fNode); - ICompilationUnit parentCU = ((IPackageFragment) fTypeContainer).getCompilationUnit(getCompilationUnitName(name)); + ICompilationUnit parentCU = pack.getCompilationUnit(getCompilationUnitName(name)); targetType = parentCU.getType(name); CompositeChange change = new CompositeChange(fName); change.add(new CreateFileChange(targetType.getResource().getRawLocation(), "", "")); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewMethodCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewMethodCorrectionProposal.java index 9068dc2166..bc9472f97f 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewMethodCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewMethodCorrectionProposal.java @@ -76,18 +76,18 @@ private int evaluateModifiers(ASTNode targetTypeDecl) { return getInterfaceMethodModifiers(targetTypeDecl, true); } ASTNode invocationNode= getInvocationNode(); - if (invocationNode instanceof MethodInvocation) { + if (invocationNode instanceof MethodInvocation methodInvocation) { int modifiers= 0; - Expression expression= ((MethodInvocation)invocationNode).getExpression(); + Expression expression = methodInvocation.getExpression(); if (expression != null) { - if (expression instanceof Name && ((Name) expression).resolveBinding().getKind() == IBinding.TYPE) { + if (expression instanceof Name name && name.resolveBinding().getKind() == IBinding.TYPE) { modifiers |= Modifier.STATIC; } } else if (ASTResolving.isInStaticContext(invocationNode)) { modifiers |= Modifier.STATIC; } ASTNode node= ASTResolving.findParentType(invocationNode); - boolean isParentInterface= node instanceof TypeDeclaration && ((TypeDeclaration) node).isInterface(); + boolean isParentInterface = node instanceof TypeDeclaration typeDecl && typeDecl.isInterface(); if (isTargetInterface || isParentInterface) { if (expression == null && !targetTypeDecl.equals(node)) { modifiers|= Modifier.STATIC; @@ -118,8 +118,7 @@ private int evaluateModifiers(ASTNode targetTypeDecl) { private int getInterfaceMethodModifiers(ASTNode targetTypeDecl, boolean createAbstractMethod) { // for interface and annotation members copy the modifiers from an existing member - if (targetTypeDecl instanceof TypeDeclaration) { - TypeDeclaration type= (TypeDeclaration) targetTypeDecl; + if (targetTypeDecl instanceof TypeDeclaration type) { MethodDeclaration[] methodDecls= type.getMethods(); if (methodDecls.length > 0) { if (createAbstractMethod) { @@ -156,10 +155,10 @@ protected boolean isConstructor() { protected SimpleName getNewName(ASTRewrite rewrite) { ASTNode invocationNode= getInvocationNode(); String name; - if (invocationNode instanceof MethodInvocation) { - name= ((MethodInvocation)invocationNode).getName().getIdentifier(); - } else if (invocationNode instanceof SuperMethodInvocation) { - name= ((SuperMethodInvocation)invocationNode).getName().getIdentifier(); + if (invocationNode instanceof MethodInvocation methodInvocation) { + name = methodInvocation.getName().getIdentifier(); + } else if (invocationNode instanceof SuperMethodInvocation superInvocation) { + name = superInvocation.getName().getIdentifier(); } else { name= getSenderBinding().getName(); // name of the class } @@ -175,8 +174,7 @@ protected Type getNewMethodType(ASTRewrite rewrite, ImportRewriteContext importR Type newTypeNode= null; - if (node.getParent() instanceof MethodInvocation) { - MethodInvocation parent= (MethodInvocation) node.getParent(); + if (node.getParent() instanceof MethodInvocation parent) { if (parent.getExpression() == node) { ITypeBinding[] bindings= ASTResolving.getQualifierGuess(node.getRoot(), parent.getName().getIdentifier(), parent.arguments(), getSenderBinding()); if (bindings.length > 0) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewVariableCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewVariableCorrectionProposal.java index 636c9d7f90..5c97d23b38 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewVariableCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/NewVariableCorrectionProposal.java @@ -123,9 +123,7 @@ private ASTRewrite doAddParam(CompilationUnit cu) { SimpleName node= fOriginalNode; BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(node); - if (decl instanceof MethodDeclaration) { - MethodDeclaration methodDeclaration= (MethodDeclaration) decl; - + if (decl instanceof MethodDeclaration methodDeclaration) { ASTRewrite rewrite= ASTRewrite.create(ast); ImportRewrite imports= createImportRewrite((CompilationUnit) decl.getRoot()); @@ -164,10 +162,8 @@ private ASTRewrite doAddParam(CompilationUnit cu) { } private boolean isAssigned(Statement statement, SimpleName name) { - if (statement instanceof ExpressionStatement) { - ExpressionStatement exstat= (ExpressionStatement) statement; - if (exstat.getExpression() instanceof Assignment) { - Assignment assignment= (Assignment) exstat.getExpression(); + if (statement instanceof ExpressionStatement exstat) { + if (exstat.getExpression() instanceof Assignment assignment) { return assignment.getLeftHandSide() == name; } } @@ -175,11 +171,9 @@ private boolean isAssigned(Statement statement, SimpleName name) { } private boolean isForStatementInit(Statement statement, SimpleName name) { - if (statement instanceof ForStatement) { - ForStatement forStatement= (ForStatement) statement; + if (statement instanceof ForStatement forStatement) { List list = forStatement.initializers(); - if (list.size() == 1 && list.get(0) instanceof Assignment) { - Assignment assignment= (Assignment) list.get(0); + if (list.size() == 1 && list.get(0) instanceof Assignment assignment) { return assignment.getLeftHandSide() == name; } } @@ -188,8 +182,7 @@ private boolean isForStatementInit(Statement statement, SimpleName name) { private boolean isEnhancedForStatementVariable(Statement statement, SimpleName name) { - if (statement instanceof EnhancedForStatement) { - EnhancedForStatement forStatement= (EnhancedForStatement) statement; + if (statement instanceof EnhancedForStatement forStatement) { SingleVariableDeclaration param= forStatement.getParameter(); return param.getType() == name.getParent(); // strange recovery, see https://bugs.eclipse.org/180456 } @@ -203,11 +196,11 @@ private ASTRewrite doAddLocal(CompilationUnit cu) { Block body; BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(fOriginalNode); IBinding targetContext= null; - if (decl instanceof MethodDeclaration) { - body= (((MethodDeclaration) decl).getBody()); - targetContext= ((MethodDeclaration) decl).resolveBinding(); - } else if (decl instanceof Initializer) { - body= (((Initializer) decl).getBody()); + if (decl instanceof MethodDeclaration methodDecl) { + body = methodDecl.getBody(); + targetContext = methodDecl.resolveBinding(); + } else if (decl instanceof Initializer initializer) { + body = initializer.getBody(); targetContext= Bindings.getBindingOfParentType(decl); } else { return null; @@ -308,8 +301,8 @@ private ASTRewrite doAddLocal(CompilationUnit cu) { Statement statement= dominantStatement; List list= ASTNodes.getContainingList(statement); - while (list == null && statement.getParent() instanceof Statement) { // parent must be if, for or while - statement= (Statement) statement.getParent(); + while (list == null && statement.getParent() instanceof Statement parentStatement) { // parent must be if, for or while + statement = parentStatement; list= ASTNodes.getContainingList(statement); } if (list != null) { @@ -432,8 +425,7 @@ private int findFieldInsertIndex(List decls, FieldDeclaration n } private Type evaluateVariableType(AST ast, ImportRewrite imports, ImportRewriteContext importRewriteContext, IBinding targetContext, TypeLocation location) { - if (fOriginalNode.getParent() instanceof MethodInvocation) { - MethodInvocation parent= (MethodInvocation) fOriginalNode.getParent(); + if (fOriginalNode.getParent() instanceof MethodInvocation parent) { if (parent.getExpression() == fOriginalNode) { // _x_.foo() -> guess qualifier type by looking for a type with method 'foo' ITypeBinding[] bindings= ASTResolving.getQualifierGuess(fOriginalNode.getRoot(), parent.getName().getIdentifier(), parent.arguments(), targetContext); @@ -468,7 +460,7 @@ private Type evaluateVariableType(AST ast, ImportRewrite imports, ImportRewriteC private boolean isVariableAssigned() { ASTNode parent= fOriginalNode.getParent(); - return (parent instanceof Assignment) && (fOriginalNode == ((Assignment) parent).getLeftHandSide()); + return parent instanceof Assignment assignment && fOriginalNode == assignment.getLeftHandSide(); } @@ -490,8 +482,8 @@ private int evaluateFieldModifiers(ASTNode newTypeDecl) { modifiers |= Modifier.FINAL | Modifier.STATIC; } else { ASTNode parent= fOriginalNode.getParent(); - if (parent instanceof QualifiedName) { - IBinding qualifierBinding= ((QualifiedName)parent).getQualifier().resolveBinding(); + if (parent instanceof QualifiedName qualifiedName) { + IBinding qualifierBinding = qualifiedName.getQualifier().resolveBinding(); if (qualifierBinding instanceof ITypeBinding) { modifiers |= Modifier.STATIC; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/RenameNodeCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/RenameNodeCorrectionProposal.java index 9c45e69faa..f157387173 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/RenameNodeCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/RenameNodeCorrectionProposal.java @@ -48,9 +48,9 @@ protected void addEdits(IDocument doc, TextEdit root) throws CoreException { CompilationUnit unit = CoreASTProvider.getInstance().getAST(getCompilationUnit(), CoreASTProvider.WAIT_YES, null); ASTNode name= NodeFinder.perform(unit, fOffset, fLength); - if (name instanceof SimpleName) { + if (name instanceof SimpleName simpleName) { - SimpleName[] names= LinkedNodeFinder.findByProblems(unit, (SimpleName) name); + SimpleName[] names = LinkedNodeFinder.findByProblems(unit, simpleName); if (names != null) { for (int i= 0; i < names.length; i++) { SimpleName curr= names[i]; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeChangeCorrectionProposal.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeChangeCorrectionProposal.java index 4f53de3877..874fa221c3 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeChangeCorrectionProposal.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeChangeCorrectionProposal.java @@ -159,8 +159,7 @@ protected ASTRewrite getRewrite() throws CoreException { type = imports.addImport(fNewType, ast, context, fTypeLocation); } - if (declNode instanceof MethodDeclaration) { - MethodDeclaration methodDecl= (MethodDeclaration) declNode; + if (declNode instanceof MethodDeclaration methodDecl) { Type origReturnType= methodDecl.getReturnType2(); rewrite.set(methodDecl, MethodDeclaration.RETURN_TYPE2_PROPERTY, type, null); DimensionRewrite.removeAllChildren(methodDecl, MethodDeclaration.EXTRA_DIMENSIONS2_PROPERTY, rewrite, null); @@ -182,18 +181,15 @@ protected ASTRewrite getRewrite() throws CoreException { } } - } else if (declNode instanceof AnnotationTypeMemberDeclaration) { - AnnotationTypeMemberDeclaration methodDecl= (AnnotationTypeMemberDeclaration) declNode; + } else if (declNode instanceof AnnotationTypeMemberDeclaration methodDecl) { rewrite.set(methodDecl, AnnotationTypeMemberDeclaration.TYPE_PROPERTY, type, null); } else if (declNode instanceof VariableDeclarationFragment) { ASTNode parent= declNode.getParent(); - if (parent instanceof FieldDeclaration) { - FieldDeclaration fieldDecl= (FieldDeclaration) parent; - if (fieldDecl.fragments().size() > 1 && (fieldDecl.getParent() instanceof AbstractTypeDeclaration)) { // split + if (parent instanceof FieldDeclaration fieldDecl) { + if (fieldDecl.fragments().size() > 1 && fieldDecl.getParent() instanceof AbstractTypeDeclaration typeDecl) { // split VariableDeclarationFragment placeholder= (VariableDeclarationFragment) rewrite.createMoveTarget(declNode); FieldDeclaration newField= ast.newFieldDeclaration(placeholder); newField.setType(type); - AbstractTypeDeclaration typeDecl= (AbstractTypeDeclaration) fieldDecl.getParent(); ListRewrite listRewrite= rewrite.getListRewrite(typeDecl, typeDecl.getBodyDeclarationsProperty()); if (fieldDecl.fragments().indexOf(declNode) == 0) { // if it as the first in the list-> insert before @@ -206,8 +202,7 @@ protected ASTRewrite getRewrite() throws CoreException { DimensionRewrite.removeAllChildren(declNode, VariableDeclarationFragment.EXTRA_DIMENSIONS2_PROPERTY, rewrite, null); TypeAnnotationRewrite.removePureTypeAnnotations(fieldDecl, FieldDeclaration.MODIFIERS2_PROPERTY, rewrite, null); } - } else if (parent instanceof VariableDeclarationStatement) { - VariableDeclarationStatement varDecl= (VariableDeclarationStatement) parent; + } else if (parent instanceof VariableDeclarationStatement varDecl) { if (varDecl.fragments().size() > 1 && (varDecl.getParent() instanceof Block)) { // split VariableDeclarationFragment placeholder= (VariableDeclarationFragment) rewrite.createMoveTarget(declNode); VariableDeclarationStatement newStat= ast.newVariableDeclarationStatement(placeholder); @@ -234,8 +229,7 @@ protected ASTRewrite getRewrite() throws CoreException { } } } - } else if (parent instanceof VariableDeclarationExpression) { - VariableDeclarationExpression varDecl= (VariableDeclarationExpression) parent; + } else if (parent instanceof VariableDeclarationExpression varDecl) { Type oldType = (Type) rewrite.get(varDecl, VariableDeclarationExpression.TYPE_PROPERTY); rewrite.set(varDecl, VariableDeclarationExpression.TYPE_PROPERTY, type, null); DimensionRewrite.removeAllChildren(declNode, VariableDeclarationFragment.EXTRA_DIMENSIONS2_PROPERTY, rewrite, null); @@ -247,8 +241,7 @@ protected ASTRewrite getRewrite() throws CoreException { } } } - } else if (declNode instanceof SingleVariableDeclaration) { - SingleVariableDeclaration variableDeclaration= (SingleVariableDeclaration) declNode; + } else if (declNode instanceof SingleVariableDeclaration variableDeclaration) { Type oldType = (Type) rewrite.get(variableDeclaration, SingleVariableDeclaration.TYPE_PROPERTY); rewrite.set(variableDeclaration, SingleVariableDeclaration.TYPE_PROPERTY, type, null); DimensionRewrite.removeAllChildren(declNode, SingleVariableDeclaration.EXTRA_DIMENSIONS2_PROPERTY, rewrite, null); @@ -267,8 +260,8 @@ protected ASTRewrite getRewrite() throws CoreException { private void sortTypes(ITypeBinding[] typeProposals) { ITypeBinding oldType; - if (fBinding instanceof IMethodBinding) { - oldType= ((IMethodBinding) fBinding).getReturnType(); + if (fBinding instanceof IMethodBinding methodBinding) { + oldType = methodBinding.getReturnType(); } else { oldType= ((IVariableBinding) fBinding).getType(); } @@ -298,24 +291,23 @@ private void handledInferredParameterizedType(ASTNode node, ASTNode declaringNod } ASTNode processNode = null; List fragments = null; - if (node instanceof VariableDeclarationStatement) { - fragments = ((VariableDeclarationStatement) node).fragments(); - } else if (node instanceof VariableDeclarationExpression) { - fragments = ((VariableDeclarationExpression) node).fragments(); + if (node instanceof VariableDeclarationStatement variableDecl) { + fragments = variableDecl.fragments(); + } else if (node instanceof VariableDeclarationExpression variableDecl) { + fragments = variableDecl.fragments(); } if (fragments != null && fragments.size() == 1) { VariableDeclarationFragment varFrag = fragments.get(0); processNode = varFrag.getInitializer(); - if (processNode == null && declaringNode instanceof VariableDeclarationFragment) { - processNode = ((VariableDeclarationFragment) declaringNode).getInitializer(); + if (processNode == null && declaringNode instanceof VariableDeclarationFragment variableDeclFragment) { + processNode = variableDeclFragment.getInitializer(); } } ParameterizedType createdType = null; - if (processNode instanceof ClassInstanceCreation) { - ClassInstanceCreation creation = (ClassInstanceCreation) processNode; + if (processNode instanceof ClassInstanceCreation creation) { Type type = creation.getType(); - if (type instanceof ParameterizedType) { - createdType = (ParameterizedType) type; + if (type instanceof ParameterizedType parameterizedType) { + createdType = parameterizedType; } } if (createdType == null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java index d64ca2deaa..e6f74422b0 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/TypeMismatchSubProcessor.java @@ -100,10 +100,10 @@ public static void addTypeMismatchProposals(IInvocationContext context, IProblem nodeToCast= assign.getRightHandSide(); } castTypeBinding= assign.getLeftHandSide().resolveTypeBinding(); - if (leftHandSide instanceof Name) { - receiverNode= (Name) leftHandSide; - } else if (leftHandSide instanceof FieldAccess) { - receiverNode= ((FieldAccess) leftHandSide).getName(); + if (leftHandSide instanceof Name name) { + receiverNode = name; + } else if (leftHandSide instanceof FieldAccess fieldAccess) { + receiverNode = fieldAccess.getName(); } } else if (parentNodeType == ASTNode.VARIABLE_DECLARATION_FRAGMENT) { VariableDeclarationFragment frag= (VariableDeclarationFragment) selectedNode.getParent(); @@ -127,8 +127,8 @@ public static void addTypeMismatchProposals(IInvocationContext context, IProblem } ITypeBinding currBinding= nodeToCast.resolveTypeBinding(); - if (currBinding == null && nodeToCast instanceof MethodInvocation) { - IMethodBinding methodBinding= ((MethodInvocation) nodeToCast).resolveMethodBinding(); + if (currBinding == null && nodeToCast instanceof MethodInvocation methodInvocation) { + IMethodBinding methodBinding = methodInvocation.resolveMethodBinding(); if (methodBinding != null) { currBinding= methodBinding.getReturnType(); } @@ -154,10 +154,7 @@ public static void addTypeMismatchProposals(IInvocationContext context, IProblem // change method return statement to actual type if (!nullOrVoid && parentNodeType == ASTNode.RETURN_STATEMENT) { BodyDeclaration decl= ASTResolving.findParentBodyDeclaration(selectedNode); - if (decl instanceof MethodDeclaration) { - MethodDeclaration methodDeclaration= (MethodDeclaration) decl; - - + if (decl instanceof MethodDeclaration methodDeclaration) { currBinding= Bindings.normalizeTypeBinding(currBinding); if (currBinding == null) { currBinding= ast.resolveWellKnownType("java.lang.Object"); //$NON-NLS-1$ @@ -238,9 +235,7 @@ public static void addChangeSenderTypeProposals(IInvocationContext context, Expr ICompilationUnit targetCu= null; ITypeBinding declaringType= null; IBinding callerBindingDecl= callerBinding; - if (callerBinding instanceof IVariableBinding) { - IVariableBinding variableBinding= (IVariableBinding) callerBinding; - + if (callerBinding instanceof IVariableBinding variableBinding) { if (variableBinding.isEnumConstant()) { return; } @@ -254,14 +249,13 @@ public static void addChangeSenderTypeProposals(IInvocationContext context, Expr } declaringType= declaringClass.getTypeDeclaration(); } - } else if (callerBinding instanceof IMethodBinding) { - IMethodBinding methodBinding= (IMethodBinding) callerBinding; + } else if (callerBinding instanceof IMethodBinding methodBinding) { if (!methodBinding.isConstructor()) { declaringType= methodBinding.getDeclaringClass().getTypeDeclaration(); callerBindingDecl= methodBinding.getMethodDeclaration(); } - } else if (callerBinding instanceof ITypeBinding && nodeToCast.getLocationInParent() == SingleMemberAnnotation.TYPE_NAME_PROPERTY) { - declaringType= (ITypeBinding) callerBinding; + } else if (callerBinding instanceof ITypeBinding typeBinding && nodeToCast.getLocationInParent() == SingleMemberAnnotation.TYPE_NAME_PROPERTY) { + declaringType = typeBinding; callerBindingDecl= Bindings.findMethodInType(declaringType, "value", (String[]) null); //$NON-NLS-1$ if (callerBindingDecl == null) { return; @@ -457,13 +451,12 @@ public static void addTypeMismatchInForEachProposals(IInvocationContext context, ICompilationUnit cu= context.getCompilationUnit(); if (parameter.getName().getLength() == 0) { SimpleName simpleName= null; - if (parameter.getType() instanceof SimpleType) { - SimpleType type= (SimpleType) parameter.getType(); - if (type.getName() instanceof SimpleName) { - simpleName= (SimpleName) type.getName(); + if (parameter.getType() instanceof SimpleType type) { + if (type.getName() instanceof SimpleName name) { + simpleName = name; } - } else if (parameter.getType() instanceof NameQualifiedType) { - simpleName= ((NameQualifiedType) parameter.getType()).getName(); + } else if (parameter.getType() instanceof NameQualifiedType type) { + simpleName = type.getName(); } if (simpleName != null) { String name= simpleName.getIdentifier(); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/UnresolvedElementsSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/UnresolvedElementsSubProcessor.java index 7f9c68a12c..7e53955c1d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/UnresolvedElementsSubProcessor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/corrections/proposals/UnresolvedElementsSubProcessor.java @@ -135,8 +135,8 @@ public static void getVariableProposals(IInvocationContext context, IProblemLoca boolean suggestVariableProposals= true; int typeKind= 0; - while (selectedNode instanceof ParenthesizedExpression) { - selectedNode= ((ParenthesizedExpression) selectedNode).getExpression(); + while (selectedNode instanceof ParenthesizedExpression parenthesizedExpression) { + selectedNode = parenthesizedExpression.getExpression(); } @@ -166,8 +166,8 @@ public static void getVariableProposals(IInvocationContext context, IProblemLoca } else if (parent instanceof SimpleType || parent instanceof NameQualifiedType) { suggestVariableProposals= false; typeKind= TypeKinds.REF_TYPES_AND_VAR; - } else if (parent instanceof QualifiedName) { - Name qualifier= ((QualifiedName) parent).getQualifier(); + } else if (parent instanceof QualifiedName name) { + Name qualifier = name.getQualifier(); if (qualifier != node) { binding= qualifier.resolveTypeBinding(); } else { @@ -185,10 +185,10 @@ public static void getVariableProposals(IInvocationContext context, IProblemLoca } else if (locationInParent == SwitchCase.EXPRESSION_PROPERTY || locationInParent == SwitchCase.EXPRESSIONS2_PROPERTY) { ASTNode caseParent = node.getParent().getParent(); ITypeBinding switchExp = null; - if (caseParent instanceof SwitchStatement) { - switchExp = ((SwitchStatement) caseParent).getExpression().resolveTypeBinding(); - } else if (caseParent instanceof SwitchExpression) { - switchExp = ((SwitchExpression) caseParent).getExpression().resolveTypeBinding(); + if (caseParent instanceof SwitchStatement switchStatement) { + switchExp = switchStatement.getExpression().resolveTypeBinding(); + } else if (caseParent instanceof SwitchExpression switchExpression) { + switchExp = switchExpression.getExpression().resolveTypeBinding(); } if (switchExp != null && switchExp.isEnum()) { binding= switchExp; @@ -407,10 +407,10 @@ private static void addSimilarVariableProposals(ICompilationUnit cu, Compilation break; case ASTNode.ASSIGNMENT: Assignment assignment= (Assignment) parent; - if (isWriteAccess && assignment.getRightHandSide() instanceof SimpleName) { - otherNameInAssign= ((SimpleName) assignment.getRightHandSide()).getIdentifier(); - } else if (!isWriteAccess && assignment.getLeftHandSide() instanceof SimpleName) { - otherNameInAssign= ((SimpleName) assignment.getLeftHandSide()).getIdentifier(); + if (isWriteAccess && assignment.getRightHandSide() instanceof SimpleName name) { + otherNameInAssign = name.getIdentifier(); + } else if (!isWriteAccess && assignment.getLeftHandSide() instanceof SimpleName name) { + otherNameInAssign = name.getIdentifier(); } break; case ASTNode.METHOD_INVOCATION: @@ -437,8 +437,7 @@ private static void addSimilarVariableProposals(ICompilationUnit cu, Compilation loop: for (int i= 0; i < varsAndMethodsInScope.length && newProposals.size() <= 50; i++) { IBinding varOrMeth= varsAndMethodsInScope[i]; - if (varOrMeth instanceof IVariableBinding) { - IVariableBinding curr= (IVariableBinding) varOrMeth; + if (varOrMeth instanceof IVariableBinding curr) { String currName= curr.getName(); if (currName.equals(otherNameInAssign)) { continue loop; @@ -482,8 +481,7 @@ private static void addSimilarVariableProposals(ICompilationUnit cu, Compilation String label= Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_changevariable_description, BasicElementLabels.getJavaElementName(currName)); newProposals.add(new RenameNodeCorrectionProposal(label, cu, node.getStartPosition(), node.getLength(), currName, relevance)); } - } else if (varOrMeth instanceof IMethodBinding) { - IMethodBinding curr= (IMethodBinding) varOrMeth; + } else if (varOrMeth instanceof IMethodBinding curr) { if (!curr.isConstructor() && guessedType != null && canAssign(curr.getReturnType(), guessedType)) { if (NameMatcher.isSimilarName(curr.getName(), identifier)) { AST ast= astRoot.getAST(); @@ -587,15 +585,15 @@ public static void getTypeProposals(IInvocationContext context, IProblemLocation } Name node= null; - if (selectedNode instanceof Annotation) { - selectedNode = ((Annotation) selectedNode).getTypeName(); - } - if (selectedNode instanceof SimpleType) { - node= ((SimpleType) selectedNode).getName(); - } else if (selectedNode instanceof NameQualifiedType) { - node= ((NameQualifiedType) selectedNode).getName(); - } else if (selectedNode instanceof ArrayType) { - Type elementType= ((ArrayType) selectedNode).getElementType(); + if (selectedNode instanceof Annotation annotation) { + selectedNode = annotation.getTypeName(); + } + if (selectedNode instanceof SimpleType simpleType) { + node = simpleType.getName(); + } else if (selectedNode instanceof NameQualifiedType type) { + node = type.getName(); + } else if (selectedNode instanceof ArrayType type) { + Type elementType = type.getElementType(); if (elementType.isSimpleType()) { node= ((SimpleType) elementType).getName(); } else if (elementType.isNameQualifiedType()) { @@ -603,8 +601,8 @@ public static void getTypeProposals(IInvocationContext context, IProblemLocation } else { return; } - } else if (selectedNode instanceof Name) { - node= (Name) selectedNode; + } else if (selectedNode instanceof Name name) { + node = name; } else { return; } @@ -612,8 +610,8 @@ public static void getTypeProposals(IInvocationContext context, IProblemLocation // change to similar type proposals addSimilarTypeProposals(context, kind, cu, node, IProposalRelevance.SIMILAR_TYPE, proposals); - while (node.getParent() instanceof QualifiedName) { - node= (Name) node.getParent(); + while (node.getParent() instanceof QualifiedName parentName) { + node = parentName; } if (selectedNode != node) { @@ -627,13 +625,12 @@ public static void getTypeProposals(IInvocationContext context, IProblemLocation private static void addEnhancedForWithoutTypeProposals(ICompilationUnit cu, ASTNode selectedNode, Collection proposals) { - if (selectedNode instanceof SimpleName && (selectedNode.getLocationInParent() == SimpleType.NAME_PROPERTY || selectedNode.getLocationInParent() == NameQualifiedType.NAME_PROPERTY)) { + if (selectedNode instanceof SimpleName simpleName && (selectedNode.getLocationInParent() == SimpleType.NAME_PROPERTY || selectedNode.getLocationInParent() == NameQualifiedType.NAME_PROPERTY)) { ASTNode type= selectedNode.getParent(); if (type.getLocationInParent() == SingleVariableDeclaration.TYPE_PROPERTY) { SingleVariableDeclaration svd= (SingleVariableDeclaration) type.getParent(); if (svd.getLocationInParent() == EnhancedForStatement.PARAMETER_PROPERTY) { if (svd.getName().getLength() == 0) { - SimpleName simpleName= (SimpleName) selectedNode; String name= simpleName.getIdentifier(); int relevance= StubUtility.hasLocalVariableName(cu.getJavaProject(), name) ? 10 : 7; String label= Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_create_loop_variable_description, BasicElementLabels.getJavaElementName(name)); @@ -814,15 +811,15 @@ public static void addNewTypeProposals(ICompilationUnit cu, Name refNode, int ki if (binding != null && binding.isRecovered()) { binding = null; } - if (binding instanceof ITypeBinding) { - enclosingType = (IType) binding.getJavaElement(); - } else if (binding instanceof IPackageBinding) { + if (binding instanceof ITypeBinding typeBinding) { + enclosingType = (IType) typeBinding.getJavaElement(); + } else if (binding instanceof IPackageBinding packageBinding) { qualifier = qualifierName; - enclosingPackage = (IPackageFragment) binding.getJavaElement(); + enclosingPackage = (IPackageFragment) packageBinding.getJavaElement(); } else { IJavaElement[] res = cu.codeSelect(qualifierName.getStartPosition(), qualifierName.getLength()); - if (res != null && res.length > 0 && res[0] instanceof IType) { - enclosingType = (IType) res[0]; + if (res != null && res.length > 0 && res[0] instanceof IType type) { + enclosingType = type; } else { qualifier = qualifierName; enclosingPackage = JavaModelUtil.getPackageFragmentRoot(cu).getPackageFragment(ASTResolving.getFullName(qualifierName)); @@ -868,13 +865,13 @@ public static void addNewTypeProposals(ICompilationUnit cu, Name refNode, int ki while (declaration != null) { IBinding binding= null; int rel= baseRel; - if (declaration instanceof MethodDeclaration) { - binding= ((MethodDeclaration) declaration).resolveBinding(); + if (declaration instanceof MethodDeclaration methodDeclaration) { + binding = methodDeclaration.resolveBinding(); if (isLikelyMethodTypeParameterName(name)) { rel+= 2; } - } else if (declaration instanceof TypeDeclaration) { - binding= ((TypeDeclaration) declaration).resolveBinding(); + } else if (declaration instanceof TypeDeclaration typeDeclaration) { + binding = typeDeclaration.resolveBinding(); rel++; } if (binding != null) { @@ -908,13 +905,11 @@ public static void getMethodProposals(IInvocationContext context, IProblemLocati boolean isSuperInvocation; ASTNode invocationNode= nameNode.getParent(); - if (invocationNode instanceof MethodInvocation) { - MethodInvocation methodImpl= (MethodInvocation) invocationNode; + if (invocationNode instanceof MethodInvocation methodImpl) { arguments= methodImpl.arguments(); sender= methodImpl.getExpression(); isSuperInvocation= false; - } else if (invocationNode instanceof SuperMethodInvocation) { - SuperMethodInvocation methodImpl= (SuperMethodInvocation) invocationNode; + } else if (invocationNode instanceof SuperMethodInvocation methodImpl) { arguments= methodImpl.arguments(); sender= methodImpl.getQualifier(); isSuperInvocation= true; @@ -1085,7 +1080,7 @@ private static void addMissingCastParentsProposal(ICompilationUnit cu, MethodInv return; } - if (sender instanceof Name && ((Name) sender).resolveBinding() instanceof ITypeBinding) { + if (sender instanceof Name name && name.resolveBinding() instanceof ITypeBinding) { return; // static access } @@ -1094,16 +1089,16 @@ private static void addMissingCastParentsProposal(ICompilationUnit cu, MethodInv parent= parent.getParent(); } boolean hasCastProposal= false; - if (parent instanceof CastExpression) { + if (parent instanceof CastExpression castExpression) { // (TestCase) x.getName() -> ((TestCase) x).getName - hasCastProposal= useExistingParentCastProposal(cu, (CastExpression) parent, sender, invocationNode.getName(), getArgumentTypes(invocationNode.arguments()), proposals); + hasCastProposal = useExistingParentCastProposal(cu, castExpression, sender, invocationNode.getName(), getArgumentTypes(invocationNode.arguments()), proposals); } if (!hasCastProposal) { // x.getName() -> ((TestCase) x).getName Expression target= sender; - while (target instanceof ParenthesizedExpression) { - target= ((ParenthesizedExpression) target).getExpression(); + while (target instanceof ParenthesizedExpression parenthesizedExpression) { + target = parenthesizedExpression.getExpression(); } String label; @@ -1435,8 +1430,7 @@ private static void doEqualNumberOfParameters(IInvocationContext context, ASTNod } if (nDiffs == 0) { - if (nameNode.getParent() instanceof MethodInvocation) { - MethodInvocation inv= (MethodInvocation) nameNode.getParent(); + if (nameNode.getParent() instanceof MethodInvocation inv) { if (inv.getExpression() == null) { addQualifierToOuterProposal(context, inv, methodBinding, proposals); } @@ -1573,19 +1567,19 @@ private static ChangeDescription[] createSignatureChangeDescription(int[] indexO private static String getExpressionBaseName(Expression expr) { IBinding argBinding= Bindings.resolveExpressionBinding(expr, true); - if (argBinding instanceof IVariableBinding) { + if (argBinding instanceof IVariableBinding argVariableBinding) { IJavaProject project= null; ASTNode root= expr.getRoot(); - if (root instanceof CompilationUnit) { - ITypeRoot typeRoot= ((CompilationUnit) root).getTypeRoot(); + if (root instanceof CompilationUnit unit) { + ITypeRoot typeRoot = unit.getTypeRoot(); if (typeRoot != null) { project= typeRoot.getJavaProject(); } } - return StubUtility.getBaseName((IVariableBinding)argBinding, project); + return StubUtility.getBaseName(argVariableBinding, project); } - if (expr instanceof SimpleName) { - return ((SimpleName) expr).getIdentifier(); + if (expr instanceof SimpleName name) { + return name.getIdentifier(); } return null; } @@ -1675,8 +1669,8 @@ public static void getConstructorProposals(IInvocationContext context, IProblemL ClassInstanceCreation creation= (ClassInstanceCreation) selectedNode; IBinding binding= creation.getType().resolveBinding(); - if (binding instanceof ITypeBinding) { - targetBinding= (ITypeBinding) binding; + if (binding instanceof ITypeBinding typeBinding) { + targetBinding = typeBinding; arguments= creation.arguments(); } } else if (type == ASTNode.SUPER_CONSTRUCTOR_INVOCATION) { @@ -1730,8 +1724,8 @@ public static void getAmbiguousTypeReferenceProposals(IInvocationContext context IJavaElement[] elements= cu.codeSelect(offset, len); for (int i= 0; i < elements.length; i++) { IJavaElement curr= elements[i]; - if (curr instanceof IType && !TypeFilter.isFiltered((IType) curr)) { - String qualifiedTypeName= ((IType) curr).getFullyQualifiedName('.'); + if (curr instanceof IType type && !TypeFilter.isFiltered(type)) { + String qualifiedTypeName = type.getFullyQualifiedName('.'); CompilationUnit root= context.getASTRoot(); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDiagnosticsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDiagnosticsHandler.java index 4390a81299..48fe22c06b 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDiagnosticsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDiagnosticsHandler.java @@ -289,8 +289,7 @@ private static DiagnosticSeverity convertSeverity(IProblem problem) { private static Range convertRange(IOpenable openable, IProblem problem) { try { - if (problem.getID() == IProblem.UndefinedType && openable instanceof ICompilationUnit) { - ICompilationUnit cu = (ICompilationUnit) openable; + if (problem.getID() == IProblem.UndefinedType && openable instanceof ICompilationUnit cu) { int start = getSourceStart(cu, problem); if (start > -1) { return JDTUtils.toRange(openable, start, problem.getSourceEnd() - start + 1); @@ -304,8 +303,7 @@ private static Range convertRange(IOpenable openable, IProblem problem) { start.setLine(problem.getSourceLineNumber() - 1);// The protocol is 0-based. end.setLine(problem.getSourceLineNumber() - 1); - if (problem instanceof DefaultProblem) { - DefaultProblem dProblem = (DefaultProblem) problem; + if (problem instanceof DefaultProblem dProblem) { start.setCharacter(dProblem.getSourceColumnNumber() - 1); int offset = 0; if (dProblem.getSourceStart() != -1 && dProblem.getSourceEnd() != -1) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java index 3c619270b9..8edd0d3f8a 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseDocumentLifeCycleHandler.java @@ -260,8 +260,8 @@ public IBuffer createBuffer(ICompilationUnit workingCopy) { if (!monitor.isCanceled()) { ICompilationUnit original = workingCopy.getPrimary(); IResource resource = original.getResource(); - if (resource instanceof IFile) { - return new DocumentAdapter(workingCopy, (IFile) resource); + if (resource instanceof IFile file) { + return new DocumentAdapter(workingCopy, file); } } return DocumentAdapter.Null; @@ -354,8 +354,7 @@ public ICompilationUnit handleOpen(DidOpenTextDocumentParams params) { unit.getResource().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor()); if (unit.getResource().exists()) { IJavaElement parent = unit.getParent(); - if (parent instanceof PackageFragment) { - PackageFragment pkg = (PackageFragment) parent; + if (parent instanceof PackageFragment pkg) { OpenableElementInfo elementInfo = (OpenableElementInfo) pkg.getElementInfo(); elementInfo.addChild(unit); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseInitHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseInitHandler.java index 5b6bdfb5aa..7d8c345f42 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseInitHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/BaseInitHandler.java @@ -108,8 +108,7 @@ public InitializeResult initialize(InitializeParams param) { logInfo("No workspace folders or root uri was defined. Falling back on " + workspaceLocation); rootPaths.add(workspaceLocation); } - if (initializationOptions.get(SETTINGS_KEY) instanceof Map) { - Object settings = initializationOptions.get(SETTINGS_KEY); + if (initializationOptions.get(SETTINGS_KEY) instanceof Map settings) { @SuppressWarnings("unchecked") Preferences prefs = Preferences.createFrom((Map) settings); prefs.setRootPaths(rootPaths); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CallHierarchyHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CallHierarchyHandler.java index 2fd69a87ae..c800f5318d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CallHierarchyHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CallHierarchyHandler.java @@ -148,8 +148,7 @@ private IMember getCallHierarchyElement(String uri, int line, int character, IPr return null; } - if (root instanceof ICompilationUnit) { - ICompilationUnit unit = (ICompilationUnit) root; + if (root instanceof ICompilationUnit unit) { if (root.getResource() == null) { return null; } @@ -164,8 +163,8 @@ private IMember getCallHierarchyElement(String uri, int line, int character, IPr List selectedElements = codeResolve(root, offset); Stream possibleElements = selectedElements.stream().filter(CallHierarchyCore::isPossibleInputElement); Optional firstElement = possibleElements.findFirst(); - if (firstElement.isPresent() && firstElement.get() instanceof IMember) { - candidate = (IMember) firstElement.get(); + if (firstElement.isPresent() && firstElement.get() instanceof IMember member) { + candidate = member; } // If the member cannot be resolved, retrieve the enclosing method. @@ -266,8 +265,8 @@ private List getOutgoingCallItemsAt(String uri, int l } private List codeResolve(IJavaElement input, int offset) throws JavaModelException { - if (input instanceof ICodeAssist) { - return Arrays.asList(((ICodeAssist) input).codeSelect(offset, 0)); + if (input instanceof ICodeAssist codeAssist) { + return Arrays.asList(codeAssist.codeSelect(offset, 0)); } return emptyList(); } @@ -347,16 +346,15 @@ private Location getLocation(IJavaElement element, LocationType locationType) th Assert.isNotNull(locationType, "locationType"); Location location = locationType.toLocation(element); - if (location == null && element instanceof IType) { - IType type = (IType) element; + if (location == null && element instanceof IType type) { ICompilationUnit unit = (ICompilationUnit) type.getAncestor(COMPILATION_UNIT); IClassFile classFile = (IClassFile) type.getAncestor(CLASS_FILE); if (unit != null || (classFile != null && classFile.getSourceRange() != null)) { location = locationType.toLocation(type); } } - if (location == null && element instanceof IMember && ((IMember) element).getClassFile() != null) { - location = JDTUtils.toLocation(((IMember) element).getClassFile()); + if (location == null && element instanceof IMember member && member.getClassFile() != null) { + location = JDTUtils.toLocation(member.getClassFile()); } return location; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeActionHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeActionHandler.java index a36c347d8d..9f2fcfbd73 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeActionHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeActionHandler.java @@ -228,12 +228,12 @@ private void populateDataFields(List> codeActions) { if (action.isRight()) { Either proposal = null; Object originalData = action.getRight().getData(); - if (originalData instanceof CodeActionData) { - Object originalProposal = ((CodeActionData) originalData).getProposal(); - if (originalProposal instanceof ChangeCorrectionProposal) { - proposal = Either.forLeft((ChangeCorrectionProposal) originalProposal); - } else if (originalProposal instanceof CodeActionProposal) { - proposal = Either.forRight((CodeActionProposal) originalProposal); + if (originalData instanceof CodeActionData codeActionData) { + Object originalProposal = codeActionData.getProposal(); + if (originalProposal instanceof ChangeCorrectionProposal changeCorrectionProposal) { + proposal = Either.forLeft(changeCorrectionProposal); + } else if (originalProposal instanceof CodeActionProposal codeActionProposal) { + proposal = Either.forRight(codeActionProposal); } else { action.getRight().setData(null); return; @@ -260,14 +260,11 @@ private Optional> getCodeActionFromProposal(ChangeCo String name = proposal.getName(); Command command = null; - if (proposal instanceof CUCorrectionCommandProposal) { - CUCorrectionCommandProposal commandProposal = (CUCorrectionCommandProposal) proposal; + if (proposal instanceof CUCorrectionCommandProposal commandProposal) { command = new Command(name, commandProposal.getCommand(), commandProposal.getCommandArguments()); - } else if (proposal instanceof RefactoringCorrectionCommandProposal) { - RefactoringCorrectionCommandProposal commandProposal = (RefactoringCorrectionCommandProposal) proposal; + } else if (proposal instanceof RefactoringCorrectionCommandProposal commandProposal) { command = new Command(name, commandProposal.getCommand(), commandProposal.getCommandArguments()); - } else if (proposal instanceof AssignToVariableAssistCommandProposal) { - AssignToVariableAssistCommandProposal commandProposal = (AssignToVariableAssistCommandProposal) proposal; + } else if (proposal instanceof AssignToVariableAssistCommandProposal commandProposal) { command = new Command(name, commandProposal.getCommand(), commandProposal.getCommandArguments()); } else { if (!this.preferenceManager.getClientPreferences().isResolveCodeActionSupported()) { @@ -308,8 +305,7 @@ public static IProblemLocationCore[] getProblemLocationCores(ICompilationUnit un boolean isError = diagnostic.getSeverity() == DiagnosticSeverity.Error; int problemId = getProblemId(diagnostic); List arguments = new ArrayList<>(); - if (diagnostic.getData() instanceof JsonArray) { - final JsonArray data = (JsonArray) diagnostic.getData(); + if (diagnostic.getData() instanceof JsonArray data) { for (JsonElement e : data) { arguments.add(e.getAsString()); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeLensHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeLensHandler.java index 207d713991..3e82036c5c 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeLensHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CodeLensHandler.java @@ -102,11 +102,11 @@ public CodeLens resolve(CodeLens lens, IProgressMonitor monitor) { JavaLanguageServerPlugin.logException(e.getMessage(), e); } } else if (IMPLEMENTATION_TYPE.equals(type)) { - if (element instanceof IType) { + if (element instanceof IType typeElement) { try { IDocument document = JsonRpcHelpers.toDocument(typeRoot.getBuffer()); int offset = document.getLineOffset(position.getLine()) + position.getCharacter(); - locations = findImplementations(typeRoot, (IType) element, offset, monitor); + locations = findImplementations(typeRoot, typeElement, offset, monitor); } catch (CoreException | BadLocationException e) { JavaLanguageServerPlugin.logException(e.getMessage(), e); } @@ -152,8 +152,7 @@ public void acceptSearchMatch(SearchMatch match) throws CoreException { return; } Object o = match.getElement(); - if (o instanceof IJavaElement) { - IJavaElement element = (IJavaElement) o; + if (o instanceof IJavaElement element) { ICompilationUnit compilationUnit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT); if (compilationUnit == null) { return; @@ -226,8 +225,7 @@ private void collectCodeLenses(ITypeRoot typeRoot, IJavaElement[] elements, Coll lenses.add(lens); } } - if (preferenceManager.getPreferences().isImplementationsCodeLensEnabled() && element instanceof IType) { - IType type = (IType) element; + if (preferenceManager.getPreferences().isImplementationsCodeLensEnabled() && element instanceof IType type) { if (type.isInterface() || Flags.isAbstract(type.getFlags())) { CodeLens lens = getCodeLens(IMPLEMENTATION_TYPE, element, typeRoot); if (lens != null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CompletionResolveHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CompletionResolveHandler.java index 6b0ee4ed6e..6c2887d592 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CompletionResolveHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CompletionResolveHandler.java @@ -152,10 +152,9 @@ public CompletionItem resolve(CompletionItem param, IProgressMonitor monitor) { String name = data.get(DATA_FIELD_NAME); String[] paramSigs = CharOperation.NO_STRINGS; if(data.containsKey( DATA_FIELD_SIGNATURE)){ - if (proposal instanceof InternalCompletionProposal) { - Binding binding = ((InternalCompletionProposal) proposal).getBinding(); - if (binding instanceof MethodBinding) { - MethodBinding methodBinding = (MethodBinding) binding; + if (proposal instanceof InternalCompletionProposal internalProposal) { + Binding binding = internalProposal.getBinding(); + if (binding instanceof MethodBinding methodBinding) { MethodBinding original = methodBinding.original(); char[] signature; if (original != binding) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CreateModuleInfoHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CreateModuleInfoHandler.java index 3ff61d8928..07e188941f 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CreateModuleInfoHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/CreateModuleInfoHandler.java @@ -90,7 +90,7 @@ public static String createModuleInfo(String projectUri, IProgressMonitor monito IPackageFragmentRoot targetPkgFragmentRoot = null; for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) { if (packageFragmentRoot.getPackageFragment("").getCompilationUnit(JavaModelUtil.MODULE_INFO_JAVA).exists()) { - JavaLanguageServerPlugin.getInstance().getClientConnection().showNotificationMessage(MessageType.Error, + JavaLanguageServerPlugin.getInstance().getClientConnection().showNotificationMessage(MessageType.Error, "The module-info.java file already exists in the source folder \"" + packageFragmentRoot.getElementName() + "\""); return null; } @@ -137,8 +137,7 @@ private static String getModuleInfoFileContent(IJavaProject javaProject, IPackag HashSet exportedPackages = new HashSet<>(); for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) { for (IJavaElement child : packageFragmentRoot.getChildren()) { - if (child instanceof IPackageFragment) { - IPackageFragment pkgFragment = (IPackageFragment) child; + if (child instanceof IPackageFragment pkgFragment) { if (!pkgFragment.isDefaultPackage() && pkgFragment.getCompilationUnits().length != 0) { exportedPackages.add(pkgFragment.getElementName()); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/DocumentSymbolHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/DocumentSymbolHandler.java index 8d9002d2de..2901ff30ff 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/DocumentSymbolHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/DocumentSymbolHandler.java @@ -108,8 +108,8 @@ private void collectChildren(ITypeRoot unit, IJavaElement[] elements, ArrayList< if (monitor.isCanceled()) { throw new OperationCanceledException(); } - if (element instanceof IParent) { - collectChildren(unit, filter(((IParent) element).getChildren()), symbols, monitor); + if (element instanceof IParent parent) { + collectChildren(unit, filter(parent.getChildren()), symbols, monitor); } int type = element.getElementType(); if (type != IJavaElement.TYPE && type != IJavaElement.FIELD && type != IJavaElement.METHOD) { @@ -181,9 +181,9 @@ private DocumentSymbol toDocumentSymbol(IJavaElement unit, IProgressMonitor moni } } symbol.setDetail(getDetail(unit, name)); - if (unit instanceof IParent) { + if (unit instanceof IParent parent) { //@formatter:off - IJavaElement[] children = filter(((IParent) unit).getChildren()); + IJavaElement[] children = filter(parent.getChildren()); symbol.setChildren(Stream.of(children) .map(child -> toDocumentSymbol(child, monitor)) .filter(Objects::nonNull) @@ -296,10 +296,8 @@ else if (type.isEnum()) { case IJavaElement.METHOD: try { // TODO handle `IInitializer`. What should be the `SymbolKind`? - if (element instanceof IMethod) { - if (((IMethod) element).isConstructor()) { - return SymbolKind.Constructor; - } + if (element instanceof IMethod method && method.isConstructor()) { + return SymbolKind.Constructor; } return SymbolKind.Method; } catch (JavaModelException e) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FoldingRangeHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FoldingRangeHandler.java index 537d6655e7..bf39f745cc 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FoldingRangeHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FoldingRangeHandler.java @@ -155,13 +155,13 @@ private int getNextToken(IScanner scanner) { private void computeTypeRootRanges(List foldingRanges, ITypeRoot unit, IScanner scanner) throws CoreException { if (unit.hasChildren()) { for (IJavaElement child : unit.getChildren()) { - if (child instanceof IImportContainer) { - ISourceRange importRange = ((IImportContainer) child).getSourceRange(); + if (child instanceof IImportContainer importContainer) { + ISourceRange importRange = importContainer.getSourceRange(); FoldingRange importFoldingRange = new FoldingRange(scanner.getLineNumber(importRange.getOffset()) - 1, scanner.getLineNumber(importRange.getOffset() + importRange.getLength()) - 1); importFoldingRange.setKind(FoldingRangeKind.Imports); foldingRanges.add(importFoldingRange); - } else if (child instanceof IType) { - computeTypeRanges(foldingRanges, (IType) child, scanner); + } else if (child instanceof IType type) { + computeTypeRanges(foldingRanges, type, scanner); } } } @@ -174,8 +174,8 @@ private void computeTypeRanges(List foldingRanges, IType unit, ISc for (IJavaElement c : children) { if (c instanceof IMethod || c instanceof IInitializer) { computeMethodRanges(foldingRanges, (IMember) c, scanner); - } else if (c instanceof IType) { - computeTypeRanges(foldingRanges, (IType) c, scanner); + } else if (c instanceof IType type) { + computeTypeRanges(foldingRanges, type, scanner); } } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FormatterHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FormatterHandler.java index 04a5cf0496..0dcf6ffcbe 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FormatterHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/FormatterHandler.java @@ -183,8 +183,7 @@ private static List convertEdits(TextEdit[] edits, I private static org.eclipse.lsp4j.TextEdit convertEdit(TextEdit edit, IDocument document) { org.eclipse.lsp4j.TextEdit textEdit = new org.eclipse.lsp4j.TextEdit(); - if (edit instanceof ReplaceEdit) { - ReplaceEdit replaceEdit = (ReplaceEdit) edit; + if (edit instanceof ReplaceEdit replaceEdit) { textEdit.setNewText(replaceEdit.getText()); int offset = edit.getOffset(); textEdit.setRange(new Range(createPosition(document, offset), createPosition(document, offset + edit.getLength()))); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GenerateConstructorsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GenerateConstructorsHandler.java index 6c13f6fb9d..e8992b749f 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GenerateConstructorsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GenerateConstructorsHandler.java @@ -101,7 +101,7 @@ public static CheckConstructorsResponse checkConstructorStatus(IType type, Range if (Modifier.isFinal(field.getModifiers())) { ASTNode declaringNode = astRoot.findDeclaringNode(field); // Do not add final fields which have been set in the - if (declaringNode instanceof VariableDeclarationFragment && ((VariableDeclarationFragment) declaringNode).getInitializer() != null) { + if (declaringNode instanceof VariableDeclarationFragment variableDecl && variableDecl.getInitializer() != null) { continue; } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GetRefactorEditHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GetRefactorEditHandler.java index a15fbef300..e920dad7fe 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GetRefactorEditHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/GetRefactorEditHandler.java @@ -102,8 +102,7 @@ public static RefactorWorkspaceEdit getEditsForRefactor(GetRefactorEditParams pa // String initializeIn = (params.commandArguments != null && !params.commandArguments.isEmpty()) ? JSONUtility.toModel(params.commandArguments.get(0), String.class) : null; proposal = (LinkedCorrectionProposal) RefactorProposalUtility.getIntroduceParameterRefactoringProposals(params.context, context, context.getCoveringNode(), false, locations); positionKey = null; - if (proposal instanceof RefactoringCorrectionProposal) { - RefactoringCorrectionProposal rcp = (RefactoringCorrectionProposal) proposal; + if (proposal instanceof RefactoringCorrectionProposal rcp) { IntroduceParameterRefactoring refactoring = (IntroduceParameterRefactoring) rcp.getRefactoring(); ParameterInfo parameterInfo = refactoring.getAddedParameterInfo(); if (parameterInfo != null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationCollector.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationCollector.java index 6fbf836717..979b27e0f2 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationCollector.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationCollector.java @@ -162,8 +162,8 @@ private List findMethodImplementations(IProgressMonitor monitor) throws CoreE ITypeBinding parentTypeBinding = null; if (node instanceof SimpleName) { ASTNode parent = node.getParent(); - if (parent instanceof MethodInvocation) { - Expression expression = ((MethodInvocation) parent).getExpression(); + if (parent instanceof MethodInvocation methodInvocation) { + Expression expression = methodInvocation.getExpression(); if (expression == null) { parentTypeBinding= Bindings.getBindingOfParentType(node); } else { @@ -190,8 +190,7 @@ private List findMethodImplementations(IProgressMonitor monitor) throws CoreE public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.getAccuracy() == SearchMatch.A_ACCURATE) { Object element = match.getElement(); - if (element instanceof IMethod) { - IMethod methodFound = (IMethod) element; + if (element instanceof IMethod methodFound) { if (!JdtFlags.isAbstract(methodFound)) { T result = mapper.convert(methodFound, match.getOffset(), match.getLength()); if (result != null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationsHandler.java index 5a6b7ad5e2..dcaf52ea4c 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ImplementationsHandler.java @@ -132,10 +132,10 @@ private boolean shouldIncludeDefinition(ITypeRoot typeRoot, IRegion region, IJav } private boolean isUnimplementedMember(IJavaElement element) throws JavaModelException { - if (element instanceof IMethod) { - return isUnimplementedMethod((IMethod) element); - } else if (element instanceof IType) { - return isUnimplementedType((IType) element); + if (element instanceof IMethod method) { + return isUnimplementedMethod(method); + } else if (element instanceof IType type) { + return isUnimplementedType(type); } return false; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InitHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InitHandler.java index fe99687136..b8e560293a 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InitHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InitHandler.java @@ -219,8 +219,8 @@ public void triggerInitialization(Collection roots) { // This job causes Java LS sometimes to hang at https://github.com/eclipse-jdt/eclipse.jdt.core/blob/master/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedSourceFolderManager.java#L508 Job.getJobManager().wakeUp(ResourcesPlugin.FAMILY_AUTO_BUILD); IWorkspace workspace = ResourcesPlugin.getWorkspace(); - if (workspace instanceof Workspace) { - ((Workspace) workspace).getBuildManager().waitForAutoBuildOff(); + if (workspace instanceof Workspace workspaceImpl) { + workspaceImpl.getBuildManager().waitForAutoBuildOff(); } Job job = new WorkspaceJob("Initialize Workspace") { @Override @@ -265,8 +265,8 @@ public IStatus runInWorkspace(IProgressMonitor monitor) { public boolean belongsTo(Object family) { Collection rootPathsSet = roots.stream().collect(Collectors.toSet()); boolean equalToRootPaths = false; - if (family instanceof Collection) { - equalToRootPaths = rootPathsSet.equals(((Collection) family).stream().collect(Collectors.toSet())); + if (family instanceof Collection familyCollection) { + equalToRootPaths = rootPathsSet.equals(familyCollection.stream().collect(Collectors.toSet())); } return JAVA_LS_INITIALIZATION_JOBS.equals(family) || equalToRootPaths; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InlayHintVisitor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InlayHintVisitor.java index 041711a4c5..7d4c0f2b66 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InlayHintVisitor.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/InlayHintVisitor.java @@ -284,8 +284,8 @@ private boolean isLiteral(Expression argument) { * to be casted will be compared. */ private boolean isSameName(Expression argument, String paramName) { - if (argument instanceof CastExpression) { - argument = ((CastExpression) argument).getExpression(); + if (argument instanceof CastExpression castExpression) { + argument = castExpression.getExpression(); } if (!(argument instanceof SimpleName)) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JDTLanguageServer.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JDTLanguageServer.java index 714a785c5d..4a9d522e18 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JDTLanguageServer.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JDTLanguageServer.java @@ -705,9 +705,9 @@ public CompletableFuture resolveCodeAction(CodeAction params) { if (data == null) { return CompletableFuture.completedFuture(params); } - if (data instanceof CodeActionData) { + if (data instanceof CodeActionData codeActionData) { // if the data is CodeActionData and no proposal in the data, return the original result back. - if (((CodeActionData) data).getProposal() == null) { + if (codeActionData.getProposal() == null) { return CompletableFuture.completedFuture(params); } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JdtSourceLookUpProvider.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JdtSourceLookUpProvider.java index c52d3727df..6e7db73a6e 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JdtSourceLookUpProvider.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JdtSourceLookUpProvider.java @@ -35,7 +35,7 @@ public class JdtSourceLookUpProvider { /** * Resolve the uri of the source file or class file by the class fully qualified name, the source path * and the interested projects. - * + * * @param fullyQualifiedName * the fully qualified name of the class. * @param sourcePath @@ -43,7 +43,7 @@ public class JdtSourceLookUpProvider { * @param projectNames * A list of the project names that needs to search in. If the given list is empty, * All the projects in the workspace will be searched. - * + * * @return the uri of the associated source file or class file. */ public String getSourceFileURI(String fullyQualifiedName, String sourcePath, List projectNames) { @@ -52,10 +52,10 @@ public String getSourceFileURI(String fullyQualifiedName, String sourcePath, Lis } Object sourceElement = findSourceElement(sourcePath, getSourceContainers(projectNames)); - if (sourceElement instanceof IResource) { - return JDTUtils.getFileURI((IResource) sourceElement); - } else if (sourceElement instanceof IClassFile) { - return JDTUtils.toUri((IClassFile) sourceElement); + if (sourceElement instanceof IResource resource) { + return JDTUtils.getFileURI(resource); + } else if (sourceElement instanceof IClassFile clazz) { + return JDTUtils.toUri(clazz); } return null; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JsonRpcHelpers.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JsonRpcHelpers.java index de0d8a090a..b9b9cabb5d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JsonRpcHelpers.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/JsonRpcHelpers.java @@ -175,10 +175,10 @@ public static IDocument toDocument(IBuffer buffer) { if (buffer == null) { return null; } - if (buffer instanceof IDocument) { - return (IDocument) buffer; - } else if (buffer instanceof org.eclipse.jdt.ls.core.internal.DocumentAdapter) { - IDocument document = ((org.eclipse.jdt.ls.core.internal.DocumentAdapter) buffer).getDocument(); + if (buffer instanceof IDocument doc) { + return doc; + } else if (buffer instanceof org.eclipse.jdt.ls.core.internal.DocumentAdapter adapter) { + IDocument document = adapter.getDocument(); if (document != null) { return document; } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MapFlattener.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MapFlattener.java index 1ddf1251e0..34af6a0148 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MapFlattener.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MapFlattener.java @@ -48,11 +48,7 @@ public static String getString(Map configuration, String key) { } public static String getString(Map configuration, String key, String def) { - Object val = getValue(configuration, key); - if (val instanceof String) { - return (String) val; - } - return def; + return getValue(configuration, key) instanceof String val ? val : def; } public static List getList(Map configuration, String key) { @@ -61,8 +57,7 @@ public static List getList(Map configuration, String key public static List getList(Map configuration, String key, List def) { Object val = getValue(configuration, key); - if (val instanceof String) { - String str = ((String) val); + if (val instanceof String str) { if (!str.trim().startsWith("[")) { if (str.contains(",")) { str = '[' + (String) val + ']'; @@ -100,11 +95,11 @@ public static boolean getBoolean(Map configuration, String key) public static boolean getBoolean(Map configuration, String key, boolean def) { Object val = getValue(configuration, key); - if (val instanceof Boolean) { - return ((Boolean) val).booleanValue(); + if (val instanceof Boolean b) { + return b.booleanValue(); } - if (val instanceof String) { - return Boolean.parseBoolean((String) val); + if (val instanceof String s) { + return Boolean.parseBoolean(s); } return def; } @@ -115,11 +110,11 @@ public static int getInt(Map configuration, String key) { public static int getInt(Map configuration, String key, int def) { Object val = getValue(configuration, key); - if (val instanceof Number) { - return ((Number) val).intValue(); - } else if (val instanceof String) { + if (val instanceof Number n) { + return n.intValue(); + } else if (val instanceof String s) { try { - return Integer.parseInt((String) val); + return Integer.parseInt(s); } catch (NumberFormatException nfe) { JavaLanguageServerPlugin.logError(key + " value (" + val + ") is not an int, falling back on " + def); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MoveHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MoveHandler.java index ed2e7e3d80..4ebe0b8020 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MoveHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/MoveHandler.java @@ -166,8 +166,8 @@ private static MoveDestinationsResponse getPackageDestinations(String[] document IJavaElement[] fragments = root.getChildren(); for (IJavaElement fragment : fragments) { - if (fragment instanceof IPackageFragment) { - PackageNode packageNode = PackageNode.createPackageNode((IPackageFragment) fragment); + if (fragment instanceof IPackageFragment pkg) { + PackageNode packageNode = PackageNode.createPackageNode(pkg); packageNode.setParentOfSelectedFile(selectedPackages.contains(fragment)); packageNodes.add(packageNode); } @@ -198,8 +198,8 @@ private static MethodDeclaration getSelectedMethodDeclaration(ICompilationUnit u node = node.getParent(); } - if (node != null && node instanceof MethodDeclaration) { - return (MethodDeclaration) node; + if (node instanceof MethodDeclaration methodDeclaration) { + return methodDeclaration; } return null; @@ -266,8 +266,8 @@ public static RefactorWorkspaceEdit move(MoveParams moveParams, IProgressMonitor try { if ("moveResource".equalsIgnoreCase(moveParams.moveKind)) { String targetUri = null; - if (moveParams.destination instanceof String) { - targetUri = (String) moveParams.destination; + if (moveParams.destination instanceof String dest) { + targetUri = dest; } else { String json = (moveParams.destination == null ? null : new Gson().toJson(moveParams.destination)); PackageNode packageNode = JSONUtility.toLsp4jModel(json, PackageNode.class); @@ -304,8 +304,8 @@ public static RefactorWorkspaceEdit move(MoveParams moveParams, IProgressMonitor } private static String resolveTargetTypeName(Object destinationObj) throws IllegalArgumentException { - if (destinationObj instanceof String) { - return (String) destinationObj; + if (destinationObj instanceof String dest) { + return dest; } String json = (destinationObj== null ? null : new Gson().toJson(destinationObj)); @@ -356,8 +356,8 @@ private static RefactorWorkspaceEdit moveCU(String[] sourceUris, String targetUr IJavaElement targetElement = null; for (IContainer container : targetContainers) { targetElement = JavaCore.create(container); - if (targetElement instanceof IPackageFragmentRoot) { - targetElement = ((IPackageFragmentRoot) targetElement).getPackageFragment(""); + if (targetElement instanceof IPackageFragmentRoot root) { + targetElement = root.getPackageFragment(""); } if (targetElement != null) { @@ -496,17 +496,17 @@ private static RefactorWorkspaceEdit moveStaticMember(CodeActionParams params, S BodyDeclaration bodyDeclaration = getSelectedMemberDeclaration(unit, params); List elements = new ArrayList<>(); - if (bodyDeclaration instanceof MethodDeclaration) { - elements.add(((MethodDeclaration) bodyDeclaration).resolveBinding().getJavaElement()); - } else if (bodyDeclaration instanceof FieldDeclaration) { - for (Object fragment : ((FieldDeclaration) bodyDeclaration).fragments()) { + if (bodyDeclaration instanceof MethodDeclaration methodDecl) { + elements.add(methodDecl.resolveBinding().getJavaElement()); + } else if (bodyDeclaration instanceof FieldDeclaration fieldDecl) { + for (Object fragment : fieldDecl.fragments()) { elements.add(((VariableDeclarationFragment) fragment).resolveBinding().getJavaElement()); } - } else if (bodyDeclaration instanceof AbstractTypeDeclaration) { - elements.add(((AbstractTypeDeclaration) bodyDeclaration).resolveBinding().getJavaElement()); + } else if (bodyDeclaration instanceof AbstractTypeDeclaration typeDecl) { + elements.add(typeDecl.resolveBinding().getJavaElement()); } - IMember[] members = elements.stream().filter(element -> element instanceof IMember).map(element -> (IMember) element).toArray(IMember[]::new); + IMember[] members = elements.stream().filter(IMember.class::isInstance).map(IMember.class::cast).toArray(IMember[]::new); return moveStaticMember(members, destinationTypeName, monitor); } @@ -515,7 +515,7 @@ private static RefactorWorkspaceEdit moveStaticMember(IMember[] members, String return new RefactorWorkspaceEdit("Failed to move static member because no members are selected or no destination is specified."); } - CodeGenerationSettings settings = members[0].getTypeRoot() instanceof ICompilationUnit ? PreferenceManager.getCodeGenerationSettings((ICompilationUnit) members[0].getTypeRoot()) + CodeGenerationSettings settings = members[0].getTypeRoot() instanceof ICompilationUnit unit ? PreferenceManager.getCodeGenerationSettings(unit) : PreferenceManager.getCodeGenerationSettings(members[0].getJavaProject().getProject()); MoveStaticMembersProcessor processor = new MoveStaticMembersProcessor(members, settings); Refactoring refactoring = new MoveRefactoring(processor); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToDefinitionHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToDefinitionHandler.java index e25fe2872b..43a7cfbbce 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToDefinitionHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToDefinitionHandler.java @@ -105,18 +105,18 @@ private Location computeBreakContinue(ITypeRoot typeRoot, int line, int column) ASTNode selectedNode = NodeFinder.perform(unit, offset, 0); ASTNode node = null; SimpleName label = null; - if (selectedNode instanceof BreakStatement) { + if (selectedNode instanceof BreakStatement breakStatement) { node = selectedNode; - label = ((BreakStatement) node).getLabel(); - } else if (selectedNode instanceof ContinueStatement) { + label = breakStatement.getLabel(); + } else if (selectedNode instanceof ContinueStatement continueStatement) { node = selectedNode; - label = ((ContinueStatement) node).getLabel(); - } else if (selectedNode instanceof SimpleName && selectedNode.getParent() instanceof BreakStatement) { + label = continueStatement.getLabel(); + } else if (selectedNode instanceof SimpleName && selectedNode.getParent() instanceof BreakStatement breakStatement) { node = selectedNode.getParent(); - label = ((BreakStatement) node).getLabel(); - } else if (selectedNode instanceof SimpleName && selectedNode.getParent() instanceof ContinueStatement) { + label = breakStatement.getLabel(); + } else if (selectedNode instanceof SimpleName && selectedNode.getParent() instanceof ContinueStatement continueStatement) { node = selectedNode.getParent(); - label = ((ContinueStatement) node).getLabel(); + label = continueStatement.getLabel(); } if (node != null) { ASTNode parent = node.getParent(); @@ -182,12 +182,12 @@ public static Location computeDefinitionNavigation(IJavaElement element, IJavaPr return fixLocation(element, JDTUtils.toLocation(element), javaProject); } - if (element instanceof IMember && ((IMember) element).getClassFile() != null) { + if (element instanceof IMember member && member.getClassFile() != null) { List locations = JDTUtils.searchDecompiledSources(element, cf, true, true, new NullProgressMonitor()); if (!locations.isEmpty()) { return fixLocation(element, locations.get(0), javaProject); } - return fixLocation(element, JDTUtils.toLocation(((IMember) element).getClassFile()), javaProject); + return fixLocation(element, JDTUtils.toLocation(member.getClassFile()), javaProject); } return null; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToTypeDefinitionHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToTypeDefinitionHandler.java index 26c771d48e..a0139560fe 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToTypeDefinitionHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/NavigateToTypeDefinitionHandler.java @@ -70,14 +70,14 @@ private Location computeTypeDefinitionNavigation(ITypeRoot unit, int line, int c } NodeFinder finder = new NodeFinder(ast, offset, 0); ASTNode coveringNode = finder.getCoveringNode(); - if (coveringNode instanceof SimpleName) { - IBinding resolvedBinding = ((SimpleName) coveringNode).resolveBinding(); + if (coveringNode instanceof SimpleName name) { + IBinding resolvedBinding = name.resolveBinding(); if (resolvedBinding != null) { ITypeBinding typeBinding = null; - if (resolvedBinding instanceof IVariableBinding) { - typeBinding = ((IVariableBinding) resolvedBinding).getType(); - } else if (resolvedBinding instanceof ITypeBinding) { - typeBinding = (ITypeBinding) resolvedBinding; + if (resolvedBinding instanceof IVariableBinding variableBinding) { + typeBinding = variableBinding.getType(); + } else if (resolvedBinding instanceof ITypeBinding resolvedTypeBinding) { + typeBinding = resolvedTypeBinding; } if (typeBinding != null && typeBinding.getJavaElement() != null) { IJavaElement element = typeBinding.getJavaElement(); @@ -97,12 +97,12 @@ private Location computeTypeDefinitionNavigation(ITypeRoot unit, int line, int c } return JDTUtils.toLocation(element); } - if (element instanceof IMember && ((IMember) element).getClassFile() != null) { + if (element instanceof IMember member && member.getClassFile() != null) { List locations = JDTUtils.searchDecompiledSources(element, cf, true, true, new NullProgressMonitor()); if (!locations.isEmpty()) { return locations.get(0); } - return JDTUtils.toLocation(((IMember) element).getClassFile()); + return JDTUtils.toLocation(member.getClassFile()); } } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/OrganizeImportsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/OrganizeImportsHandler.java index a553d4f1a8..465cd5257b 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/OrganizeImportsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/OrganizeImportsHandler.java @@ -157,11 +157,11 @@ public static TextEdit wrapStaticImports(TextEdit edit, CompilationUnit root, IC } } TextEdit firstStatic = staticEdit.getChildren()[0]; - if (firstStatic instanceof InsertEdit) { + if (firstStatic instanceof InsertEdit firstStaticInsert) { if (edit.getChildrenSize() > 0) { TextEdit firstEdit = edit.getChildren()[0]; - if (firstEdit instanceof InsertEdit) { - if (areEqual((InsertEdit) firstEdit, (InsertEdit) firstStatic)) { + if (firstEdit instanceof InsertEdit firstEditInsert) { + if (areEqual(firstEditInsert, firstStaticInsert)) { edit.removeChild(firstEdit); } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/PrepareRenameHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/PrepareRenameHandler.java index 1651e80be6..7d95496588 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/PrepareRenameHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/PrepareRenameHandler.java @@ -69,8 +69,7 @@ public Either prepareRename(TextDocumentPositionPara IJavaElement[] elements = JDTUtils.findElementsAtSelection(unit, params.getPosition().getLine(), params.getPosition().getCharacter(), this.preferenceManager, monitor); if (elements.length == 1) { IJavaElement element = elements[0]; - if (element instanceof IMethod) { - IMethod method = (IMethod) element; + if (element instanceof IMethod method) { if (JDTUtils.isGenerated(method)) { throw new ResponseErrorException(new ResponseError(ResponseErrorCode.InvalidRequest, "Renaming this element is not supported.", null)); } @@ -97,8 +96,8 @@ public Either prepareRename(TextDocumentPositionPara } private boolean isBinaryOrPackage(ASTNode node) { - if (node instanceof Name) { - IBinding resolvedBinding = ((Name) node).resolveBinding(); + if (node instanceof Name name) { + IBinding resolvedBinding = name.resolveBinding(); IJavaElement element = resolvedBinding != null ? resolvedBinding.getJavaElement() : null; try { if (element == null || element.getElementType() == IJavaElement.PACKAGE_FRAGMENT || !RefactoringAvailabilityTester.isRenameElementAvailable(element)) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ReferencesHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ReferencesHandler.java index 0a08a6dd14..6e39b78493 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ReferencesHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/ReferencesHandler.java @@ -83,8 +83,7 @@ public List findReferences(ReferenceParams param, IProgressMonitor mon if (monitor.isCanceled()) { return Collections.emptyList(); } - if (preferenceManager.getPreferences().isIncludeAccessors() && elementToSearch instanceof IField) { // IField - IField field = (IField) elementToSearch; + if (preferenceManager.getPreferences().isIncludeAccessors() && elementToSearch instanceof IField field) { // IField IMethod getter = GetterSetterUtil.getGetter(field); if (getter != null) { search(getter, locations, monitor, false); @@ -137,8 +136,8 @@ private String getBuilderName(IField field) { if (pair.getValueKind() == IMemberValuePair.K_STRING) { String memberName = pair.getMemberName(); Object value = pair.getValue(); - if ("builderClassName".equals(memberName) && value instanceof String && !((String) value).isEmpty()) { - return declaringType.getFullyQualifiedName() + "." + (String) value; + if ("builderClassName".equals(memberName) && value instanceof String stringValue && !stringValue.isEmpty()) { + return declaringType.getFullyQualifiedName() + "." + stringValue; } } } @@ -166,8 +165,7 @@ public void acceptSearchMatch(SearchMatch match) throws CoreException { return; } Object o = match.getElement(); - if (o instanceof IJavaElement) { - IJavaElement element = (IJavaElement) o; + if (o instanceof IJavaElement element) { ICompilationUnit compilationUnit = (ICompilationUnit) element.getAncestor(IJavaElement.COMPILATION_UNIT); if (compilationUnit != null) { Location location = JDTUtils.toLocation(compilationUnit, match.getOffset(), match.getLength()); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SelectionRangeHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SelectionRangeHandler.java index 3c03dc741a..c246e7a962 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SelectionRangeHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SelectionRangeHandler.java @@ -50,9 +50,7 @@ public List selectionRange(SelectionRangeParams params, IProgres // extra logic to check within the line comments and block comments, which are not parts of the AST @SuppressWarnings("unchecked") List comments = new ArrayList(ast.getCommentList()); - comments.removeIf(comment -> { - return (comment instanceof Javadoc); // Javadoc nodes are already in the AST - }); + comments.removeIf(Javadoc.class::isInstance); // Javadoc nodes are already in the AST List $ = new ArrayList<>(); for (Position pos : params.getPositions()) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpContext.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpContext.java index a34f470bf0..7447e1549e 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpContext.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpContext.java @@ -195,13 +195,13 @@ private boolean isMethodLikeNode(ASTNode node) { *
 	 *     System.out.println(new String(""|))
 	 * 
- * + * * In the above case, the inner class instance creation node will return. * *
 	 *     System.out.println(new |String(""))
 	 * 
- * + * * In the above case, the outer method invocation node will return. * * @param node method-like AST node @@ -262,20 +262,20 @@ private int[] findArgumentRange(ASTNode node, String source) { return new int[]{ firstArg.getStartPosition(), lastArg.getStartPosition() + lastArg.getLength() }; } else { ASTNode simpleNameNode = null; - if (node instanceof MethodInvocation) { - simpleNameNode = ((MethodInvocation) node).getName(); - } else if (node instanceof ClassInstanceCreation) { - simpleNameNode = ((ClassInstanceCreation) node).getType(); - } else if (node instanceof SuperMethodInvocation) { - simpleNameNode = ((SuperMethodInvocation) node).getName(); - } else if (node instanceof MethodRef) { - simpleNameNode = ((MethodRef) node).getName(); + if (node instanceof MethodInvocation methodInvocation) { + simpleNameNode = methodInvocation.getName(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + simpleNameNode = classInstanceCreation.getType(); + } else if (node instanceof SuperMethodInvocation superInvocation) { + simpleNameNode = superInvocation.getName(); + } else if (node instanceof MethodRef methodRef) { + simpleNameNode = methodRef.getName(); } else if (node instanceof ConstructorInvocation) { simpleNameNode = node; } else if (node instanceof SuperConstructorInvocation) { simpleNameNode = node; } - + if (simpleNameNode == null) { return null; } @@ -299,24 +299,24 @@ private void resolveMethodName(ASTNode node) { return; } - if (node instanceof MethodInvocation) { - this.methodName = ((MethodInvocation) node).getName().getIdentifier(); - } else if (node instanceof ClassInstanceCreation) { - ITypeBinding binding = ((ClassInstanceCreation) node).getType().resolveBinding(); + if (node instanceof MethodInvocation methodInvocation) { + this.methodName = methodInvocation.getName().getIdentifier(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + ITypeBinding binding = classInstanceCreation.getType().resolveBinding(); if (binding != null) { this.methodName = binding.getErasure().getName(); } - } else if (node instanceof SuperMethodInvocation) { - this.methodName = ((SuperMethodInvocation) node).getName().getIdentifier(); - } else if (node instanceof MethodRef) { - this.methodName = ((MethodRef) node).getName().getIdentifier(); - } else if (node instanceof ConstructorInvocation) { - IMethodBinding binding = ((ConstructorInvocation) node).resolveConstructorBinding(); + } else if (node instanceof SuperMethodInvocation superInvocation) { + this.methodName = superInvocation.getName().getIdentifier(); + } else if (node instanceof MethodRef methodRef) { + this.methodName = methodRef.getName().getIdentifier(); + } else if (node instanceof ConstructorInvocation constructorInvocation) { + IMethodBinding binding = constructorInvocation.resolveConstructorBinding(); if (binding != null) { this.methodName = binding.getDeclaringClass().getName(); } - } else if (node instanceof SuperConstructorInvocation) { - IMethodBinding binding = ((SuperConstructorInvocation) node).resolveConstructorBinding(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + IMethodBinding binding = superConstructorInvocation.resolveConstructorBinding(); if (binding != null) { this.methodName = binding.getDeclaringClass().getName(); } @@ -339,16 +339,16 @@ private void resolveDeclaringTypeName(ASTNode node) { } IMethodBinding methodBinding = null; - if (node instanceof MethodInvocation) { - methodBinding = ((MethodInvocation) node).resolveMethodBinding(); - } else if (node instanceof ClassInstanceCreation) { - methodBinding = ((ClassInstanceCreation) node).resolveConstructorBinding(); - } else if (node instanceof SuperMethodInvocation) { - methodBinding = ((SuperMethodInvocation) node).resolveMethodBinding(); - } else if (node instanceof SuperConstructorInvocation) { - methodBinding = ((SuperConstructorInvocation) node).resolveConstructorBinding(); - } else if (node instanceof ConstructorInvocation) { - methodBinding = ((ConstructorInvocation) node).resolveConstructorBinding(); + if (node instanceof MethodInvocation methodInvocation) { + methodBinding = methodInvocation.resolveMethodBinding(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + methodBinding = classInstanceCreation.resolveConstructorBinding(); + } else if (node instanceof SuperMethodInvocation superMethodInvocation) { + methodBinding = superMethodInvocation.resolveMethodBinding(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + methodBinding = superConstructorInvocation.resolveConstructorBinding(); + } else if (node instanceof ConstructorInvocation constructorInvocation) { + methodBinding = constructorInvocation.resolveConstructorBinding(); } if (methodBinding != null) { @@ -376,18 +376,18 @@ private List resolveArguments(ASTNode node) { return null; } - if (node instanceof MethodInvocation) { - return ((MethodInvocation) node).arguments(); - } else if (node instanceof ClassInstanceCreation) { - return ((ClassInstanceCreation) node).arguments(); - } else if (node instanceof SuperMethodInvocation) { - return ((SuperMethodInvocation) node).arguments(); - } else if (node instanceof MethodRef) { - return ((MethodRef) node).parameters(); - } else if (node instanceof SuperConstructorInvocation) { - return ((SuperConstructorInvocation) node).arguments(); - } else if (node instanceof ConstructorInvocation) { - return ((ConstructorInvocation) node).arguments(); + if (node instanceof MethodInvocation methodInvocation) { + return methodInvocation.arguments(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + return classInstanceCreation.arguments(); + } else if (node instanceof SuperMethodInvocation superMethodInvocation) { + return superMethodInvocation.arguments(); + } else if (node instanceof MethodRef methodRef) { + return methodRef.parameters(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + return superConstructorInvocation.arguments(); + } else if (node instanceof ConstructorInvocation constructorInvocation) { + return constructorInvocation.arguments(); } return null; @@ -403,26 +403,25 @@ private void resolveParameterTypes(ASTNode node) { } IBinding binding = null; - if (node instanceof MethodInvocation) { - binding = ((MethodInvocation) node).resolveMethodBinding(); - } else if (node instanceof ClassInstanceCreation) { - binding = ((ClassInstanceCreation) node).resolveConstructorBinding(); - } else if (node instanceof SuperMethodInvocation) { - binding = ((SuperMethodInvocation) node).resolveMethodBinding(); - } else if (node instanceof MethodRef) { - binding = ((MethodRef) node).resolveBinding(); - } else if (node instanceof SuperConstructorInvocation) { - binding = ((SuperConstructorInvocation) node).resolveConstructorBinding(); - } else if (node instanceof ConstructorInvocation) { - binding = ((ConstructorInvocation) node).resolveConstructorBinding(); + if (node instanceof MethodInvocation methodInvocation) { + binding = methodInvocation.resolveMethodBinding(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + binding = classInstanceCreation.resolveConstructorBinding(); + } else if (node instanceof SuperMethodInvocation superMethodInvocation) { + binding = superMethodInvocation.resolveMethodBinding(); + } else if (node instanceof MethodRef methodRef) { + binding = methodRef.resolveBinding(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + binding = superConstructorInvocation.resolveConstructorBinding(); + } else if (node instanceof ConstructorInvocation constructorInvocation) { + binding = constructorInvocation.resolveConstructorBinding(); } if (binding == null) { return; } - if (binding instanceof IMethodBinding) { - IMethodBinding methodBinding = ((IMethodBinding) binding); + if (binding instanceof IMethodBinding methodBinding) { if (methodBinding.isDefaultConstructor()) { // default constructor won't have IJavaElement this.parameterTypes = new String[0]; @@ -490,12 +489,12 @@ private void guessCompletionOffset(ASTNode node, ICompilationUnit unit) throws J */ private int getOptionalExpressionLength(ASTNode node) { Expression optionalExpression = null; - if (node instanceof MethodInvocation) { - optionalExpression = ((MethodInvocation) node).getExpression(); - } else if (node instanceof ClassInstanceCreation) { - optionalExpression = ((ClassInstanceCreation) node).getExpression(); - } else if (node instanceof SuperConstructorInvocation) { - optionalExpression = ((SuperConstructorInvocation) node).getExpression(); + if (node instanceof MethodInvocation methodInvocation) { + optionalExpression = methodInvocation.getExpression(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + optionalExpression = classInstanceCreation.getExpression(); + } else if (node instanceof SuperConstructorInvocation superConstructorInvocation) { + optionalExpression = superConstructorInvocation.getExpression(); } if (optionalExpression == null) { return 0; diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpHandler.java index 802a4f1faa..280258b2b0 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/SignatureHelpHandler.java @@ -97,10 +97,10 @@ public SignatureHelp signatureHelp(SignatureHelpParams position, IProgressMonito int pos = contextInfomation[0] + 1; if (method != null) { int start; - if (node instanceof MethodInvocation) { - start = ((MethodInvocation) node).getName().getStartPosition(); - } else if (node instanceof ClassInstanceCreation) { - start = ((ClassInstanceCreation) node).getType().getStartPosition(); + if (node instanceof MethodInvocation methodInvocation) { + start = methodInvocation.getName().getStartPosition(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + start = classInstanceCreation.getType().getStartPosition(); } else { start = node.getStartPosition(); } @@ -266,19 +266,18 @@ private static boolean isSameParameters(IMethod method1, IMethod method2, Comple private IMethod getMethod(ASTNode node) throws JavaModelException { IBinding binding; - if (node instanceof MethodInvocation) { - binding = ((MethodInvocation) node).resolveMethodBinding(); - } else if (node instanceof MethodRef) { - binding = ((MethodRef) node).resolveBinding(); - } else if (node instanceof ClassInstanceCreation) { - binding = ((ClassInstanceCreation) node).resolveConstructorBinding(); + if (node instanceof MethodInvocation methodInvocation) { + binding = methodInvocation.resolveMethodBinding(); + } else if (node instanceof MethodRef methodRef) { + binding = methodRef.resolveBinding(); + } else if (node instanceof ClassInstanceCreation classInstanceCreation) { + binding = classInstanceCreation.resolveConstructorBinding(); } else { binding = null; } if (binding != null) { IJavaElement javaElement = binding.getJavaElement(); - if (javaElement instanceof IMethod) { - IMethod method = (IMethod) javaElement; + if (javaElement instanceof IMethod method) { return method; } } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceDiagnosticsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceDiagnosticsHandler.java index 092bf86afc..8f8ffb4308 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceDiagnosticsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceDiagnosticsHandler.java @@ -292,9 +292,8 @@ private void publishDiagnostics(List markers) { Map> map = markers.stream().collect(Collectors.groupingBy(IMarker::getResource)); for (Map.Entry> entry : map.entrySet()) { IResource resource = entry.getKey(); - if (resource instanceof IProject) { + if (resource instanceof IProject project) { try { - IProject project = (IProject) resource; publishMarkers(project, entry.getValue().toArray(new IMarker[0])); } catch (CoreException e) { JavaLanguageServerPlugin.logException(e.getMessage(), e); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceEventsHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceEventsHandler.java index d3f41f1fac..5b047a080d 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceEventsHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceEventsHandler.java @@ -121,8 +121,7 @@ private ICompilationUnit createCompilationUnit(ICompilationUnit unit) { unit.getResource().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor()); if (unit.getResource().exists()) { IJavaElement parent = unit.getParent(); - if (parent instanceof PackageFragment) { - PackageFragment pkg = (PackageFragment) parent; + if (parent instanceof PackageFragment pkg) { if (JavaModelManager.determineIfOnClasspath(unit.getResource(), unit.getJavaProject()) != null) { OpenableElementInfo elementInfo = (OpenableElementInfo) pkg.getElementInfo(); elementInfo.addChild(unit); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceExecuteCommandHandler.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceExecuteCommandHandler.java index a99b5c904a..cd29e26d85 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceExecuteCommandHandler.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/handlers/WorkspaceExecuteCommandHandler.java @@ -112,8 +112,8 @@ public synchronized IDelegateCommandHandler getDelegateCommandHandler() { if (fDelegateCommandHandlerInstance == null) { try { Object extension = fConfigurationElement.createExecutableExtension(CLASS); - if (extension instanceof IDelegateCommandHandler) { - fDelegateCommandHandlerInstance = (IDelegateCommandHandler) extension; + if (extension instanceof IDelegateCommandHandler handler) { + fDelegateCommandHandlerInstance = handler; } else { String message = "Invalid extension to " + EXTENSION_POINT_ID + ". Must implements org.eclipse.jdt.ls.core.internal.IDelegateCommandHandler"; JavaLanguageServerPlugin.logError(message); @@ -235,8 +235,8 @@ public void run() throws Exception { public void handleException(Throwable ex) { IStatus status = new Status(IStatus.ERROR, IConstants.PLUGIN_ID, IStatus.OK, "Error in calling delegate command handler", ex); JavaLanguageServerPlugin.log(status); - if (ex instanceof ResponseErrorException) { - throw (ResponseErrorException) ex; + if (ex instanceof ResponseErrorException responseErrorEx) { + throw responseErrorEx; } throw new ResponseErrorException(new ResponseError(ResponseErrorCode.UnknownErrorCode, ex.getMessage(), ex)); } diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabelComposer.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabelComposer.java index a092bc4ccf..865c14834b 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabelComposer.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabelComposer.java @@ -462,9 +462,8 @@ public void appendAnnotationLabel(IAnnotation annotation, long flags) throws Jav public void appendAnnotationValue(IAnnotation annotation, Object value, int valueKind, long flags) throws JavaModelException { // Note: To be bug-compatible with Javadoc from Java 5/6/7, we currently don't escape HTML tags in String-valued annotations. - if (value instanceof Object[]) { + if (value instanceof Object[] values) { fBuilder.append('{'); - Object[] values= (Object[]) value; for (int j= 0; j < values.length; j++) { if (j > 0) { fBuilder.append(JavaElementLabels.COMMA_STRING); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabels.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabels.java index 93dbb1ff80..bc2451eb91 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabels.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/hover/JavaElementLabels.java @@ -345,8 +345,8 @@ private JavaElementLabels() { * @return the label or the empty string if the object type is not supported */ public static String getTextLabel(Object obj, long flags) { - if (obj instanceof IJavaElement) { - return getElementLabel((IJavaElement) obj, flags); + if (obj instanceof IJavaElement element) { + return getElementLabel(element, flags); } return ""; //$NON-NLS-1$ diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/HtmlToPlainText.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/HtmlToPlainText.java index c3b4ddf53c..dc7a376d86 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/HtmlToPlainText.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/HtmlToPlainText.java @@ -59,8 +59,8 @@ private class FormattingVisitor implements NodeVisitor { @Override public void head(Node node, int depth) { String name = node.nodeName(); - if (node instanceof TextNode) { - append(((TextNode) node).text()); // TextNodes carry all user-readable text in the DOM. + if (node instanceof TextNode textNode) { + append(textNode.text()); // TextNodes carry all user-readable text in the DOM. } else if (name.equals("ul")) { listNesting++; } else if (name.equals("li")) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocLocations.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocLocations.java index a6b7026c9c..73f8e45a5b 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocLocations.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocLocations.java @@ -173,9 +173,9 @@ public static URL getJavadocLocation(IJavaElement element, boolean includeMember appendTypePath(mainType, pathBuffer); break; case IJavaElement.CLASS_FILE: - if (element instanceof IModularClassFile) { + if (element instanceof IModularClassFile modularClassFile) { try { - appendModuleSummaryPath(((IModularClassFile) element).getModule(), pathBuffer); + appendModuleSummaryPath(modularClassFile.getModule(), pathBuffer); } catch (JavaModelException e) { return null; } @@ -208,10 +208,10 @@ public static URL getJavadocLocation(IJavaElement element, boolean includeMember if (decl.isOnDemand()) { IJavaElement cont = JavaModelUtil.findTypeContainer(element.getJavaProject(), Signature.getQualifier(decl.getElementName())); - if (cont instanceof IType) { - appendTypePath((IType) cont, pathBuffer); - } else if (cont instanceof IPackageFragment) { - appendPackageSummaryPath((IPackageFragment) cont, pathBuffer); + if (cont instanceof IType type) { + appendTypePath(type, pathBuffer); + } else if (cont instanceof IPackageFragment pkg) { + appendPackageSummaryPath(pkg, pathBuffer); } } else { IType imp = element.getJavaProject().findType(decl.getElementName()); diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocSnippetStringEvaluator.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocSnippetStringEvaluator.java index 5e49c17dcc..5dbdd00569 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocSnippetStringEvaluator.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaDocSnippetStringEvaluator.java @@ -137,18 +137,15 @@ public void AddTagElementString(TagElement snippetTag, StringBuffer buffer) { List fragments = snippetTag.fragments(); for( Object fragment : fragments) { String str= ""; //$NON-NLS-1$ - if (fragment instanceof TextElement) { - TextElement textElement= (TextElement) fragment; + if (fragment instanceof TextElement textElement) { List tagElements= getTagElementsForTextElement(snippetTag, textElement); str = getModifiedString(textElement, tagElements); - } else if (fragment instanceof JavaDocRegion) { - JavaDocRegion region = (JavaDocRegion) fragment; + } else if (fragment instanceof JavaDocRegion region) { if (region.isDummyRegion()) { List tagElements= getTagElementsForDummyJavaDocRegion(snippetTag, region); str = getModifiedString(region, tagElements); } - } else if (fragment instanceof TagElement) { - TagElement tagElement= (TagElement) fragment; + } else if (fragment instanceof TagElement tagElement) { List tagElements= getTagElementsForTagElement(snippetTag, tagElement); str = getModifiedString(tagElement, tagElements); if (TagElement.TAG_LINK.equals(tagElement.getTagName())) { @@ -296,18 +293,17 @@ private List getTagElementsForTextElement(TagElement snippetTag, Tex } for (JavaDocRegion region : regions) { for (Object tagObj : region.tags()) { - if (tagObj instanceof TagElement) { - TagElement tagElem= (TagElement) tagObj; + if (tagObj instanceof TagElement tagElem) { Object prop= tagElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop instanceof Integer) { - int val = ((Integer)prop).intValue(); + if (prop instanceof Integer intProp) { + int val = intProp.intValue(); ListIterator listIterator= tagElements.listIterator(); TagElement addBefore= null; while (listIterator.hasNext()) { TagElement tElem= listIterator.next(); Object prop2= tElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop2 instanceof Integer) { - int val2 = ((Integer)prop2).intValue(); + if (prop2 instanceof Integer intProp2) { + int val2 = intProp2.intValue(); if (val2 > val) { addBefore= tElem; break; @@ -340,18 +336,17 @@ private List getTagElementsForDummyJavaDocRegion(TagElement snippetT regions.add(javaDocRegion); for (JavaDocRegion region : regions) { for (Object tagObj : region.tags()) { - if (tagObj instanceof TagElement) { - TagElement tagElem= (TagElement) tagObj; + if (tagObj instanceof TagElement tagElem) { Object prop= tagElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop instanceof Integer) { - int val = ((Integer)prop).intValue(); + if (prop instanceof Integer intProp) { + int val = intProp.intValue(); ListIterator listIterator= tagElements.listIterator(); TagElement addBefore= null; while (listIterator.hasNext()) { TagElement tElem= listIterator.next(); Object prop2= tElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop2 instanceof Integer) { - int val2 = ((Integer)prop2).intValue(); + if (prop2 instanceof Integer intProp2) { + int val2 = intProp2.intValue(); if (val2 > val) { addBefore= tElem; break; @@ -384,18 +379,17 @@ private List getTagElementsForTagElement(TagElement snippetTag, TagE } for (JavaDocRegion region : regions) { for (Object tagObj : region.tags()) { - if (tagObj instanceof TagElement) { - TagElement tagElem= (TagElement) tagObj; + if (tagObj instanceof TagElement tagElem) { Object prop= tagElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop instanceof Integer) { - int val = ((Integer)prop).intValue(); + if (prop instanceof Integer intProp) { + int val = intProp.intValue(); ListIterator listIterator= tagElements.listIterator(); TagElement addBefore= null; while (listIterator.hasNext()) { TagElement tElem= listIterator.next(); Object prop2= tElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop2 instanceof Integer) { - int val2 = ((Integer)prop).intValue(); + if (prop2 instanceof Integer intProp2) { + int val2 = intProp2.intValue(); if (val2 > val) { addBefore= tElem; break; @@ -412,15 +406,15 @@ private List getTagElementsForTagElement(TagElement snippetTag, TagE } } Object prop3= tag.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop3 instanceof Integer) { - int val = ((Integer)prop3).intValue(); + if (prop3 instanceof Integer intProp3) { + int val = intProp3.intValue(); ListIterator listIterator= tagElements.listIterator(); TagElement addBefore= null; while (listIterator.hasNext()) { TagElement tElem= listIterator.next(); Object prop2= tElem.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_INLINE_TAG_COUNT); - if (prop2 instanceof Integer) { - int val2 = ((Integer)prop2).intValue(); + if (prop2 instanceof Integer intProp2) { + int val2 = intProp2.intValue(); if (val2 > val) { addBefore= tElem; break; @@ -561,18 +555,15 @@ private String getLinkRef(ASTNode node) { String[] refMethodParamTypes= null; String[] refMethodParamNames= null; int startPosition = -1; - if (node instanceof Name) { - Name name = (Name) node; + if (node instanceof Name name) { refTypeName= name.getFullyQualifiedName(); startPosition = name.getStartPosition(); - } else if (node instanceof MemberRef) { - MemberRef memberRef= (MemberRef) node; + } else if (node instanceof MemberRef memberRef) { Name qualifier= memberRef.getQualifier(); refTypeName= qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName= memberRef.getName().getIdentifier(); startPosition = memberRef.getStartPosition(); - } else if (node instanceof MethodRef) { - MethodRef methodRef= (MethodRef) node; + } else if (node instanceof MethodRef methodRef) { Name qualifier= methodRef.getQualifier(); refTypeName= qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$ refMemberName= methodRef.getName().getIdentifier(); @@ -611,8 +602,7 @@ private String getLinkHtmlTag(List tagProperties) { String defaultTag = ""; //$NON-NLS-1$ if (tagProperties != null) { for (ASTNode node : tagProperties) { - if (node instanceof TagProperty) { - TagProperty tagProp = (TagProperty) node; + if (node instanceof TagProperty tagProp) { if ("type".equals(tagProp.getName())) { //$NON-NLS-1$ String tagValue = tagProp.getStringValue(); switch (tagValue) { @@ -634,8 +624,7 @@ private String getPropertyValue(String property, List tagProp String defaultTag= null; if (tagProperties != null && property!= null) { for (ASTNode node : tagProperties) { - if (node instanceof TagProperty) { - TagProperty tagProp = (TagProperty) node; + if (node instanceof TagProperty tagProp) { if (property.equals(tagProp.getName())) { defaultTag= tagProp.getStringValue(); break; @@ -649,8 +638,7 @@ private ASTNode getPropertyNodeValue(String property, List ta ASTNode defaultTag= null; if (tagProperties != null && property!= null) { for (ASTNode node : tagProperties) { - if (node instanceof TagProperty) { - TagProperty tagProp = (TagProperty) node; + if (node instanceof TagProperty tagProp) { if (property.equals(tagProp.getName())) { defaultTag= tagProp.getNodeValue(); break; @@ -665,8 +653,7 @@ private String getHighlightHtmlTag(List tagProperties) { String defaultTag = "**"; //$NON-NLS-1$ if (tagProperties != null) { for (ASTNode node : tagProperties) { - if (node instanceof TagProperty) { - TagProperty tagProp = (TagProperty) node; + if (node instanceof TagProperty tagProp) { if ("type".equals(tagProp.getName())) { //$NON-NLS-1$ String tagValue = tagProp.getStringValue(); switch (tagValue) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaElementLinks.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaElementLinks.java index 1af0035109..91658697b7 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaElementLinks.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavaElementLinks.java @@ -268,18 +268,17 @@ public static IJavaElement parseURI(URI uri) { element = element.getParent(); } - if (element instanceof ILocalVariable) { - element = ((ILocalVariable) element).getDeclaringMember(); - } else if (element instanceof ITypeParameter) { - element = ((ITypeParameter) element).getDeclaringMember(); + if (element instanceof ILocalVariable localVariable) { + element = localVariable.getDeclaringMember(); + } else if (element instanceof ITypeParameter typeParameter) { + element = typeParameter.getDeclaringMember(); } - if (element instanceof IMember && !(element instanceof IType)) { - element = ((IMember) element).getDeclaringType(); + if (element instanceof IMember member && !(element instanceof IType)) { + element = member.getDeclaringType(); } - if (element instanceof IPackageFragment) { + if (element instanceof IPackageFragment root) { try { - IPackageFragment root = (IPackageFragment) element; element = resolvePackageInfoType(root, refTypeName); if (element == null) { // find it as package @@ -291,9 +290,8 @@ public static IJavaElement parseURI(URI uri) { } } - if (element instanceof IType) { + if (element instanceof IType type) { try { - IType type = (IType) element; if (refTypeName.length() > 0) { type = resolveType(type, refTypeName); if (type == null) { diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavadocContentAccess2.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavadocContentAccess2.java index 6f623940ca..9fdb010c30 100644 --- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavadocContentAccess2.java +++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javadoc/JavadocContentAccess2.java @@ -586,11 +586,11 @@ private JavadocContentAccess2(IJavaElement element, Javadoc javadoc, String sour * is thrown when the element's Javadoc cannot be accessed */ public static String getHTMLContent(IJavaElement element, boolean useAttachedJavadoc) throws CoreException { - if (element instanceof IPackageFragment) { - return getHTMLContent((IPackageFragment) element); + if (element instanceof IPackageFragment packageFragment) { + return getHTMLContent(packageFragment); } - if (element instanceof IPackageDeclaration) { - return getHTMLContent((IPackageDeclaration) element); + if (element instanceof IPackageDeclaration packageDecl) { + return getHTMLContent(packageDecl); } if (!(element instanceof IMember || element instanceof ITypeParameter || (element instanceof ILocalVariable && (((ILocalVariable) element).isParameter())))) { return null; @@ -607,12 +607,12 @@ public static String getHTMLContent(IJavaElement element, boolean useAttachedJav } } IMember member = null; - if (element instanceof ILocalVariable) { - member = ((ILocalVariable) element).getDeclaringMember(); - } else if (element instanceof ITypeParameter) { - member = ((ITypeParameter) element).getDeclaringMember(); - } else if (element instanceof IMember) { - member = (IMember) element; + if (element instanceof ILocalVariable localVariable) { + member = localVariable.getDeclaringMember(); + } else if (element instanceof ITypeParameter typeParam) { + member = typeParam.getDeclaringMember(); + } else if (element instanceof IMember memberElement) { + member = memberElement; } if (canInheritJavadoc(member)) { IMethod method = (IMethod) member; @@ -714,12 +714,12 @@ private static CharSequence createSimpleMemberLink(IMember member) { private static String getHTMLContentFromSource(IJavaElement element) throws JavaModelException { IMember member; - if (element instanceof ILocalVariable) { - member = ((ILocalVariable) element).getDeclaringMember(); - } else if (element instanceof ITypeParameter) { - member = ((ITypeParameter) element).getDeclaringMember(); - } else if (element instanceof IMember) { - member = (IMember) element; + if (element instanceof ILocalVariable localVariable) { + member = localVariable.getDeclaringMember(); + } else if (element instanceof ITypeParameter typeParam) { + member = typeParam.getDeclaringMember(); + } else if (element instanceof IMember memberElement) { + member = memberElement; } else { return null; } @@ -864,12 +864,12 @@ private static String javadoc2HTML(IMember member, IJavaElement element, String } private static boolean canInheritJavadoc(IMember member) { - if (member instanceof IMethod && member.getJavaProject().exists()) { + if (member instanceof IMethod method && member.getJavaProject().exists()) { /* * Exists test catches ExternalJavaProject, in which case no hierarchy can be built. */ try { - return !((IMethod) member).isConstructor(); + return !method.isConstructor(); } catch (JavaModelException e) { } @@ -966,20 +966,20 @@ private void parameterToHTML() { int size = fragments.size(); if (size > 0) { Object first = fragments.get(0); - if (first instanceof SimpleName) { - String name = ((SimpleName) first).getIdentifier(); + if (first instanceof SimpleName simpleName) { + String name = simpleName.getIdentifier(); if (elementName.equals(name)) { handleContentElements(fragments.subList(1, size)); return; } - } else if (size > 2 && fElement instanceof ITypeParameter && first instanceof TextElement) { - String firstText = ((TextElement) first).getText(); + } else if (size > 2 && fElement instanceof ITypeParameter && first instanceof TextElement textElement) { + String firstText = textElement.getText(); if ("<".equals(firstText)) { //$NON-NLS-1$ Object second = fragments.get(1); Object third = fragments.get(2); - if (second instanceof SimpleName && third instanceof TextElement) { - String name = ((SimpleName) second).getIdentifier(); - String thirdText = ((TextElement) third).getText(); + if (second instanceof SimpleName secondName && third instanceof TextElement thirdTextElement) { + String name = secondName.getIdentifier(); + String thirdText = thirdTextElement.getText(); if (elementName.equals(name) && ">".equals(thirdText)) { //$NON-NLS-1$ handleContentElements(fragments.subList(3, size)); return; @@ -1038,21 +1038,21 @@ private void elementToHTML() { int size = fragments.size(); if (size > 0) { Object first = fragments.get(0); - if (first instanceof SimpleName) { - String name = ((SimpleName) first).getIdentifier(); + if (first instanceof SimpleName simpleName) { + String name = simpleName.getIdentifier(); int paramIndex = parameterNames.indexOf(name); if (paramIndex != -1) { parameterNames.set(paramIndex, null); } parameters.add(tag); - } else if (size > 2 && first instanceof TextElement) { - String firstText = ((TextElement) first).getText(); + } else if (size > 2 && first instanceof TextElement firstTextElement) { + String firstText = firstTextElement.getText(); if ("<".equals(firstText)) { //$NON-NLS-1$ Object second = fragments.get(1); Object third = fragments.get(2); - if (second instanceof SimpleName && third instanceof TextElement) { - String name = ((SimpleName) second).getIdentifier(); - String thirdText = ((TextElement) third).getText(); + if (second instanceof SimpleName secondSimpleName && third instanceof TextElement thirdTextElement) { + String name = secondSimpleName.getIdentifier(); + String thirdText = thirdTextElement.getText(); if (">".equals(thirdText)) { //$NON-NLS-1$ int paramIndex = typeParameterNames.indexOf(name); if (paramIndex != -1) { @@ -1075,8 +1075,8 @@ private void elementToHTML() { List fragments = tag.fragments(); if (fragments.size() > 0) { Object first = fragments.get(0); - if (first instanceof Name) { - String name = ASTNodes.getSimpleNameIdentifier((Name) first); + if (first instanceof Name firstName) { + String name = ASTNodes.getSimpleNameIdentifier(firstName); int exceptionIndex = exceptionNames.indexOf(name); if (exceptionIndex != -1) { exceptionNames.set(exceptionIndex, null); @@ -1341,11 +1341,11 @@ CharSequence getInheritedTypeParamDescription(int typeParamIndex) { Object first = fragments.get(0); Object second = fragments.get(1); Object third = fragments.get(2); - if (first instanceof TextElement && second instanceof SimpleName && third instanceof TextElement) { - String firstText = ((TextElement) first).getText(); - String thirdText = ((TextElement) third).getText(); + if (first instanceof TextElement firstTextElement && second instanceof SimpleName secondSimpleName && third instanceof TextElement thirdTextElement) { + String firstText = firstTextElement.getText(); + String thirdText = thirdTextElement.getText(); if ("<".equals(firstText) && ">".equals(thirdText)) { //$NON-NLS-1$ //$NON-NLS-2$ - String name = ((SimpleName) second).getIdentifier(); + String name = secondSimpleName.getIdentifier(); if (name.equals(typeParamName)) { handleContentElements(fragments.subList(3, fragments.size())); break; @@ -1388,8 +1388,8 @@ CharSequence getInheritedParamDescription(int paramIndex) throws JavaModelExcept List fragments = tag.fragments(); if (fragments.size() > 0) { Object first = fragments.get(0); - if (first instanceof SimpleName) { - String name = ((SimpleName) first).getIdentifier(); + if (first instanceof SimpleName simpleName) { + String name = simpleName.getIdentifier(); if (name.equals(paramName)) { handleContentElements(fragments.subList(1, fragments.size())); break; @@ -1429,8 +1429,8 @@ CharSequence getExceptionDescription(String simpleName) { List fragments = tag.fragments(); if (fragments.size() > 0) { Object first = fragments.get(0); - if (first instanceof Name) { - String name = ASTNodes.getSimpleNameIdentifier((Name) first); + if (first instanceof Name firstName) { + String name = ASTNodes.getSimpleNameIdentifier(firstName); if (name.equals(simpleName)) { if (fragments.size() > 1) { handleContentElements(fragments.subList(1, fragments.size())); @@ -1456,7 +1456,7 @@ private void handleContentElements(List nodes, boolean skipLe ASTNode previousNode = null; for (Iterator iter = nodes.iterator(); iter.hasNext();) { ASTNode child = iter.next(); - boolean isInSnippet = previousNode instanceof TagElement && TagElement.TAG_SNIPPET.equals(((TagElement) previousNode).getTagName()); + boolean isInSnippet = previousNode instanceof TagElement previousTag && TagElement.TAG_SNIPPET.equals(previousTag.getTagName()); if (previousNode != null) { int previousEnd = previousNode.getStartPosition() + previousNode.getLength(); int childStart = child.getStartPosition(); @@ -1477,10 +1477,10 @@ private void handleContentElements(List nodes, boolean skipLe } previousNode = child; - if (child instanceof TextElement) { - String text = ((TextElement) child).getText(); + if (child instanceof TextElement textElement) { + String text = textElement.getText(); if (JavaDocHTMLPathHandler.containsHTMLTag(text)) { - text = JavaDocHTMLPathHandler.getValidatedHTMLSrcAttribute((TextElement) child, fElement); + text = JavaDocHTMLPathHandler.getValidatedHTMLSrcAttribute(textElement, fElement); } if (skipLeadingWhitespace) { @@ -1489,8 +1489,8 @@ private void handleContentElements(List nodes, boolean skipLe // workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=233481 : text = text.replaceAll("(\r\n?|\n)([ \t]*\\*)", "$1"); //$NON-NLS-1$ //$NON-NLS-2$ handleText(markSnippet(text, isInSnippet)); - } else if (child instanceof TagElement) { - handleInlineTagElement((TagElement) child); + } else if (child instanceof TagElement tagElement) { + handleInlineTagElement(tagElement); } else { // This is unexpected. Fail gracefully by just copying the source. int start = child.getStartPosition(); @@ -1624,17 +1624,15 @@ private boolean handleValueTag(TagElement node) { return false; } if (fragments.isEmpty()) { - if (fElement instanceof IField && JdtFlags.isStatic((IField) fElement) && JdtFlags.isFinal((IField) fElement)) { - IField field = (IField) fElement; + if (fElement instanceof IField field && JdtFlags.isStatic((IField) fElement) && JdtFlags.isFinal((IField) fElement)) { return handleConstantValue(field, false); } } else if (fragments.size() == 1) { Object first = fragments.get(0); - if (first instanceof MemberRef) { - MemberRef memberRef = (MemberRef) first; + if (first instanceof MemberRef memberRef) { if (memberRef.getQualifier() == null) { SimpleName name = memberRef.getName(); - IType type = fElement instanceof IType ? (IType) fElement : ((IMember) fElement).getDeclaringType(); + IType type = fElement instanceof IType typeElement ? typeElement : ((IMember) fElement).getDeclaringType(); while (type != null) { IField field = type.getField(name.getIdentifier()); if (field != null && field.exists()) { @@ -1663,14 +1661,13 @@ private boolean handleConstantValue(IField field, boolean link) throws JavaModel CompilationUnit cuNode = CoreASTProvider.getInstance().getAST(field.getTypeRoot(), CoreASTProvider.WAIT_YES, new NullProgressMonitor()); if (cuNode != null) { ASTNode nameNode = NodeFinder.perform(cuNode, nameRange); - if (nameNode instanceof SimpleName) { - IBinding binding = ((SimpleName) nameNode).resolveBinding(); - if (binding instanceof IVariableBinding) { - IVariableBinding variableBinding = (IVariableBinding) binding; + if (nameNode instanceof SimpleName simpleName) { + IBinding binding = simpleName.resolveBinding(); + if (binding instanceof IVariableBinding variableBinding) { Object constantValue = variableBinding.getConstantValue(); if (constantValue != null) { - if (constantValue instanceof String) { - text = ASTNodes.getEscapedStringLiteral((String) constantValue); + if (constantValue instanceof String s) { + text = ASTNodes.getEscapedStringLiteral(s); } else { text = constantValue.toString(); // Javadoc tool is even worse for chars... } @@ -1712,7 +1709,7 @@ private boolean handleDocRoot(TagElement node) { try { String url = null; - if (fElement instanceof IMember && ((IMember) fElement).isBinary()) { + if (fElement instanceof IMember member && member.isBinary()) { URL javadocBaseLocation = JavaDocLocations.getJavadocBaseLocation(fElement); if (javadocBaseLocation != null) { url = javadocBaseLocation.toExternalForm(); @@ -1777,8 +1774,8 @@ private boolean handleInheritDoc(TagElement node) { int size = fragments.size(); if (size > 0) { Object first = fragments.get(0); - if (first instanceof SimpleName) { - String name = ((SimpleName) first).getIdentifier(); + if (first instanceof SimpleName simpleName) { + String name = simpleName.getIdentifier(); String[] parameterNames = fMethod.getParameterNames(); for (int i = 0; i < parameterNames.length; i++) { if (name.equals(parameterNames[i])) { @@ -1786,15 +1783,15 @@ private boolean handleInheritDoc(TagElement node) { return handleInherited(inherited); } } - } else if (size > 2 && first instanceof TextElement) { - String firstText = ((TextElement) first).getText(); + } else if (size > 2 && first instanceof TextElement firstTextElement) { + String firstText = firstTextElement.getText(); if ("<".equals(firstText)) { //$NON-NLS-1$ Object second = fragments.get(1); Object third = fragments.get(2); - if (second instanceof SimpleName && third instanceof TextElement) { - String thirdText = ((TextElement) third).getText(); + if (second instanceof SimpleName secondSimpleName && third instanceof TextElement thirdTextElement) { + String thirdText = thirdTextElement.getText(); if (">".equals(thirdText)) { //$NON-NLS-1$ - String name = ((SimpleName) second).getIdentifier(); + String name = secondSimpleName.getIdentifier(); ITypeParameter[] typeParameters = fMethod.getTypeParameters(); for (int i = 0; i < typeParameters.length; i++) { ITypeParameter typeParameter = typeParameters[i]; @@ -1817,8 +1814,8 @@ private boolean handleInheritDoc(TagElement node) { List fragments = blockTag.fragments(); if (fragments.size() > 0) { Object first = fragments.get(0); - if (first instanceof Name) { - String name = ASTNodes.getSimpleNameIdentifier((Name) first); + if (first instanceof Name firstName) { + String name = ASTNodes.getSimpleNameIdentifier(firstName); CharSequence inherited = fJavadocLookup.getInheritedExceptionDescription(fMethod, name); return handleInherited(inherited); } @@ -1998,19 +1995,19 @@ private void handleParamTag(TagElement tag) { if (size > 0) { Object first = fragments.get(0); fBuf.append(PARAM_NAME_START); - if (first instanceof SimpleName) { - String name = ((SimpleName) first).getIdentifier(); + if (first instanceof SimpleName simpleName) { + String name = simpleName.getIdentifier(); fBuf.append(name); i++; - } else if (first instanceof TextElement) { - String firstText = ((TextElement) first).getText(); + } else if (first instanceof TextElement textElement) { + String firstText = textElement.getText(); if ("<".equals(firstText)) { //$NON-NLS-1$ fBuf.append("<"); //$NON-NLS-1$ i++; if (size > 1) { Object second = fragments.get(1); - if (second instanceof SimpleName) { - String name = ((SimpleName) second).getIdentifier(); + if (second instanceof SimpleName secondSimpleName) { + String name = secondSimpleName.getIdentifier(); fBuf.append(name); i++; if (size > 2) { @@ -2035,8 +2032,7 @@ private void handleSummary(List fragments) { int fs= fragments.size(); if (fs > 0) { Object first= fragments.get(0); - if (first instanceof TextElement) { - TextElement memberRef= (TextElement) first; + if (first instanceof TextElement memberRef) { fBuf.append(BlOCK_TAG_TITLE_START + "Summary: " + memberRef.getText() + BlOCK_TAG_TITLE_END); //$NON-NLS-1$ return; } @@ -2047,8 +2043,7 @@ private void handleSnippet(TagElement node) { if (node != null) { Object val = node.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_IS_VALID); Object valError = node.getProperty(TagProperty.TAG_PROPERTY_SNIPPET_ERROR); - if (val instanceof Boolean - && ((Boolean)val).booleanValue() && valError == null) { + if (val instanceof Boolean bool && bool.booleanValue() && valError == null) { int fs= node.fragments().size(); if (fs > 0) { fBuf.append("
"); //$NON-NLS-1$
@@ -2084,8 +2079,7 @@ private void handleIndex(List fragments) {
 		int fs= fragments.size();
 		if (fs > 0) {
 			Object first= fragments.get(0);
-			if (first instanceof TextElement) {
-				TextElement memberRef= (TextElement) first;
+			if (first instanceof TextElement memberRef) {
 				fBuf.append(  memberRef.getText() );
 				return;
 			}
@@ -2102,18 +2096,15 @@ private void handleLink(List fragments) {
 			String[] refMethodParamTypes = null;
 			String[] refMethodParamNames = null;
 			int startPosition = -1;
-			if (first instanceof Name) {
-				Name name = (Name) first;
+			if (first instanceof Name name) {
 				refTypeName = name.getFullyQualifiedName();
 				startPosition = name.getStartPosition();
-			} else if (first instanceof MemberRef) {
-				MemberRef memberRef = (MemberRef) first;
+			} else if (first instanceof MemberRef memberRef) {
 				Name qualifier = memberRef.getQualifier();
 				refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$
 				refMemberName = memberRef.getName().getIdentifier();
 				startPosition = memberRef.getStartPosition();
-			} else if (first instanceof MethodRef) {
-				MethodRef methodRef = (MethodRef) first;
+			} else if (first instanceof MethodRef methodRef) {
 				Name qualifier = methodRef.getQualifier();
 				refTypeName = qualifier == null ? "" : qualifier.getFullyQualifiedName(); //$NON-NLS-1$
 				refMemberName = methodRef.getName().getIdentifier();
@@ -2175,12 +2166,7 @@ private void handleLink(List fragments) {
 	}
 
 	private static boolean isWhitespaceTextElement(Object fragment) {
-		if (!(fragment instanceof TextElement)) {
-			return false;
-		}
-
-		TextElement textElement = (TextElement) fragment;
-		return textElement.getText().trim().length() == 0;
+		return fragment instanceof TextElement textElement && textElement.getText().trim().length() == 0;
 	}
 
 	private boolean containsOnlyNull(List parameterNames) {
@@ -2224,11 +2210,7 @@ public static String extractBaseURL(String content) {
 	 * @since 3.9
 	 */
 	public static String getHTMLContent(IPackageDeclaration packageDeclaration) throws CoreException {
-		IJavaElement element = packageDeclaration.getAncestor(IJavaElement.PACKAGE_FRAGMENT);
-		if (element instanceof IPackageFragment) {
-			return getHTMLContent((IPackageFragment) element);
-		}
-		return null;
+		return packageDeclaration.getAncestor(IJavaElement.PACKAGE_FRAGMENT) instanceof IPackageFragment pkg ? getHTMLContent(pkg) : null;
 	}
 
 	/**
@@ -2298,8 +2280,7 @@ private static String readHTMLContent(IPackageFragment packageFragment) throws C
 			Object[] nonJavaResources = packageFragment.getNonJavaResources();
 			// 2.1 ==>If the package.html file is present in the source or directly in the binary jar
 			for (Object nonJavaResource : nonJavaResources) {
-				if (nonJavaResource instanceof IFile) {
-					IFile iFile = (IFile) nonJavaResource;
+				if (nonJavaResource instanceof IFile iFile) {
 					if (iFile.exists() && JavaModelUtil.PACKAGE_HTML.equals(iFile.getName())) {
 						return getIFileContent(iFile);
 					}
@@ -2310,8 +2291,7 @@ private static String readHTMLContent(IPackageFragment packageFragment) throws C
 			if (isBinary) {
 				for (Object nonJavaResource : nonJavaResources) {
 					// The content is from an external binary class folder
-					if (nonJavaResource instanceof IJarEntryResource) {
-						IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource;
+					if (nonJavaResource instanceof IJarEntryResource jarEntryResource) {
 						String encoding = getSourceAttachmentEncoding(root);
 						if (JavaModelUtil.PACKAGE_HTML.equals(jarEntryResource.getName()) && jarEntryResource.isFile()) {
 							return getHTMLContent(jarEntryResource, encoding);
@@ -2375,18 +2355,18 @@ private static String getFileContentFromAttachedSource(IPackageFragmentRoot root
 				IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
 				IResource res = wsRoot.findMember(sourceAttachmentPath);
 
-				if (res instanceof IFile) {
+				if (res instanceof IFile ifile) {
 					// zip in the workspace
 					IPath location = res.getLocation();
 					if (location == null) {
 						return null;
 					}
 					file = location.toFile();
-					encoding = ((IFile) res).getCharset(false);
+					encoding = ifile.getCharset(false);
 
-				} else if (res instanceof IContainer) {
+				} else if (res instanceof IContainer container) {
 					// folder in the workspace
-					res = ((IContainer) res).findMember(filePath);
+					res = container.findMember(filePath);
 					if (!(res instanceof IFile)) {
 						return null;
 					}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javafx/FXVersionUtil.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javafx/FXVersionUtil.java
index 51ec6786a7..4b5c602e46 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javafx/FXVersionUtil.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/javafx/FXVersionUtil.java
@@ -30,8 +30,8 @@ public class FXVersionUtil {
 	 * @return the value
 	 */
 	public static FXVersion getFxVersion(IVMInstall i) {
-		if (i instanceof IVMInstall2) {
-			final String javaVersion = ((IVMInstall2) i).getJavaVersion();
+		if (i instanceof IVMInstall2 vmInstall) {
+			final String javaVersion = vmInstall.getJavaVersion();
 			if (javaVersion == null) {
 				return FXVersion.UNKNOWN;
 			}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ContentProviderManager.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ContentProviderManager.java
index 8b72642604..430f351aa0 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ContentProviderManager.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ContentProviderManager.java
@@ -82,7 +82,7 @@ public String getContent(URI uri, IProgressMonitor monitor) {
 	}
 
 	private String getContent(Object source, String cacheKey, Class providerType, IProgressMonitor monitor) {
-		URI uri = source instanceof URI ? (URI) source : null;
+		URI uri = source instanceof URI u ? u : null;
 		List matches = findMatchingProviders(uri);
 		if (monitor.isCanceled()) {
 			return EMPTY_CONTENT;
@@ -108,8 +108,8 @@ private String getContent(Object source, String cacheKey, Class preferredProviderIds) {
 		public synchronized IContentProvider getContentProvider() {
 			try {
 				Object extension = configurationElement.createExecutableExtension(CLASS);
-				if (extension instanceof IContentProvider) {
-					return (IContentProvider) extension;
+				if (extension instanceof IContentProvider contentProvider) {
+					return contentProvider;
 				} else {
 					String message = "Invalid extension to " + EXTENSION_POINT_ID + ". Must implement " + IContentProvider.class.getName();
 					JavaLanguageServerPlugin.logError(message);
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/GradleBuildSupport.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/GradleBuildSupport.java
index 5ec97ffe51..e7c3ce9deb 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/GradleBuildSupport.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/GradleBuildSupport.java
@@ -17,7 +17,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
@@ -104,7 +103,7 @@ public void update(IProject project, boolean force, IProgressMonitor monitor) th
 			File buildKtsFile = project.getFile(GradleProjectImporter.BUILD_GRADLE_KTS_DESCRIPTOR).getLocation().toFile();
 			File settingsKtsFile = project.getFile(GradleProjectImporter.SETTINGS_GRADLE_KTS_DESCRIPTOR).getLocation().toFile();
 			boolean shouldUpdate = (buildFile.exists() && JavaLanguageServerPlugin.getDigestStore().updateDigest(buildFile.toPath()))
-					|| (settingsFile.exists() && JavaLanguageServerPlugin.getDigestStore().updateDigest(settingsFile.toPath())) 
+					|| (settingsFile.exists() && JavaLanguageServerPlugin.getDigestStore().updateDigest(settingsFile.toPath()))
 					|| (buildKtsFile.exists() && JavaLanguageServerPlugin.getDigestStore().updateDigest(buildKtsFile.toPath()))
 					|| (settingsKtsFile.exists() && JavaLanguageServerPlugin.getDigestStore().updateDigest(settingsKtsFile.toPath()));
 			if (isRoot || shouldUpdate) {
@@ -166,7 +165,7 @@ public static void syncAnnotationProcessingConfiguration(GradleBuild gradleBuild
 			if (apConfigurations == null) {
 				continue;
 			}
-			
+
 			if (apConfigurations.isEmpty()) {
 				disableApt(javaProject);
 				continue;
@@ -208,9 +207,9 @@ public static void syncAnnotationProcessingConfiguration(GradleBuild gradleBuild
 	}
 
 	private boolean isRoot(IProject project, GradleBuild gradleBuild, IProgressMonitor monitor) {
-		if (gradleBuild instanceof InternalGradleBuild) {
+		if (gradleBuild instanceof InternalGradleBuild internalGradleBuild) {
 			CancellationTokenSource tokenSource = GradleConnector.newCancellationTokenSource();
-			Map eclipseProjects = ((InternalGradleBuild) gradleBuild).getModelProvider().fetchModels(EclipseProject.class, FetchStrategy.LOAD_IF_NOT_CACHED, tokenSource, monitor);
+			Map eclipseProjects = internalGradleBuild.getModelProvider().fetchModels(EclipseProject.class, FetchStrategy.LOAD_IF_NOT_CACHED, tokenSource, monitor);
 			File projectDirectory = project.getLocation().toFile();
 			for (EclipseProject eclipseProject : eclipseProjects.values()) {
 				File eclipseProjectDirectory = eclipseProject.getProjectDirectory();
@@ -401,20 +400,12 @@ private List findUnrelatedGradleProjects(List suspiciousProj
 
 	@SuppressWarnings("unchecked")
 	private static List getCompilerArgs(Map apConfigurations) {
-		Object object = apConfigurations.get("compilerArgs");
-		if (!(object instanceof List)) {
-			return Collections.emptyList();
-		}
-		return (List) object;
+		return apConfigurations.get("compilerArgs") instanceof List l ? (List) l : List.of();
 	}
 
 	@SuppressWarnings("unchecked")
 	private static Set getProcessors(Map apConfigurations) {
-		Object object = apConfigurations.get("processors");
-		if (!(object instanceof Set)) {
-			return Collections.emptySet();
-		}
-		return (Set) object;
+		return apConfigurations.get("processors") instanceof Set set ? (Set) set : Set.of();
 	}
 
 	private static void disableApt(IJavaProject javaProject) {
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/MavenSourceDownloader.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/MavenSourceDownloader.java
index 99e3ceff70..3be3c058ed 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/MavenSourceDownloader.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/MavenSourceDownloader.java
@@ -55,8 +55,7 @@ public void discoverSource(IClassFile classFile, IProgressMonitor monitor) throw
 		IJavaElement element = classFile;
 		while (element.getParent() != null) {
 			element = element.getParent();
-			if (element instanceof IPackageFragmentRoot) {
-				final IPackageFragmentRoot fragment = (IPackageFragmentRoot) element;
+			if (element instanceof IPackageFragmentRoot fragment) {
 				IPath attachmentPath = fragment.getSourceAttachmentPath();
 				if (attachmentPath != null && !attachmentPath.isEmpty() && attachmentPath.toFile().exists()) {
 					break;
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ProjectsManager.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ProjectsManager.java
index 019fdac75a..26b97d102e 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ProjectsManager.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/ProjectsManager.java
@@ -120,8 +120,7 @@ public void initializeProjects(final Collection rootPaths, IProgressMonit
 	private void updateEncoding(IProgressMonitor monitor) throws CoreException {
 		if (preferenceManager != null && ProjectEncodingMode.SETDEFAULT.equals(preferenceManager.getPreferences().getProjectEncoding())) {
 			IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			if (workspace instanceof Workspace) {
-				Workspace ws = (Workspace) workspace;
+			if (workspace instanceof Workspace ws) {
 				CharsetManager charsetManager = ws.getCharsetManager();
 				String encoding = ResourcesPlugin.getEncoding();
 				for (IProject project : ProjectUtils.getAllProjects()) {
@@ -560,8 +559,8 @@ public static boolean setAutoBuilding(boolean enable) throws CoreException {
 
 	public static Runnable interruptAutoBuild() throws CoreException {
 		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		if (workspace instanceof Workspace) {
-			((Workspace) workspace).getBuildManager().interrupt();
+		if (workspace instanceof Workspace ws) {
+			ws.getBuildManager().interrupt();
 			return () -> {
 			};
 		} else {
@@ -595,7 +594,7 @@ public void configureFilters(IProgressMonitor monitor) throws CoreException {
 			List filters = Stream.of(project.getFilters())
 					.filter(f -> {
 						FileInfoMatcherDescription matcher = f.getFileInfoMatcherDescription();
-								return CORE_RESOURCES_MATCHER_ID.equals(matcher.getId()) && (matcher.getArguments() instanceof String) && ((String) matcher.getArguments()).contains(CREATED_BY_JAVA_LANGUAGE_SERVER);
+						return CORE_RESOURCES_MATCHER_ID.equals(matcher.getId()) && matcher.getArguments() instanceof String args && args.contains(CREATED_BY_JAVA_LANGUAGE_SERVER);
 					})
 					.collect(Collectors.toList());
 			boolean filterExists = false;
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/StandardProjectsManager.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/StandardProjectsManager.java
index fd85b26dd8..1a935b1748 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/StandardProjectsManager.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/managers/StandardProjectsManager.java
@@ -332,13 +332,12 @@ public static void configureSettings(Preferences preferences, boolean cleanWorks
 		});
 		if (properties != null && !properties.isEmpty()) {
 			properties.forEach((k, v) -> {
-				if (k instanceof String && v instanceof String) {
-					String path = (String) k;
+				if (k instanceof String path && v instanceof String value) {
 					if (!"file_export_version".equals(path) && path.charAt(0) != '@' && path.charAt(0) != '!') {
 						String[] decoded = EclipsePreferences.decodePath(path);
 						String key = decoded[1];
 						if (key != null) {
-							javaOptions.put(key, (String) v);
+							javaOptions.put(key, value);
 						}
 					}
 				}
@@ -360,8 +359,7 @@ public IStatus runInWorkspace(IProgressMonitor monitor) throws CoreException {
 	private static void initializeDefaultOptions(Preferences preferences) {
 		Hashtable defaultOptions = JavaCore.getDefaultOptions();
 		IVMInstall defaultVM = JavaRuntime.getDefaultVMInstall();
-		if (defaultVM instanceof AbstractVMInstall) {
-			AbstractVMInstall jvm = (AbstractVMInstall) defaultVM;
+		if (defaultVM instanceof AbstractVMInstall jvm) {
 			long jdkLevel = CompilerOptions.versionToJdkLevel(jvm.getJavaVersion());
 			String compliance = CompilerOptions.versionFromJdkLevel(jdkLevel);
 			JavaCore.setComplianceOptions(compliance, defaultOptions);
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/ClientPreferences.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/ClientPreferences.java
index b019906e4f..5c0fdbe173 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/ClientPreferences.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/ClientPreferences.java
@@ -217,26 +217,17 @@ public boolean isAdvancedExtractRefactoringSupported() {
 
 	public boolean isExtractMethodInferSelectionSupported() {
 		Object supportList = extendedClientCapabilities.getOrDefault("inferSelectionSupport", new ArrayList<>());
-		if (supportList instanceof List) {
-			return ((List)supportList).contains("extractMethod");
-		}
-		return false;
+		return supportList instanceof List list && list.contains("extractMethod");
 	}
 
 	public boolean isExtractVariableInferSelectionSupported() {
 		Object supportList = extendedClientCapabilities.getOrDefault("inferSelectionSupport", new ArrayList<>());
-		if (supportList instanceof List) {
-			return ((List)supportList).contains("extractVariable");
-		}
-		return false;
+		return supportList instanceof List list && list.contains("extractVariable");
 	}
 
 	public boolean isExtractFieldInferSelectionSupported() {
 		Object supportList = extendedClientCapabilities.getOrDefault("inferSelectionSupport", new ArrayList<>());
-		if (supportList instanceof List) {
-			return ((List)supportList).contains("extractField");
-		}
-		return false;
+		return supportList instanceof List list && list.contains("extractField");
 	}
 
 	public boolean isAdvancedIntroduceParameterRefactoringSupported() {
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java
index d9c194206a..e25a28a00e 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/preferences/Preferences.java
@@ -1104,36 +1104,35 @@ public static Preferences createFrom(Map configuration) {
 		Set runtimes = new HashSet<>();
 		boolean[] hasDefault = { false };
 		for (Object object : runtimeList) {
-			if (object instanceof Map) {
+			if (object instanceof Map map) {
 				RuntimeEnvironment runtime = new RuntimeEnvironment();
-				Map map = (Map) object;
 				map.forEach((k, v) -> {
-					if (k instanceof String) {
-						switch ((String) k) {
+					if (k instanceof String key) {
+						switch (key) {
 							case "name":
-								if (v instanceof String) {
-									runtime.setName((String) v);
+								if (v instanceof String value) {
+									runtime.setName(value);
 								}
 								break;
 							case "path":
-								if (v instanceof String) {
-									runtime.setPath(ResourceUtils.expandPath((String) v));
+								if (v instanceof String value) {
+									runtime.setPath(ResourceUtils.expandPath(value));
 								}
 								break;
 							case "javadoc":
-								if (v instanceof String) {
-									runtime.setJavadoc(ResourceUtils.expandPath((String) v));
+								if (v instanceof String value) {
+									runtime.setJavadoc(ResourceUtils.expandPath(value));
 								}
 								break;
 							case "sources":
-								if (v instanceof String) {
-									runtime.setSources(ResourceUtils.expandPath((String) v));
+								if (v instanceof String value) {
+									runtime.setSources(ResourceUtils.expandPath(value));
 								}
 								break;
 							case "default":
 								if (!hasDefault[0]) {
-									if (v instanceof Boolean) {
-										runtime.setDefault((Boolean) v);
+									if (v instanceof Boolean bool) {
+										runtime.setDefault(bool);
 									}
 									hasDefault[0] = true;
 								}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/search/text/FileCharSequenceProvider.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/search/text/FileCharSequenceProvider.java
index 943353a767..2cc4131859 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/search/text/FileCharSequenceProvider.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/search/text/FileCharSequenceProvider.java
@@ -45,8 +45,7 @@ public CharSequence newCharSequence(IFile file) throws CoreException, IOExceptio
 	}
 
 	public void releaseCharSequence(CharSequence seq) throws IOException {
-		if (seq instanceof FileCharSequence) {
-			FileCharSequence curr= (FileCharSequence) seq;
+		if (seq instanceof FileCharSequence curr) {
 			try {
 				curr.close();
 			} finally {
@@ -70,10 +69,10 @@ public static class FileCharSequenceException extends RuntimeException {
 
 		public void throwWrappedException() throws CoreException, IOException {
 			Throwable wrapped= getCause();
-			if (wrapped instanceof CoreException) {
-				throw (CoreException) wrapped;
-			} else if (wrapped instanceof IOException) {
-				throw (IOException) wrapped;
+			if (wrapped instanceof CoreException coreEx) {
+				throw coreEx;
+			} else if (wrapped instanceof IOException ioEx) {
+				throw ioEx;
 			}
 			// not possible
 		}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/SemanticTokensVisitor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/SemanticTokensVisitor.java
index 11cc8270d4..45a37e8e01 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/SemanticTokensVisitor.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/SemanticTokensVisitor.java
@@ -46,6 +46,7 @@
 import org.eclipse.jdt.core.dom.Type;
 import org.eclipse.jdt.core.dom.TypeLiteral;
 import org.eclipse.lsp4j.SemanticTokens;
+import org.jsoup.select.NodeVisitor;
 
 public class SemanticTokensVisitor extends ASTVisitor {
 	private CompilationUnit cu;
@@ -512,11 +513,9 @@ private void visitSimpleNamesOfName(Name name, NodeVisitor visitor)
 		if (name == null) {
 			return;
 		}
-		if (name instanceof SimpleName) {
-			visitor.visit((SimpleName) name);
-		}
-		else {
-			QualifiedName qualifiedName = (QualifiedName) name;
+		if (name instanceof SimpleName simpleName) {
+			visitor.visit(simpleName);
+		} else if (name instanceof QualifiedName qualifiedName) {
 			visitSimpleNamesOfName(qualifiedName.getQualifier(), visitor);
 			visitor.visit(qualifiedName.getName());
 		}
@@ -544,34 +543,28 @@ private void visitSimpleNameOfType(Type type, NodeVisitor visitor) {
 		if (type == null) {
 			return;
 		}
-		else if (type instanceof SimpleType) {
-			SimpleType simpleType = (SimpleType) type;
+		else if (type instanceof SimpleType simpleType) {
 			acceptNodeList(simpleType.annotations());
 
 			Name simpleTypeName = simpleType.getName();
-			if (simpleTypeName instanceof SimpleName) {
-				visitor.visit((SimpleName) simpleTypeName);
-			}
-			else {
-				QualifiedName qualifiedName = (QualifiedName) simpleTypeName;
+			if (simpleTypeName instanceof SimpleName simpleName) {
+				visitor.visit(simpleName);
+			} else if (simpleTypeName instanceof QualifiedName qualifiedName) {
 				qualifiedName.getQualifier().accept(this);
 				visitor.visit(qualifiedName.getName());
 			}
 		}
-		else if (type instanceof QualifiedType) {
-			QualifiedType qualifiedType = (QualifiedType) type;
+		else if (type instanceof QualifiedType qualifiedType) {
 			qualifiedType.getQualifier().accept(this);
 			acceptNodeList(qualifiedType.annotations());
 			visitor.visit(qualifiedType.getName());
 		}
-		else if (type instanceof NameQualifiedType) {
-			NameQualifiedType nameQualifiedType = (NameQualifiedType) type;
+		else if (type instanceof NameQualifiedType nameQualifiedType) {
 			nameQualifiedType.getQualifier().accept(this);
 			acceptNodeList(nameQualifiedType.annotations());
 			visitor.visit(nameQualifiedType.getName());
 		}
-		else if (type instanceof ParameterizedType) {
-			ParameterizedType parameterizedType = (ParameterizedType) type;
+		else if (type instanceof ParameterizedType parameterizedType) {
 			visitSimpleNameOfType(parameterizedType.getType(), visitor);
 			visitNodeList(parameterizedType.typeArguments(), this::typeArgumentVisitor);
 		}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/TokenModifier.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/TokenModifier.java
index b9d566bfa8..2530dc708d 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/TokenModifier.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/semantictokens/TokenModifier.java
@@ -132,7 +132,7 @@ public static int checkJavaModifiers(IBinding binding) {
 	 * @return A bitmask with the {@link #CONSTRUCTOR} bit set accordingly.
 	 */
 	public static int checkConstructor(IBinding binding) {
-		if (binding instanceof IMethodBinding && ((IMethodBinding) binding).isConstructor()) {
+		if (binding instanceof IMethodBinding methodBinding && methodBinding.isConstructor()) {
 			return CONSTRUCTOR.bitmask;
 		}
 		return 0;
@@ -145,14 +145,12 @@ public static int checkConstructor(IBinding binding) {
 	 * @return A bitmask with the {@link #GENERIC} bit set accordingly.
 	 */
 	public static int checkGeneric(IBinding binding) {
-		if (binding instanceof ITypeBinding) {
-			ITypeBinding typeBinding = (ITypeBinding) binding;
+		if (binding instanceof ITypeBinding typeBinding) {
 			if (typeBinding.isGenericType() || typeBinding.isParameterizedType()) {
 				return GENERIC.bitmask;
 			}
 		}
-		if (binding instanceof IMethodBinding) {
-			IMethodBinding methodBinding = (IMethodBinding) binding;
+		if (binding instanceof IMethodBinding methodBinding) {
 			if (methodBinding.isGenericMethod() || methodBinding.isParameterizedMethod()) {
 				return GENERIC.bitmask;
 			}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionComparator.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionComparator.java
index a1172e3c72..209c1a808e 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionComparator.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionComparator.java
@@ -35,6 +35,7 @@ public class CodeActionComparator implements Comparator e1, Either e2) {
 		if (e1.isRight() && e2.isRight()) {
 			CodeAction action1 = e1.getRight();
@@ -45,9 +46,9 @@ public int compare(Either e1, Either e
 			}
 			Object data1 = action1.getData();
 			Object data2 = action2.getData();
-			if (data1 instanceof CodeActionData && data2 instanceof CodeActionData) {
-				int priority1 = ((CodeActionData) data1).getPriority();
-				int priority2 = ((CodeActionData) data2).getPriority();
+			if (data1 instanceof CodeActionData codeActionData1 && data2 instanceof CodeActionData codeActionData2) {
+				int priority1 = codeActionData1.getPriority();
+				int priority2 = codeActionData2.getPriority();
 				return priority1 - priority2;
 			} else if (data1 instanceof CodeActionData) {
 				return 10;
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionUtility.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionUtility.java
index 51bcdcf601..b4744960da 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionUtility.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/CodeActionUtility.java
@@ -91,14 +91,14 @@ public static List getFieldNamesFromASTNode(ASTNode node) {
 			if (parent instanceof VariableDeclarationFragment) {
 				return CodeActionUtility.getFieldNamesFromASTNode(parent);
 			}
-		} else if (node instanceof VariableDeclarationFragment) {
-			SimpleName name = ((VariableDeclarationFragment) node).getName();
+		} else if (node instanceof VariableDeclarationFragment varibleDecl) {
+			SimpleName name = varibleDecl.getName();
 			if (name != null) {
 				return Arrays.asList(name.getIdentifier());
 			}
-		} else if (node instanceof FieldDeclaration) {
+		} else if (node instanceof FieldDeclaration fieldDecl) {
 			List names = new ArrayList<>();
-			List fragments = ((FieldDeclaration) node).fragments();
+			List fragments = fieldDecl.fragments();
 			for (VariableDeclarationFragment fragment : fragments) {
 				names.addAll(CodeActionUtility.getFieldNamesFromASTNode(fragment));
 			}
@@ -113,9 +113,9 @@ public static List getVariableNamesFromASTNode(ASTNode node) {
 			if (name != null) {
 				return Arrays.asList(name.getIdentifier());
 			}
-		} else if (node instanceof VariableDeclarationStatement) {
+		} else if (node instanceof VariableDeclarationStatement variableDecl) {
 			List names = new ArrayList<>();
-			List fragments = ((VariableDeclarationStatement) node).fragments();
+			List fragments = variableDecl.fragments();
 			for (VariableDeclarationFragment fragment : fragments) {
 				names.addAll(CodeActionUtility.getFieldNamesFromASTNode(fragment));
 			}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/ModifierCorrectionSubProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/ModifierCorrectionSubProcessor.java
index ede9550070..cf53efe3cb 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/ModifierCorrectionSubProcessor.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/ModifierCorrectionSubProcessor.java
@@ -145,14 +145,13 @@ public static void addNonAccessibleReferenceProposal(IInvocationContext context,
 		String name;
 		IBinding bindingDecl;
 		boolean isLocalVar = false;
-		if (binding instanceof IVariableBinding && problem.getProblemId() == IProblem.NotVisibleType) {
-			binding = ((IVariableBinding) binding).getType();
+		if (binding instanceof IVariableBinding variableBinding && problem.getProblemId() == IProblem.NotVisibleType) {
+			binding = variableBinding.getType();
 		}
-		if (binding instanceof IMethodBinding && problem.getProblemId() == IProblem.NotVisibleType) {
-			binding = ((IMethodBinding) binding).getReturnType();
+		if (binding instanceof IMethodBinding methodBinding && problem.getProblemId() == IProblem.NotVisibleType) {
+			binding = methodBinding.getReturnType();
 		}
-		if (binding instanceof IMethodBinding) {
-			IMethodBinding methodDecl = (IMethodBinding) binding;
+		if (binding instanceof IMethodBinding methodDecl) {
 			if (methodDecl.isDefaultConstructor()) {
 				UnresolvedElementsSubProcessor.getConstructorProposals(context, problem, proposals);
 				return;
@@ -160,14 +159,13 @@ public static void addNonAccessibleReferenceProposal(IInvocationContext context,
 			bindingDecl = methodDecl.getMethodDeclaration();
 			typeBinding = methodDecl.getDeclaringClass();
 			name = BasicElementLabels.getJavaElementName(methodDecl.getName() + "()"); //$NON-NLS-1$
-		} else if (binding instanceof IVariableBinding) {
-			IVariableBinding varDecl = (IVariableBinding) binding;
+		} else if (binding instanceof IVariableBinding varDecl) {
 			typeBinding = varDecl.getDeclaringClass();
 			name = BasicElementLabels.getJavaElementName(binding.getName());
 			isLocalVar = !varDecl.isField();
 			bindingDecl = varDecl.getVariableDeclaration();
-		} else if (binding instanceof ITypeBinding) {
-			typeBinding = (ITypeBinding) binding;
+		} else if (binding instanceof ITypeBinding localTypeBinding) {
+			typeBinding = localTypeBinding;
 			bindingDecl = typeBinding.getTypeDeclaration();
 			name = BasicElementLabels.getJavaElementName(binding.getName());
 		} else {
@@ -344,8 +342,8 @@ public static void addRemoveInvalidModifiersProposal(IInvocationContext context,
 		ICompilationUnit cu = context.getCompilationUnit();
 
 		ASTNode selectedNode = problem.getCoveringNode(context.getASTRoot());
-		if (selectedNode instanceof MethodDeclaration) {
-			selectedNode = ((MethodDeclaration) selectedNode).getName();
+		if (selectedNode instanceof MethodDeclaration methodDeclaration) {
+			selectedNode = methodDeclaration.getName();
 		}
 
 		if (!(selectedNode instanceof SimpleName)) {
@@ -445,8 +443,8 @@ public static void addRemoveInvalidModifiersProposal(IInvocationContext context,
 				proposals.add(new ModifierChangeCorrectionProposal(CorrectionMessages.ModifierCorrectionSubProcessor_removefinal_description, cu, binding, selectedNode, 0, Modifier.FINAL, relevance + 1));
 			}
 
-			if (problemId == IProblem.UnexpectedStaticModifierForField && binding instanceof IVariableBinding) {
-				ITypeBinding declClass = ((IVariableBinding) binding).getDeclaringClass();
+			if (problemId == IProblem.UnexpectedStaticModifierForField && binding instanceof IVariableBinding variableBinding) {
+				ITypeBinding declClass = variableBinding.getDeclaringClass();
 				if (declClass.isMember()) {
 					proposals.add(new ModifierChangeCorrectionProposal(CorrectionMessages.ModifierCorrectionSubProcessor_changemodifiertostaticfinal_description, cu, binding, selectedNode, Modifier.FINAL, Modifier.VOLATILE, relevance + 1));
 					ASTNode parentType = context.getASTRoot().findDeclaringNode(declClass);
@@ -455,8 +453,8 @@ public static void addRemoveInvalidModifiersProposal(IInvocationContext context,
 					}
 				}
 			}
-			if (problemId == IProblem.UnexpectedStaticModifierForMethod && binding instanceof IMethodBinding) {
-				ITypeBinding declClass = ((IMethodBinding) binding).getDeclaringClass();
+			if (problemId == IProblem.UnexpectedStaticModifierForMethod && binding instanceof IMethodBinding methodBinding) {
+				ITypeBinding declClass = methodBinding.getDeclaringClass();
 				if (declClass.isMember()) {
 					ASTNode parentType = context.getASTRoot().findDeclaringNode(declClass);
 					if (parentType != null) {
@@ -513,8 +511,8 @@ public static void addAbstractMethodProposals(IInvocationContext context, IProbl
 		MethodDeclaration decl;
 		if (selectedNode instanceof SimpleName) {
 			decl = (MethodDeclaration) selectedNode.getParent();
-		} else if (selectedNode instanceof MethodDeclaration) {
-			decl = (MethodDeclaration) selectedNode;
+		} else if (selectedNode instanceof MethodDeclaration methodDeclaration) {
+			decl = methodDeclaration;
 		} else {
 			return;
 		}
@@ -523,8 +521,8 @@ public static void addAbstractMethodProposals(IInvocationContext context, IProbl
 		TypeDeclaration parentTypeDecl = null;
 		boolean parentIsAbstractClass = false;
 		boolean parentIsInterface = false;
-		if (parentType instanceof TypeDeclaration) {
-			parentTypeDecl = (TypeDeclaration) parentType;
+		if (parentType instanceof TypeDeclaration typeDecl) {
+			parentTypeDecl = typeDecl;
 			parentIsAbstractClass = !parentTypeDecl.isInterface() && Modifier.isAbstract(parentTypeDecl.getModifiers());
 			parentIsInterface = parentTypeDecl.isInterface();
 		}
@@ -633,8 +631,8 @@ public static void addAbstractTypeProposals(IInvocationContext context, IProblem
 			if (parent != null) {
 				parentTypeDecl = (TypeDeclaration) parent;
 			}
-		} else if (selectedNode instanceof TypeDeclaration) {
-			parentTypeDecl = (TypeDeclaration) selectedNode;
+		} else if (selectedNode instanceof TypeDeclaration typeDecl) {
+			parentTypeDecl = typeDecl;
 		}
 
 		if (parentTypeDecl == null) {
@@ -951,8 +949,7 @@ public static void installLinkedVisibilityProposals(LinkedProposalModelCore link
 	private static Modifier findVisibilityModifier(List modifiers) {
 		for (int i = 0; i < modifiers.size(); i++) {
 			IExtendedModifier curr = modifiers.get(i);
-			if (curr instanceof Modifier) {
-				Modifier modifier = (Modifier) curr;
+			if (curr instanceof Modifier modifier) {
 				ModifierKeyword keyword = modifier.getKeyword();
 				if (keyword == ModifierKeyword.PUBLIC_KEYWORD || keyword == ModifierKeyword.PROTECTED_KEYWORD || keyword == ModifierKeyword.PRIVATE_KEYWORD) {
 					return modifier;
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java
index 03c668649e..21b20db2a1 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/QuickAssistProcessor.java
@@ -284,8 +284,7 @@ private static boolean getAssignParamToFieldProposals(IInvocationContext context
 				IVariableBinding curr = declaredFields[i];
 				if (isStaticContext == Modifier.isStatic(curr.getModifiers()) && typeBinding.isAssignmentCompatible(curr.getType())) {
 					ASTNode fieldDeclFrag = root.findDeclaringNode(curr);
-					if (fieldDeclFrag instanceof VariableDeclarationFragment) {
-						VariableDeclarationFragment fragment = (VariableDeclarationFragment) fieldDeclFrag;
+					if (fieldDeclFrag instanceof VariableDeclarationFragment fragment) {
 						if (fragment.getInitializer() == null) {
 							resultingCollections.add(new AssignToVariableAssistProposal(context.getCompilationUnit(), paramDecl, fragment, typeBinding, IProposalRelevance.ASSIGN_PARAM_TO_EXISTING_FIELD));
 						}
@@ -439,8 +438,7 @@ public static LambdaExpression convertMethodRefernceToLambda(MethodReference met
 		ITypeBinding returnTypeBinding = functionalMethod.getReturnType();
 		IMethodBinding referredMethodBinding = methodReference.resolveMethodBinding(); // too often null, see bug 440000, bug 440344, bug 333665
 
-		if (methodReference instanceof CreationReference) {
-			CreationReference creationRef = (CreationReference) methodReference;
+		if (methodReference instanceof CreationReference creationRef) {
 			Type type = creationRef.getType();
 			if (type instanceof ArrayType) {
 				ArrayCreation arrayCreation = ast.newArrayCreation();
@@ -496,11 +494,10 @@ public static LambdaExpression convertMethodRefernceToLambda(MethodReference met
 			Expression expr = null;
 			boolean hasConflict = hasConflict(methodReference.getStartPosition(), referredMethodBinding, ScopeAnalyzer.METHODS | ScopeAnalyzer.CHECK_VISIBILITY, astRoot);
 			if (hasConflict || !Bindings.isSuperType(referredMethodBinding.getDeclaringClass(), ASTNodes.getEnclosingType(methodReference)) || methodReference.typeArguments().size() != 0) {
-				if (methodReference instanceof ExpressionMethodReference) {
-					ExpressionMethodReference expressionMethodReference = (ExpressionMethodReference) methodReference;
+				if (methodReference instanceof ExpressionMethodReference expressionMethodReference) {
 					expr = (Expression) rewrite.createCopyTarget(expressionMethodReference.getExpression());
-				} else if (methodReference instanceof TypeMethodReference) {
-					Type type = ((TypeMethodReference) methodReference).getType();
+				} else if (methodReference instanceof TypeMethodReference typedMethodReference) {
+					Type type = typedMethodReference.getType();
 					ITypeBinding typeBinding = type.resolveBinding();
 					if (typeBinding != null) {
 						ImportRewrite importRewrite = CodeStyleConfiguration.createImportRewrite(astRoot, true);
@@ -629,10 +626,10 @@ private static boolean isTypeReferenceToInstanceMethod(MethodReference methodRef
 		if (methodReference instanceof TypeMethodReference) {
 			return true;
 		}
-		if (methodReference instanceof ExpressionMethodReference) {
-			Expression expression = ((ExpressionMethodReference) methodReference).getExpression();
-			if (expression instanceof Name) {
-				IBinding nameBinding = ((Name) expression).resolveBinding();
+		if (methodReference instanceof ExpressionMethodReference expressionMethodReference) {
+			Expression expression = expressionMethodReference.getExpression();
+			if (expression instanceof Name name) {
+				IBinding nameBinding = name.resolveBinding();
 				if (nameBinding != null && nameBinding instanceof ITypeBinding) {
 					return true;
 				}
@@ -659,12 +656,12 @@ private static List getCopiedTypeArguments(ASTRewrite rewrite, List
 
 	private static SimpleName getMethodInvocationName(MethodReference methodReference) {
 		SimpleName name = null;
-		if (methodReference instanceof ExpressionMethodReference) {
-			name = ((ExpressionMethodReference) methodReference).getName();
-		} else if (methodReference instanceof TypeMethodReference) {
-			name = ((TypeMethodReference) methodReference).getName();
-		} else if (methodReference instanceof SuperMethodReference) {
-			name = ((SuperMethodReference) methodReference).getName();
+		if (methodReference instanceof ExpressionMethodReference expressionMethodReference) {
+			name = expressionMethodReference.getName();
+		} else if (methodReference instanceof TypeMethodReference typeMethodReference) {
+			name = typeMethodReference.getName();
+		} else if (methodReference instanceof SuperMethodReference superMethodReference) {
+			name = superMethodReference.getName();
 		}
 		return name;
 	}
@@ -718,19 +715,17 @@ public static boolean getCatchClauseToThrowsProposals(IInvocationContext context
 		AST ast = bodyDeclaration.getAST();
 
 		Type selectedMultiCatchType = null;
-		if (type.isUnionType() && node instanceof Name) {
-			Name topMostName = ASTNodes.getTopMostName((Name) node);
+		if (type.isUnionType() && node instanceof Name name) {
+			Name topMostName = ASTNodes.getTopMostName(name);
 			ASTNode parent = topMostName.getParent();
-			if (parent instanceof SimpleType) {
-				selectedMultiCatchType = (SimpleType) parent;
-			} else if (parent instanceof NameQualifiedType) {
-				selectedMultiCatchType = (NameQualifiedType) parent;
+			if (parent instanceof SimpleType simpleType) {
+				selectedMultiCatchType = simpleType;
+			} else if (parent instanceof NameQualifiedType nameQualifiedType) {
+				selectedMultiCatchType = nameQualifiedType;
 			}
 		}
 
-		if (bodyDeclaration instanceof MethodDeclaration) {
-			MethodDeclaration methodDeclaration = (MethodDeclaration) bodyDeclaration;
-
+		if (bodyDeclaration instanceof MethodDeclaration methodDeclaration) {
 			ASTRewrite rewrite = ASTRewrite.create(ast);
 			if (selectedMultiCatchType != null) {
 				removeException(rewrite, (UnionType) type, selectedMultiCatchType);
@@ -838,10 +833,10 @@ private static boolean isNotYetThrown(ITypeBinding binding, List thrownExc
 
 	private static boolean getConvertMethodReferenceToLambdaProposal(IInvocationContext context, ASTNode covering, Collection resultingCollections) throws JavaModelException {
 		MethodReference methodReference;
-		if (covering instanceof MethodReference) {
-			methodReference = (MethodReference) covering;
-		} else if (covering.getParent() instanceof MethodReference) {
-			methodReference = (MethodReference) covering.getParent();
+		if (covering instanceof MethodReference ref) {
+			methodReference = ref;
+		} else if (covering.getParent() instanceof MethodReference parentMethodRef) {
+			methodReference = parentMethodRef;
 		} else {
 			return false;
 		}
@@ -871,8 +866,8 @@ private static boolean getConvertMethodReferenceToLambdaProposal(IInvocationCont
 
 	private static boolean getConvertLambdaToMethodReferenceProposal(IInvocationContext context, ASTNode coveringNode, Collection resultingCollections) {
 		LambdaExpression lambda;
-		if (coveringNode instanceof LambdaExpression) {
-			lambda = (LambdaExpression) coveringNode;
+		if (coveringNode instanceof LambdaExpression lambdaExpr) {
+			lambda = lambdaExpr;
 		} else if (coveringNode.getLocationInParent() == LambdaExpression.BODY_PROPERTY) {
 			lambda = (LambdaExpression) coveringNode.getParent();
 		} else {
@@ -884,8 +879,8 @@ private static boolean getConvertLambdaToMethodReferenceProposal(IInvocationCont
 
 		ASTNode lambdaBody = lambda.getBody();
 		Expression exprBody;
-		if (lambdaBody instanceof Block) {
-			exprBody = getSingleExpressionFromLambdaBody((Block) lambdaBody);
+		if (lambdaBody instanceof Block block) {
+			exprBody = getSingleExpressionFromLambdaBody(block);
 		} else {
 			exprBody = (Expression) lambdaBody;
 		}
@@ -902,24 +897,22 @@ private static boolean getConvertLambdaToMethodReferenceProposal(IInvocationCont
 		for (VariableDeclaration param : (List) lambda.parameters()) {
 			lambdaParameters.add(param.getName());
 		}
-		if (exprBody instanceof ClassInstanceCreation) {
-			ClassInstanceCreation cic = (ClassInstanceCreation) exprBody;
+		if (exprBody instanceof ClassInstanceCreation cic) {
 			if (cic.getExpression() != null || cic.getAnonymousClassDeclaration() != null) {
 				return false;
 			}
 			if (!matches(lambdaParameters, cic.arguments())) {
 				return false;
 			}
-		} else if (exprBody instanceof ArrayCreation) {
-			List dimensions = ((ArrayCreation) exprBody).dimensions();
+		} else if (exprBody instanceof ArrayCreation arrayCreation) {
+			List dimensions = arrayCreation.dimensions();
 			if (dimensions.size() != 1) {
 				return false;
 			}
 			if (!matches(lambdaParameters, dimensions)) {
 				return false;
 			}
-		} else if (exprBody instanceof SuperMethodInvocation) {
-			SuperMethodInvocation superMethodInvocation = (SuperMethodInvocation) exprBody;
+		} else if (exprBody instanceof SuperMethodInvocation superMethodInvocation) {
 			IMethodBinding methodBinding = superMethodInvocation.resolveMethodBinding();
 			if (methodBinding == null) {
 				return false;
@@ -980,26 +973,24 @@ private static boolean getConvertLambdaToMethodReferenceProposal(IInvocationCont
 		ImportRewrite importRewrite = null;
 		MethodReference replacement;
 
-		if (exprBody instanceof ClassInstanceCreation) {
+		if (exprBody instanceof ClassInstanceCreation cic) {
 			CreationReference creationReference = ast.newCreationReference();
 			replacement = creationReference;
 
-			ClassInstanceCreation cic = (ClassInstanceCreation) exprBody;
 			Type type = cic.getType();
 			if (type.isParameterizedType() && ((ParameterizedType) type).typeArguments().size() == 0) {
 				type = ((ParameterizedType) type).getType();
 			}
 			creationReference.setType((Type) rewrite.createCopyTarget(type));
 			creationReference.typeArguments().addAll(getCopiedTypeArguments(rewrite, cic.typeArguments()));
-		} else if (exprBody instanceof ArrayCreation) {
+		} else if (exprBody instanceof ArrayCreation arrayCreation) {
 			CreationReference creationReference = ast.newCreationReference();
 			replacement = creationReference;
 
-			ArrayType arrayType = ((ArrayCreation) exprBody).getType();
+			ArrayType arrayType = arrayCreation.getType();
 			Type copiedElementType = (Type) rewrite.createCopyTarget(arrayType.getElementType());
 			creationReference.setType(ast.newArrayType(copiedElementType, arrayType.getDimensions()));
-		} else if (exprBody instanceof SuperMethodInvocation) {
-			SuperMethodInvocation superMethodInvocation = (SuperMethodInvocation) exprBody;
+		} else if (exprBody instanceof SuperMethodInvocation superMethodInvocation) {
 			IMethodBinding methodBinding = superMethodInvocation.resolveMethodBinding();
 			Name superQualifier = superMethodInvocation.getQualifier();
 
@@ -1106,10 +1097,10 @@ private static Expression getSingleExpressionFromLambdaBody(Block lambdaBody) {
 			return null;
 		}
 		Statement singleStatement = (Statement) lambdaBody.statements().get(0);
-		if (singleStatement instanceof ReturnStatement) {
-			return ((ReturnStatement) singleStatement).getExpression();
-		} else if (singleStatement instanceof ExpressionStatement) {
-			Expression expression = ((ExpressionStatement) singleStatement).getExpression();
+		if (singleStatement instanceof ReturnStatement returnStatement) {
+			return returnStatement.getExpression();
+		} else if (singleStatement instanceof ExpressionStatement expressionStatement) {
+			Expression expression = expressionStatement.getExpression();
 			if (isValidLambdaExpressionBody(expression)) {
 				return expression;
 			}
@@ -1121,8 +1112,8 @@ private static boolean isValidLambdaExpressionBody(Expression expression) {
 		if (expression instanceof Assignment || expression instanceof ClassInstanceCreation || expression instanceof MethodInvocation || expression instanceof PostfixExpression || expression instanceof SuperMethodInvocation) {
 			return true;
 		}
-		if (expression instanceof PrefixExpression) {
-			Operator operator = ((PrefixExpression) expression).getOperator();
+		if (expression instanceof PrefixExpression prefixExpression) {
+			Operator operator = prefixExpression.getOperator();
 			if (operator == Operator.INCREMENT || operator == Operator.DECREMENT) {
 				return true;
 			}
@@ -1252,8 +1243,8 @@ private static class ReturnType {
 
 	private static ReturnType getReturnType(AST ast, ImportRewrite importRewrite, Type variableType) {
 		ReturnType returnType = new ReturnType();
-		if (variableType instanceof ParameterizedType) {
-			variableType = (Type) ((ParameterizedType) variableType).typeArguments().get(0);
+		if (variableType instanceof ParameterizedType parameterizedType) {
+			variableType = (Type) parameterizedType.typeArguments().get(0);
 			ITypeBinding returnTypeBinding = variableType.resolveBinding();
 			if (returnTypeBinding != null) {
 				if (returnTypeBinding.isCapture()) {
@@ -1292,7 +1283,7 @@ private static Block getNewReturnBlock(AST ast, ITypeBinding returnTypeBinding)
 
 	public static boolean getAddMethodDeclaration(IInvocationContext context, ASTNode covering, Collection resultingCollections) {
 		CompilationUnit astRoot = context.getASTRoot();
-		ExpressionMethodReference methodReferenceNode = covering instanceof ExpressionMethodReference ? (ExpressionMethodReference) covering : ASTNodes.getParent(covering, ExpressionMethodReference.class);
+		ExpressionMethodReference methodReferenceNode = covering instanceof ExpressionMethodReference expressionMethodReference ? expressionMethodReference : ASTNodes.getParent(covering, ExpressionMethodReference.class);
 		if (methodReferenceNode == null) {
 			return false;
 		}
@@ -1578,8 +1569,7 @@ public static boolean getTryWithResourceProposals(IInvocationContext context, AS
 			if (findAncestor == null) {
 				findAncestor = ASTResolving.findAncestor(coveredNode, ASTNode.ASSIGNMENT);
 			}
-			if (findAncestor instanceof VariableDeclarationStatement) {
-				VariableDeclarationStatement vds = (VariableDeclarationStatement) findAncestor;
+			if (findAncestor instanceof VariableDeclarationStatement vds) {
 				String commentToken = null;
 				int extendedStatementStart = cu.getExtendedStartPosition(vds);
 				if (vds.getStartPosition() > extendedStatementStart) {
@@ -1730,8 +1720,8 @@ public static boolean getTryWithResourceProposals(IInvocationContext context, AS
 	}
 
 	private static boolean getConvertToSwitchExpressionProposals(IInvocationContext context, ASTNode covering, Collection resultingCollections) {
-		if (covering instanceof Block) {
-			List statements = ((Block) covering).statements();
+		if (covering instanceof Block block) {
+			List statements = block.statements();
 			int startIndex = QuickAssistProcessorUtil.getIndex(context.getSelectionOffset(), statements);
 			if (startIndex == -1 || startIndex >= statements.size()) {
 				return false;
@@ -1744,8 +1734,8 @@ private static boolean getConvertToSwitchExpressionProposals(IInvocationContext
 		}
 
 		SwitchStatement switchStatement;
-		if (covering instanceof SwitchStatement) {
-			switchStatement = (SwitchStatement) covering;
+		if (covering instanceof SwitchStatement statement) {
+			switchStatement = statement;
 		} else {
 			return false;
 		}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java
index 3aa6c8f8e8..dbb9c098ac 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/RefactorProposalUtility.java
@@ -114,9 +114,9 @@ public static List getMoveRefactoringProposals(CodeActionP
 					int memberType = node.getNodeType();
 					String enclosingTypeName = getEnclosingType(node);
 					String projectName = cu.getJavaProject().getProject().getName();
-					if (node instanceof AbstractTypeDeclaration) {
+					if (node instanceof AbstractTypeDeclaration typeDecl) {
 						MoveTypeInfo moveTypeInfo = new MoveTypeInfo(displayName, enclosingTypeName, projectName);
-						if (isMoveInnerAvailable((AbstractTypeDeclaration) node)) {
+						if (isMoveInnerAvailable(typeDecl)) {
 							moveTypeInfo.addDestinationKind("newFile");
 						}
 
@@ -140,9 +140,9 @@ public static List getMoveRefactoringProposals(CodeActionP
 							return Collections.singletonList(new CUCorrectionCommandProposal(label, JavaCodeActionKind.REFACTOR_MOVE, cu, relevance, APPLY_REFACTORING_COMMAND_ID,
 									Arrays.asList(MOVE_STATIC_MEMBER_COMMAND, params, new MoveMemberInfo(displayName, memberType, enclosingTypeName, projectName))));
 						}
-					} else if (node instanceof MethodDeclaration) {
+					} else if (node instanceof MethodDeclaration methodDecl) {
 						// move instance method.
-						if (isMoveMethodAvailable((MethodDeclaration) node)) {
+						if (isMoveMethodAvailable(methodDecl)) {
 							return Collections.singletonList(new CUCorrectionCommandProposal(label, JavaCodeActionKind.REFACTOR_MOVE, cu, relevance, APPLY_REFACTORING_COMMAND_ID,
 									Arrays.asList(MOVE_INSTANCE_METHOD_COMMAND, params, new MoveMemberInfo(displayName))));
 						}
@@ -191,20 +191,20 @@ private static boolean isMoveMethodAvailable(MethodDeclaration declaration) thro
 	}
 
 	private static boolean isMoveStaticMemberAvailable(ASTNode declaration) throws JavaModelException {
-		if (declaration instanceof MethodDeclaration) {
-			IMethodBinding method = ((MethodDeclaration) declaration).resolveBinding();
+		if (declaration instanceof MethodDeclaration methodDecl) {
+			IMethodBinding method = methodDecl.resolveBinding();
 			return method != null && RefactoringAvailabilityTesterCore.isMoveStaticAvailable((IMember) method.getJavaElement());
-		} else if (declaration instanceof FieldDeclaration) {
+		} else if (declaration instanceof FieldDeclaration fieldDecl) {
 			List members = new ArrayList<>();
-			for (Object fragment : ((FieldDeclaration) declaration).fragments()) {
+			for (Object fragment : fieldDecl.fragments()) {
 				IVariableBinding variable = ((VariableDeclarationFragment) fragment).resolveBinding();
 				if (variable != null) {
 					members.add((IField) variable.getJavaElement());
 				}
 			}
 			return RefactoringAvailabilityTesterCore.isMoveStaticMembersAvailable(members.toArray(new IMember[0]));
-		} else if (declaration instanceof AbstractTypeDeclaration) {
-			ITypeBinding type = ((AbstractTypeDeclaration) declaration).resolveBinding();
+		} else if (declaration instanceof AbstractTypeDeclaration typeDecl) {
+			ITypeBinding type = typeDecl.resolveBinding();
 			return type != null && RefactoringAvailabilityTesterCore.isMoveStaticAvailable((IType) type.getJavaElement());
 		}
 
@@ -221,24 +221,24 @@ private static boolean isMoveInnerAvailable(AbstractTypeDeclaration declaration)
 	}
 
 	private static String getDisplayName(ASTNode declaration) {
-		if (declaration instanceof MethodDeclaration) {
-			IMethodBinding method = ((MethodDeclaration) declaration).resolveBinding();
+		if (declaration instanceof MethodDeclaration methodDecl) {
+			IMethodBinding method = methodDecl.resolveBinding();
 			if (method != null) {
 				String name = method.getName();
 				String[] parameters = Stream.of(method.getParameterTypes()).map(type -> type.getName()).toArray(String[]::new);
 				return name + "(" + String.join(",", parameters) + ")";
 			}
-		} else if (declaration instanceof FieldDeclaration) {
+		} else if (declaration instanceof FieldDeclaration fieldDecl) {
 			List fieldNames = new ArrayList<>();
-			for (Object fragment : ((FieldDeclaration) declaration).fragments()) {
+			for (Object fragment : fieldDecl.fragments()) {
 				IVariableBinding variable = ((VariableDeclarationFragment) fragment).resolveBinding();
 				if (variable != null) {
 					fieldNames.add(variable.getName());
 				}
 			}
 			return String.join(",", fieldNames);
-		} else if (declaration instanceof AbstractTypeDeclaration) {
-			ITypeBinding type = ((AbstractTypeDeclaration) declaration).resolveBinding();
+		} else if (declaration instanceof AbstractTypeDeclaration typeDecl) {
+			ITypeBinding type = typeDecl.resolveBinding();
 			if (type != null) {
 				return type.getName();
 			}
@@ -820,8 +820,8 @@ public static String getUniqueMethodName(ASTNode astNode, String suggestedName)
 		while (astNode != null && !(astNode instanceof TypeDeclaration || astNode instanceof AnonymousClassDeclaration)) {
 			astNode = astNode.getParent();
 		}
-		if (astNode instanceof TypeDeclaration) {
-			ITypeBinding typeBinding = ((TypeDeclaration) astNode).resolveBinding();
+		if (astNode instanceof TypeDeclaration typeDecl) {
+			ITypeBinding typeBinding = typeDecl.resolveBinding();
 			if (typeBinding == null) {
 				return suggestedName;
 			}
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/SourceAssistProcessor.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/SourceAssistProcessor.java
index 67e4d9af95..8f5ed5e039 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/SourceAssistProcessor.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/core/internal/text/correction/SourceAssistProcessor.java
@@ -64,9 +64,9 @@
 import org.eclipse.jdt.ls.core.internal.TextEditConverter;
 import org.eclipse.jdt.ls.core.internal.codemanipulation.DefaultJavaElementComparator;
 import org.eclipse.jdt.ls.core.internal.codemanipulation.GenerateGetterSetterOperation;
-import org.eclipse.jdt.ls.core.internal.codemanipulation.PartialSortMembersOperation;
 import org.eclipse.jdt.ls.core.internal.codemanipulation.GenerateGetterSetterOperation.AccessorField;
 import org.eclipse.jdt.ls.core.internal.codemanipulation.GenerateGetterSetterOperation.AccessorKind;
+import org.eclipse.jdt.ls.core.internal.codemanipulation.PartialSortMembersOperation;
 import org.eclipse.jdt.ls.core.internal.corrections.CorrectionMessages;
 import org.eclipse.jdt.ls.core.internal.corrections.DiagnosticsHelper;
 import org.eclipse.jdt.ls.core.internal.corrections.IInvocationContext;
@@ -74,8 +74,10 @@
 import org.eclipse.jdt.ls.core.internal.corrections.proposals.FixCorrectionProposal;
 import org.eclipse.jdt.ls.core.internal.corrections.proposals.IProposalRelevance;
 import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler;
+import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler.CodeActionData;
 import org.eclipse.jdt.ls.core.internal.handlers.CodeActionProposal;
 import org.eclipse.jdt.ls.core.internal.handlers.CodeGenerationUtils;
+import org.eclipse.jdt.ls.core.internal.handlers.GenerateAccessorsHandler.AccessorCodeActionParams;
 import org.eclipse.jdt.ls.core.internal.handlers.GenerateConstructorsHandler;
 import org.eclipse.jdt.ls.core.internal.handlers.GenerateConstructorsHandler.CheckConstructorsResponse;
 import org.eclipse.jdt.ls.core.internal.handlers.GenerateDelegateMethodsHandler;
@@ -83,8 +85,6 @@
 import org.eclipse.jdt.ls.core.internal.handlers.HashCodeEqualsHandler;
 import org.eclipse.jdt.ls.core.internal.handlers.JdtDomModels.LspVariableBinding;
 import org.eclipse.jdt.ls.core.internal.handlers.OrganizeImportsHandler;
-import org.eclipse.jdt.ls.core.internal.handlers.CodeActionHandler.CodeActionData;
-import org.eclipse.jdt.ls.core.internal.handlers.GenerateAccessorsHandler.AccessorCodeActionParams;
 import org.eclipse.jdt.ls.core.internal.preferences.PreferenceManager;
 import org.eclipse.lsp4j.CodeAction;
 import org.eclipse.lsp4j.CodeActionContext;
@@ -580,7 +580,7 @@ private Optional> addFinalModifierWherePossibleQuick
 		if (names.size() == 1) {
 			actionMessage = Messages.format(ActionMessages.GenerateFinalModifiersAction_templateLabel, names.iterator().next());
 		}
-		IProposableFix fix = (IProposableFix) VariableDeclarationFixCore.createChangeModifierToFinalFix(context.getASTRoot(), possibleASTNodes.toArray(new ASTNode[0]));
+		IProposableFix fix = VariableDeclarationFixCore.createChangeModifierToFinalFix(context.getASTRoot(), possibleASTNodes.toArray(new ASTNode[0]));
 		return getFinalModifierWherePossibleAction(context, fix, actionMessage, JavaCodeActionKind.QUICK_ASSIST);
 	}
 
@@ -746,19 +746,19 @@ public static IType getSelectionType(IInvocationContext context) {
 
 		ITypeBinding typeBinding = null;
 		while (node != null && !(node instanceof CompilationUnit)) {
-			if (node instanceof AbstractTypeDeclaration) {
-				typeBinding = ((AbstractTypeDeclaration) node).resolveBinding();
+			if (node instanceof AbstractTypeDeclaration typeDecl) {
+				typeBinding = typeDecl.resolveBinding();
 				break;
-			} else if (node instanceof AnonymousClassDeclaration) { // Anonymous
-				typeBinding = ((AnonymousClassDeclaration) node).resolveBinding();
+			} else if (node instanceof AnonymousClassDeclaration anonymousClassDecl) { // Anonymous
+				typeBinding = anonymousClassDecl.resolveBinding();
 				break;
 			}
 
 			node = node.getParent();
 		}
 
-		if (typeBinding != null && typeBinding.getJavaElement() instanceof IType) {
-			return (IType) typeBinding.getJavaElement();
+		if (typeBinding != null && typeBinding.getJavaElement() instanceof IType type) {
+			return type;
 		}
 
 		return unit.findPrimaryType();
diff --git a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/internal/gradle/checksums/WrapperValidator.java b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/internal/gradle/checksums/WrapperValidator.java
index 08b3224947..e6bc3ad106 100644
--- a/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/internal/gradle/checksums/WrapperValidator.java
+++ b/org.eclipse.jdt.ls.core/src/org/eclipse/jdt/ls/internal/gradle/checksums/WrapperValidator.java
@@ -187,8 +187,7 @@ private void loadInternalChecksums() {
 		if (url != null) {
 			try (InputStream inputStream = url.openStream(); InputStreamReader inputStreamReader = new InputStreamReader(inputStream); Reader reader = new BufferedReader(inputStreamReader)) {
 				JsonElement jsonElement = new JsonParser().parse(reader);
-				if (jsonElement instanceof JsonArray) {
-					JsonArray array = (JsonArray) jsonElement;
+				if (jsonElement instanceof JsonArray array) {
 					for (JsonElement json : array) {
 						String sha256 = json.getAsJsonObject().get("sha256").getAsString();
 						String wrapperChecksumUrl = json.getAsJsonObject().get("wrapperChecksumUrl").getAsString();
@@ -317,21 +316,20 @@ public static void putSha256(List gradleWrapperList) {
 		List sha256Allowed = new ArrayList<>();
 		List sha256Disallowed = new ArrayList<>();
 		for (Object object : gradleWrapperList) {
-			if (object instanceof Map) {
-				Map map = (Map) object;
+			if (object instanceof Map map) {
 				final ChecksumWrapper sha256 = new ChecksumWrapper();
 				sha256.allowed = true;
 				map.forEach((k, v) -> {
-					if (k instanceof String) {
-						switch ((String) k) {
+					if (k instanceof String key) {
+						switch (key) {
 							case "sha256":
-								if (v instanceof String) {
-									sha256.checksum = (String) v;
+								if (v instanceof String value) {
+									sha256.checksum = value;
 								}
 								break;
 							case "allowed":
-								if (v instanceof Boolean) {
-									sha256.allowed = (Boolean) v;
+								if (v instanceof Boolean bool) {
+									sha256.allowed = bool;
 								}
 								break;
 							default: