This is an automated email from the ASF dual-hosted git repository. dbalek pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push: new 29a9e0dc0e Code completion modified to support JDK 21 features. new 1be485f563 Merge pull request #6253 from dbalek/dbalek/jsva-cc-21 29a9e0dc0e is described below commit 29a9e0dc0eb18286fabbcc9137399154df18447e Author: Dusan Balek <dusan.ba...@oracle.com> AuthorDate: Tue Jul 25 16:36:15 2023 +0200 Code completion modified to support JDK 21 features. --- .../netbeans/modules/java/completion/BaseTask.java | 44 +++++ .../java/completion/JavaCompletionTask.java | 208 +++++++++++++++++---- ...Completion_CaseBody_PatternMatchingSwitch.pass} | 45 +++++ ...pletion_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...pletion_CaseLabels_PatternMatchingSwitch_2.pass | 101 ---------- ...pletion_CaseLabels_PatternMatchingSwitch_3.pass | 100 ---------- .../1.8/AutoCompletion_CaseRecordPattern_1.pass | 1 + .../1.8/AutoCompletion_CaseRecordPattern_2.pass | 13 ++ .../1.8/AutoCompletion_CaseRecordPattern_3.pass | 2 + .../1.8/AutoCompletion_CaseRecordPattern_4.pass | 15 ++ ...oCompletion_Guard_PatternMatchingSwitch_1.pass} | 27 ++- ...mbersSelect_GuardedPatternMatchingSwitch_2.pass | 48 ----- ...sSelect_ParenthesizedPatternMatchingSwitch.pass | 39 ---- ...elect_ParenthesizedPatternMatchingSwitch_1.pass | 60 ------ .../1.8/AutoCompletion_RecordPattern_3.pass | 3 +- .../1.8/AutoCompletion_RecordPattern_4.pass | 7 + .../AutoCompletion_RecordPattern_5.pass} | 0 ...on_VarNameSuggestion_PatternMatchingSwitch.pass | 5 +- ...pletion_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...sSelect_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ...elect_ParenthesizedPatternMatchingSwitch_1.pass | 61 ------ ...sSelect_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ...elect_ParenthesizedPatternMatchingSwitch_1.pass | 61 ------ ...pletion_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...pletion_CaseLabels_PatternMatchingSwitch_2.pass | 112 ----------- ...pletion_CaseLabels_PatternMatchingSwitch_3.pass | 111 ----------- ...pletion_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...pletion_CaseLabels_PatternMatchingSwitch_2.pass | 112 ----------- ...pletion_CaseLabels_PatternMatchingSwitch_3.pass | 111 ----------- ...mbersSelect_GuardedPatternMatchingSwitch_2.pass | 51 ----- ...sSelect_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ...elect_ParenthesizedPatternMatchingSwitch_1.pass | 62 ------ ...on_VarNameSuggestion_PatternMatchingSwitch.pass | 2 - ...pletion_CaseLabels_PatternMatchingSwitch_1.pass | 1 - ...pletion_CaseLabels_PatternMatchingSwitch_2.pass | 114 ----------- ...pletion_CaseLabels_PatternMatchingSwitch_3.pass | 113 ----------- .../19/AutoCompletion_CaseRecordPattern_4.pass | 15 ++ ...AutoCompletion_Guard_PatternMatchingSwitch.pass | 1 - ...mbersSelect_GuardedPatternMatchingSwitch_2.pass | 51 ----- ...sSelect_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ...elect_ParenthesizedPatternMatchingSwitch_1.pass | 62 ------ .../19/AutoCompletion_RecordPattern_1.pass | 1 - .../19/AutoCompletion_RecordPattern_2.pass | 1 - ...PatternMatching.java => InstanceofPattern.java} | 24 +-- .../completion/data/SwitchPatternMatching.java | 21 ++- .../JavaCompletionTask116FeaturesTest.java | 47 +++++ .../JavaCompletionTask117FeaturesTest.java | 71 ------- .../JavaCompletionTask119FeaturesTest.java | 61 ------ .../JavaCompletionTask121FeaturesTest.java | 123 ++++++++++++ .../editor/java/JavaCompletionCollector.java | 43 ++++- .../modules/editor/java/JavaCompletionItem.java | 7 +- 51 files changed, 579 insertions(+), 1750 deletions(-) diff --git a/java/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java b/java/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java index a08521df2d..9242e63687 100644 --- a/java/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java +++ b/java/java.completion/src/org/netbeans/modules/java/completion/BaseTask.java @@ -340,10 +340,32 @@ abstract class BaseTask extends UserTask { } if (lastCase != null) { stmts = lastCase.getStatements(); + if (stmts == null || stmts.isEmpty()) { + Tree body = lastCase.getBody(); + if (body != null) { + last = body; + } else { + Tree guard = lastCase.getGuard(); + if (guard != null) { + last = guard; + } + } + } } break; case CASE: stmts = ((CaseTree) path.getLeaf()).getStatements(); + if (stmts == null || stmts.isEmpty()) { + Tree body = ((CaseTree) path.getLeaf()).getBody(); + if (body != null) { + last = body; + } else { + Tree guard = ((CaseTree) path.getLeaf()).getGuard(); + if (guard != null) { + last = guard; + } + } + } break; case CONDITIONAL_AND: case CONDITIONAL_OR: BinaryTree bt = (BinaryTree) last; @@ -482,10 +504,32 @@ abstract class BaseTask extends UserTask { } if (lastCase != null) { stmts = lastCase.getStatements(); + if (stmts == null || stmts.isEmpty()) { + Tree caseBody = lastCase.getBody(); + if (caseBody != null) { + last = caseBody; + } else { + Tree guard = lastCase.getGuard(); + if (guard != null) { + last = guard; + } + } + } } break; case CASE: stmts = ((CaseTree) path.getLeaf()).getStatements(); + if (stmts == null || stmts.isEmpty()) { + Tree caseBody = ((CaseTree) path.getLeaf()).getBody(); + if (caseBody != null) { + last = caseBody; + } else { + Tree guard = ((CaseTree) path.getLeaf()).getGuard(); + if (guard != null) { + last = guard; + } + } + } break; } if (stmts != null) { diff --git a/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java b/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java index c8d760a6d5..eed308f75d 100644 --- a/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java +++ b/java/java.completion/src/org/netbeans/modules/java/completion/JavaCompletionTask.java @@ -55,9 +55,9 @@ import static javax.lang.model.element.ElementKind.*; import static javax.lang.model.element.Modifier.*; import static javax.lang.model.SourceVersion.RELEASE_10; import static javax.lang.model.SourceVersion.RELEASE_11; -import static javax.lang.model.SourceVersion.RELEASE_13; -import static javax.lang.model.SourceVersion.RELEASE_17; +import static javax.lang.model.SourceVersion.RELEASE_16; import static javax.lang.model.SourceVersion.RELEASE_19; +import static javax.lang.model.SourceVersion.RELEASE_21; import static javax.lang.model.type.TypeKind.VOID; /** @@ -1665,10 +1665,10 @@ public final class JavaCompletionTask<T> extends BaseTask { kinds = EnumSet.of(INTERFACE); } else if (parent.getKind() == Tree.Kind.IMPORT) { inImport = true; - kinds = ((ImportTree) parent).isStatic() ? EnumSet.of(CLASS, ENUM, INTERFACE, ANNOTATION_TYPE, FIELD, METHOD, ENUM_CONSTANT) : EnumSet.of(CLASS, ANNOTATION_TYPE, ENUM, INTERFACE); + kinds = ((ImportTree) parent).isStatic() ? EnumSet.of(CLASS, ENUM, INTERFACE, ANNOTATION_TYPE, RECORD, FIELD, METHOD, ENUM_CONSTANT, RECORD_COMPONENT) : EnumSet.of(CLASS, ANNOTATION_TYPE, ENUM, INTERFACE, RECORD); } else if (parent.getKind() == Tree.Kind.NEW_CLASS && ((NewClassTree) parent).getIdentifier() == fa) { insideNew = true; - kinds = EnumSet.of(CLASS, INTERFACE, ANNOTATION_TYPE); + kinds = EnumSet.of(CLASS, INTERFACE, ANNOTATION_TYPE, RECORD); if (grandParent.getKind() == Tree.Kind.THROW) { TypeElement te = controller.getElements().getTypeElement("java.lang.Throwable"); //NOI18N if (te != null) { @@ -1696,14 +1696,14 @@ public final class JavaCompletionTask<T> extends BaseTask { return; } } - kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, FIELD, METHOD, ENUM_CONSTANT); + kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD, FIELD, METHOD, ENUM_CONSTANT, RECORD_COMPONENT); } } else if (parent.getKind() == Tree.Kind.ASSIGNMENT && ((AssignmentTree) parent).getExpression() == fa && grandParent != null && grandParent.getKind() == Tree.Kind.ANNOTATION) { if (type.getKind() == TypeKind.ERROR && el.getKind().isClass()) { el = controller.getElements().getPackageElement(((TypeElement) el).getQualifiedName()); } if (el instanceof PackageElement) { - addPackageContent(env, (PackageElement) el, EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE), null, false, false); + addPackageContent(env, (PackageElement) el, EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD), null, false, false); } else if (type.getKind() == TypeKind.DECLARED) { addMemberConstantsAndTypes(env, (DeclaredType) type, el); } @@ -1719,7 +1719,7 @@ public final class JavaCompletionTask<T> extends BaseTask { baseType = controller.getTypes().getDeclaredType(te); } } else { - kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE); + kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD); } } else if (parent.getKind() == Tree.Kind.METHOD && ((MethodTree) parent).getThrows().contains(fa)) { Types types = controller.getTypes(); @@ -1749,7 +1749,7 @@ public final class JavaCompletionTask<T> extends BaseTask { el = controller.getElements().getPackageElement(((TypeElement) el).getQualifiedName()); } if (el instanceof PackageElement) { - addPackageContent(env, (PackageElement) el, EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE), null, false, false); + addPackageContent(env, (PackageElement) el, EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD), null, false, false); } else if (type.getKind() == TypeKind.DECLARED) { addMemberConstantsAndTypes(env, (DeclaredType) type, el); } @@ -1780,13 +1780,13 @@ public final class JavaCompletionTask<T> extends BaseTask { } kinds = EnumSet.of(INTERFACE, ANNOTATION_TYPE); } else { - kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, FIELD, METHOD, ENUM_CONSTANT); + kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD, FIELD, METHOD, ENUM_CONSTANT, RECORD_COMPONENT); } } else if (afterLt) { kinds = EnumSet.of(METHOD); } else if (parent.getKind() == Tree.Kind.ENHANCED_FOR_LOOP && ((EnhancedForLoopTree) parent).getExpression() == fa) { env.insideForEachExpression(); - kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, FIELD, METHOD, ENUM_CONSTANT); + kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD, FIELD, METHOD, ENUM_CONSTANT, RECORD_COMPONENT); } else if (tu.getPathElementOfKind(Tree.Kind.EXPORTS, path) != null) { kinds = EnumSet.noneOf(ElementKind.class); srcOnly = true; @@ -1795,7 +1795,7 @@ public final class JavaCompletionTask<T> extends BaseTask { } else if (tu.getPathElementOfKind(Tree.Kind.USES, path) != null) { kinds = EnumSet.of(ANNOTATION_TYPE, CLASS, INTERFACE); } else { - kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, FIELD, METHOD, ENUM_CONSTANT); + kinds = EnumSet.of(CLASS, ENUM, ANNOTATION_TYPE, INTERFACE, RECORD, FIELD, METHOD, ENUM_CONSTANT, RECORD_COMPONENT); } switch (type.getKind()) { case TYPEVAR: @@ -1997,8 +1997,56 @@ public final class JavaCompletionTask<T> extends BaseTask { private void insideMethodInvocation(Env env) throws IOException { TreePath path = env.getPath(); MethodInvocationTree mi = (MethodInvocationTree) path.getLeaf(); + String prefix = env.getPrefix(); int offset = env.getOffset(); TokenSequence<JavaTokenId> ts = findLastNonWhitespaceToken(env, mi, offset); + if (path.getParentPath().getLeaf().getKind() == Kind.CONSTANT_CASE_LABEL) { + CompilationController controller = env.getController(); + controller.toPhase(Phase.RESOLVED); + TypeMirror tm = controller.getTreeUtilities().parseType(fullName(mi.getMethodSelect()), env.getScope().getEnclosingClass()); + if (tm != null && tm.getKind() == TypeKind.DECLARED) { + TypeElement te = (TypeElement) ((DeclaredType) tm).asElement(); + if (te.getKind() == RECORD) { + List<? extends RecordComponentElement> recordComponents = te.getRecordComponents(); + int size = mi.getArguments().size(); + if (size <= recordComponents.size()) { + TypeMirror componentType = recordComponents.get(size - 1).getAccessor().getReturnType(); + if (ts != null && (ts.token().id() == JavaTokenId.LPAREN || ts.token().id() == JavaTokenId.COMMA)) { + if (componentType.getKind() == TypeKind.DECLARED) { + if (prefix != null) { + TypeMirror ptm = controller.getTreeUtilities().parseType(prefix, env.getScope().getEnclosingClass()); + if (ptm != null && ptm.getKind() == TypeKind.DECLARED) { + TypeElement pte = (TypeElement) ((DeclaredType) ptm).asElement(); + if (pte != null && pte.getKind() == RECORD) { + results.add(((RecordPatternItemFactory<T>) itemFactory).createRecordPatternItem(controller, pte, (DeclaredType) ptm, anchorOffset, null, controller.getElements().isDeprecated(pte), env.isInsideNew(), env.isInsideNew() || env.isInsideClass())); + env.addToExcludes(pte); + } + } + } + addClassTypes(env, (DeclaredType) componentType); + } + addKeyword(env, VAR_KEYWORD, SPACE, false); + } else { + final Map<Name, ? extends Element> illegalForwardRefs = env.getForwardReferences(); + Scope scope = env.getScope(); + final ExecutableElement method = scope.getEnclosingMethod(); + ElementUtilities.ElementAcceptor acceptor = new ElementUtilities.ElementAcceptor() { + @Override + public boolean accept(Element e, TypeMirror t) { + return (method == null || method == e.getEnclosingElement() || e.getModifiers().contains(FINAL) + || EnumSet.of(LOCAL_VARIABLE, PARAMETER, EXCEPTION_PARAMETER, RESOURCE_VARIABLE).contains(simplifyElementKind(e.getKind())) && controller.getSourceVersion().compareTo(SourceVersion.RELEASE_8) >= 0 && controller.getElementUtilities().isEffectivelyFinal((VariableElement)e)) + && !illegalForwardRefs.containsKey(e.getSimpleName()); + } + }; + for (String name : Utilities.varNamesSuggestions(componentType, LOCAL_VARIABLE, EnumSet.noneOf(Modifier.class), null, prefix, controller.getTypes(), controller.getElements(), controller.getElementUtilities().getLocalMembersAndVars(scope, acceptor), CodeStyle.getDefault(controller.getDocument()))) { + results.add(itemFactory.createVariableItem(env.getController(), name, anchorOffset, true, false)); + } + } + } + return; + } + } + } if (ts == null || (ts.token().id() != JavaTokenId.LPAREN && ts.token().id() != JavaTokenId.COMMA)) { SourcePositions sp = env.getSourcePositions(); CompilationUnitTree root = env.getRoot(); @@ -2015,7 +2063,6 @@ public final class JavaCompletionTask<T> extends BaseTask { } return; } - String prefix = env.getPrefix(); if (prefix == null || prefix.length() == 0) { addMethodArguments(env, mi); } @@ -2412,6 +2459,7 @@ public final class JavaCompletionTask<T> extends BaseTask { int offset = env.getOffset(); TreePath path = env.getPath(); CaseTree cst = (CaseTree) path.getLeaf(); + String prefix = env.getPrefix(); SourcePositions sourcePositions = env.getSourcePositions(); CompilationUnitTree root = env.getRoot(); CompilationController controller = env.getController(); @@ -2433,8 +2481,9 @@ public final class JavaCompletionTask<T> extends BaseTask { if (firstCaseLabelTree != null && ((sourcePositions.getStartPosition(root, firstCaseLabelTree) >= offset) || (caseErroneousTree != null && caseErroneousTree.getKind() == Tree.Kind.ERRONEOUS && ((ErroneousTree) caseErroneousTree).getErrorTrees().isEmpty() && sourcePositions.getEndPosition(root, caseErroneousTree) >= offset))) { - - if (parentPath.getLeaf().getKind() == Tree.Kind.SWITCH || parentPath.getLeaf().getKind() == Kind.SWITCH_EXPRESSION) { + if (firstCaseLabelTree.getKind() == Kind.CONSTANT_CASE_LABEL && ((ConstantCaseLabelTree) firstCaseLabelTree).getConstantExpression().getKind() == Kind.NULL_LITERAL) { + addKeyword(env, DEFAULT_KEYWORD, null, false); + } else if (firstCaseLabelTree.getKind() != Kind.DEFAULT_CASE_LABEL && (parentPath.getLeaf().getKind() == Tree.Kind.SWITCH || parentPath.getLeaf().getKind() == Kind.SWITCH_EXPRESSION)) { ExpressionTree exprTree; if (parentPath.getLeaf().getKind() == Tree.Kind.SWITCH) { exprTree = ((SwitchTree) parentPath.getLeaf()).getExpression(); @@ -2446,18 +2495,35 @@ public final class JavaCompletionTask<T> extends BaseTask { if (((DeclaredType) tm).asElement().getKind() == ENUM) { addEnumConstants(env, (TypeElement) ((DeclaredType) tm).asElement()); } else { - addLocalConstantsAndTypes(env); - if (env.getController().getSourceVersion().compareTo(RELEASE_17) >= 0) { + if (env.getController().getSourceVersion().compareTo(RELEASE_21) >= 0) { + if (prefix != null) { + TypeMirror ptm = controller.getTreeUtilities().parseType(prefix, env.getScope().getEnclosingClass()); + if (ptm != null && ptm.getKind() == TypeKind.DECLARED) { + TypeElement pte = (TypeElement) ((DeclaredType) ptm).asElement(); + if (pte != null && pte.getKind() == RECORD) { + results.add(((RecordPatternItemFactory<T>) itemFactory).createRecordPatternItem(controller, pte, (DeclaredType) ptm, anchorOffset, null, controller.getElements().isDeprecated(pte), env.isInsideNew(), env.isInsideNew() || env.isInsideClass())); + env.addToExcludes(pte); + } + } + } addCaseLabels(env, cst); } + addLocalConstantsAndTypes(env); } } else { addLocalConstantsAndTypes(env); } } } else if (lastCaseLabelTree != null && lastCaseLabelTree.getKind() == Tree.Kind.PATTERN_CASE_LABEL - && env.getController().getSourceVersion().compareTo(RELEASE_19) >= 0 && sourcePositions.getEndPosition(root, firstCaseLabelTree) < offset) { - addKeyword(env, WHEN_KEYWORD, SPACE, false); + && env.getController().getSourceVersion().compareTo(RELEASE_21) >= 0 && cst.getBody() == null) { + if (cst.getGuard() == null) { + addKeyword(env, WHEN_KEYWORD, SPACE, false); + } else { + TokenSequence<JavaTokenId> ts = findLastNonWhitespaceToken(env, cst, offset); + if (ts != null && ts.token().id() == JavaTokenId.IDENTIFIER && WHEN_KEYWORD.contentEquals(ts.token().text())) { + localResult(env); + } + } } else { TokenSequence<JavaTokenId> ts = findLastNonWhitespaceToken(env, cst, offset); if (ts != null && ts.token().id() == JavaTokenId.IDENTIFIER) { @@ -2471,7 +2537,7 @@ public final class JavaCompletionTask<T> extends BaseTask { } } } - } else if (ts != null && ts.token().id() != JavaTokenId.DEFAULT) { + } else if (ts != null && ts.token().id() != JavaTokenId.NULL && ts.token().id() != JavaTokenId.DEFAULT) { localResult(env); addKeywordsForBlock(env); } @@ -2533,9 +2599,21 @@ public final class JavaCompletionTask<T> extends BaseTask { } private void insideTypeCheck(Env env) throws IOException { + CompilationController controller = env.getController(); + String prefix = env.getPrefix(); InstanceOfTree iot = (InstanceOfTree) env.getPath().getLeaf(); TokenSequence<JavaTokenId> ts = findLastNonWhitespaceToken(env, iot, env.getOffset()); if (ts != null && ts.token().id() == JavaTokenId.INSTANCEOF) { + if (prefix != null && controller.getSourceVersion().compareTo(RELEASE_21) >= 0) { + TypeMirror tm = controller.getTreeUtilities().parseType(prefix, env.getScope().getEnclosingClass()); + if (tm != null && tm.getKind() == TypeKind.DECLARED) { + TypeElement te = (TypeElement) ((DeclaredType) tm).asElement(); + if (te != null && te.getKind() == RECORD) { + results.add(((RecordPatternItemFactory<T>) itemFactory).createRecordPatternItem(controller, te, (DeclaredType) tm, anchorOffset, null, controller.getElements().isDeprecated(te), env.isInsideNew(), env.isInsideNew() || env.isInsideClass())); + env.addToExcludes(te); + } + } + } addClassTypes(env, null); } } @@ -2845,6 +2923,26 @@ public final class JavaCompletionTask<T> extends BaseTask { et = ((AnnotatedTypeTree) et).getUnderlyingType(); exPath = new TreePath(exPath, et); } + if (et.getKind() == Tree.Kind.INSTANCE_OF && endPos < offset && controller.getSourceVersion().compareTo(RELEASE_16) >= 0) { + if (((InstanceOfTree) et).getPattern() == null) { + TypeMirror tm = controller.getTrees().getTypeMirror(new TreePath(exPath, ((InstanceOfTree) et).getType())); + final Map<Name, ? extends Element> illegalForwardRefs = env.getForwardReferences(); + Scope scope = env.getScope(); + final ExecutableElement method = scope.getEnclosingMethod(); + ElementUtilities.ElementAcceptor acceptor = new ElementUtilities.ElementAcceptor() { + @Override + public boolean accept(Element e, TypeMirror t) { + return (method == null || method == e.getEnclosingElement() || e.getModifiers().contains(FINAL) + || EnumSet.of(LOCAL_VARIABLE, PARAMETER, EXCEPTION_PARAMETER, RESOURCE_VARIABLE).contains(simplifyElementKind(e.getKind())) && controller.getSourceVersion().compareTo(SourceVersion.RELEASE_8) >= 0 && controller.getElementUtilities().isEffectivelyFinal((VariableElement)e)) + && !illegalForwardRefs.containsKey(e.getSimpleName()); + } + }; + for (String name : Utilities.varNamesSuggestions(tm, varKind, varMods, null, prefix, controller.getTypes(), controller.getElements(), controller.getElementUtilities().getLocalMembersAndVars(scope, acceptor), CodeStyle.getDefault(controller.getDocument()))) { + results.add(itemFactory.createVariableItem(env.getController(), name, anchorOffset, true, false)); + } + } + return; + } if (parent.getKind() != Tree.Kind.PARENTHESIZED && (et.getKind() == Tree.Kind.PRIMITIVE_TYPE || et.getKind() == Tree.Kind.ARRAY_TYPE || et.getKind() == Tree.Kind.PARAMETERIZED_TYPE)) { TypeMirror tm = controller.getTrees().getTypeMirror(exPath); @@ -3068,21 +3166,6 @@ public final class JavaCompletionTask<T> extends BaseTask { } } - private void addClassTypes(final Env env, DeclaredType baseType) throws IOException{ - EnumSet<ElementKind> classKinds = EnumSet.of(CLASS, INTERFACE, ENUM, ANNOTATION_TYPE, TYPE_PARAMETER); - if (isRecordSupported(env)) { - classKinds.add(RECORD); - } - addTypes(env, classKinds, baseType); - } - - private boolean isRecordSupported(final Env env) { - return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_14) >= 0; - } - private boolean isSealedSupported(final Env env) { - return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_15) >= 0; - } - private void insideRecord(Env env) throws IOException { int offset = env.getOffset(); env.insideClass(); @@ -3255,13 +3338,55 @@ public final class JavaCompletionTask<T> extends BaseTask { } private void insideDeconstructionRecordPattern(final Env env) throws IOException { - final CompilationController controller = env.getController(); - final Elements elements = controller.getElements(); - TypeMirror tm = controller.getTreeUtilities().parseType(env.getPrefix(), env.getScope().getEnclosingClass()); - TypeElement e = (TypeElement) ((DeclaredType) tm).asElement(); - if (e.getSimpleName().toString().contentEquals(env.getPrefix()) && (e.getKind() == ElementKind.RECORD)) { - results.add(((RecordPatternItemFactory<T>) itemFactory).createRecordPatternItem(env.getController(), e, (DeclaredType) e.asType(), anchorOffset, null, elements.isDeprecated(e), env.isInsideNew(), env.isInsideNew() || env.isInsideClass())); + DeconstructionPatternTree dpt = (DeconstructionPatternTree) env.getPath().getLeaf(); + int offset = env.getOffset(); + String prefix = env.getPrefix(); + TokenSequence<JavaTokenId> ts = findLastNonWhitespaceToken(env, dpt, offset); + if (ts == null || (ts.token().id() != JavaTokenId.LPAREN && ts.token().id() != JavaTokenId.COMMA)) { + return; } + CompilationController controller = env.getController(); + controller.toPhase(Phase.RESOLVED); + TypeMirror tm = controller.getTrees().getTypeMirror(env.getPath()); + if (tm != null && tm.getKind() == TypeKind.DECLARED) { + TypeElement te = (TypeElement) ((DeclaredType) tm).asElement(); + if (te != null && te.getKind() == RECORD) { + List<? extends RecordComponentElement> recordComponents = te.getRecordComponents(); + int size = dpt.getNestedPatterns().size(); + if (size <= recordComponents.size()) { + TypeMirror componentType = recordComponents.get(size - 1).getAccessor().getReturnType(); + if (componentType.getKind() == TypeKind.DECLARED) { + if (prefix != null) { + TypeMirror ptm = controller.getTreeUtilities().parseType(prefix, env.getScope().getEnclosingClass()); + if (ptm != null && ptm.getKind() == TypeKind.DECLARED) { + TypeElement pte = (TypeElement) ((DeclaredType) ptm).asElement(); + if (pte != null && pte.getKind() == RECORD) { + results.add(((RecordPatternItemFactory<T>) itemFactory).createRecordPatternItem(controller, pte, (DeclaredType) ptm, anchorOffset, null, controller.getElements().isDeprecated(pte), env.isInsideNew(), env.isInsideNew() || env.isInsideClass())); + env.addToExcludes(pte); + } + } + } + addClassTypes(env, (DeclaredType) componentType); + } + addKeyword(env, VAR_KEYWORD, SPACE, false); + } + } + } + } + + private void addClassTypes(final Env env, DeclaredType baseType) throws IOException{ + EnumSet<ElementKind> classKinds = EnumSet.of(CLASS, INTERFACE, ENUM, ANNOTATION_TYPE, TYPE_PARAMETER); + if (isRecordSupported(env)) { + classKinds.add(RECORD); + } + addTypes(env, classKinds, baseType); + } + + private boolean isRecordSupported(final Env env) { + return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_14) >= 0; + } + private boolean isSealedSupported(final Env env) { + return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_15) >= 0; } private void localResult(Env env) throws IOException { @@ -4090,7 +4215,7 @@ public final class JavaCompletionTask<T> extends BaseTask { if (!nullUsed) { addKeyword(env, NULL_KEYWORD, null, false); } - if (!defaultUsed && !patternUsedInCase) { + if (nullUsed && !defaultUsed && !patternUsedInCase) { addKeyword(env, DEFAULT_KEYWORD, null, false); } } @@ -4215,6 +4340,7 @@ public final class JavaCompletionTask<T> extends BaseTask { case ENUM: case INTERFACE: case ANNOTATION_TYPE: + case RECORD: results.add(itemFactory.createTypeItem(env.getController(), (TypeElement) e, (DeclaredType) e.asType(), anchorOffset, null, elements.isDeprecated(e), env.isInsideNew(), env.isInsideNew() || env.isInsideClass(), false, false, false)); env.addToExcludes(e); break; diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseBody_PatternMatchingSwitch.pass similarity index 73% rename from java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass rename to java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseBody_PatternMatchingSwitch.pass index 49639ae8ca..615e4fb668 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseBody_PatternMatchingSwitch.pass @@ -1,3 +1,46 @@ +Integer j +Object obj +Number v +protected native Object clone() +public boolean equals(Object arg0) +protected void finalize() +public final native Class<?> getClass() +public native int hashCode() +public final native void notify() +public final native void notifyAll() +public void op(Object obj) +public String toString() +public final void wait() +public final native void wait(long arg0) +public final void wait(long arg0, int arg1) +assert +boolean +byte +char +class +do +double +final +float +for +if +int +long +new +record +return +short +strictfp +super +switch +synchronized +this +throw +try +var +void +while +yield AbstractMethodError Appendable ArithmeticException @@ -19,6 +62,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -66,6 +110,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass index bb15c49e0d..f9045b5a1b 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass @@ -1,4 +1,3 @@ -default null AbstractMethodError Appendable @@ -21,6 +20,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -64,6 +64,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder Readable diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass deleted file mode 100644 index d42b16a149..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ /dev/null @@ -1,101 +0,0 @@ -default -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LinkageError -Long -Math -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -Readable -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -java diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass deleted file mode 100644 index 33dec11b49..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ /dev/null @@ -1,100 +0,0 @@ -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LinkageError -Long -Math -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -Readable -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -java diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_1.pass new file mode 100644 index 0000000000..3dea321b45 --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_1.pass @@ -0,0 +1 @@ +Point(Number x, Number y) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_2.pass new file mode 100644 index 0000000000..88a361782b --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_2.pass @@ -0,0 +1,13 @@ +var +Byte +Double +Float +Integer +Long +Number +Short +com +java +javax +org +sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_3.pass new file mode 100644 index 0000000000..6da8f92d24 --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_3.pass @@ -0,0 +1,2 @@ +n +number \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_4.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_4.pass new file mode 100644 index 0000000000..da51503791 --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_4.pass @@ -0,0 +1,15 @@ +public byte byteValue() +public abstract double doubleValue() +public boolean equals(Object arg0) +public abstract float floatValue() +public final native Class<?> getClass() +public native int hashCode() +public abstract int intValue() +public abstract long longValue() +public final native void notify() +public final native void notifyAll() +public short shortValue() +public String toString() +public final void wait() +public final native void wait(long arg0) +public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_Guard_PatternMatchingSwitch_1.pass similarity index 77% rename from java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass rename to java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_Guard_PatternMatchingSwitch_1.pass index b76a424913..572d58beba 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_Guard_PatternMatchingSwitch_1.pass @@ -1,4 +1,27 @@ -default +Object obj +CharSequence s +protected native Object clone() +public boolean equals(Object arg0) +protected void finalize() +public final native Class<?> getClass() +public native int hashCode() +public final native void notify() +public final native void notifyAll() +public void op(Object obj) +public String toString() +public final void wait() +public final native void wait(long arg0) +public final void wait(long arg0, int arg1) +boolean +byte +char +double +float +int +long +short +super +this AbstractMethodError Appendable ArithmeticException @@ -20,6 +43,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -67,6 +91,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass deleted file mode 100644 index 9458e5c242..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass +++ /dev/null @@ -1,48 +0,0 @@ -public abstract boolean allMatch(IntPredicate arg0) -public abstract boolean anyMatch(IntPredicate arg0) -public abstract R collect(Supplier<R> arg0, ObjIntConsumer<R> arg1, BiConsumer<R, R> arg2) -public boolean equals(Object arg0) -public abstract boolean isParallel() -public abstract boolean noneMatch(IntPredicate arg0) -public abstract DoubleStream asDoubleStream() -public abstract LongStream asLongStream() -public abstract OptionalDouble average() -public abstract Stream<Integer> boxed() -public abstract void close() -public abstract long count() -public abstract IntStream distinct() -public abstract IntStream filter(IntPredicate arg0) -public abstract OptionalInt findAny() -public abstract OptionalInt findFirst() -public abstract IntStream flatMap(IntFunction<? extends IntStream> arg0) -public abstract void forEach(IntConsumer arg0) -public abstract void forEachOrdered(IntConsumer arg0) -public final native Class<?> getClass() -public native int hashCode() -public abstract OfInt iterator() -public abstract IntStream limit(long arg0) -public abstract IntStream map(IntUnaryOperator arg0) -public abstract DoubleStream mapToDouble(IntToDoubleFunction arg0) -public abstract LongStream mapToLong(IntToLongFunction arg0) -public abstract Stream<U> mapToObj(IntFunction<? extends U> arg0) -public abstract OptionalInt max() -public abstract OptionalInt min() -public final native void notify() -public final native void notifyAll() -public abstract IntStream onClose(Runnable arg0) -public abstract IntStream parallel() -public abstract IntStream peek(IntConsumer arg0) -public abstract OptionalInt reduce(IntBinaryOperator arg0) -public abstract int reduce(int arg0, IntBinaryOperator arg1) -public abstract IntStream sequential() -public abstract IntStream skip(long arg0) -public abstract IntStream sorted() -public abstract OfInt spliterator() -public abstract int sum() -public abstract IntSummaryStatistics summaryStatistics() -public abstract int[] toArray() -public String toString() -public abstract IntStream unordered() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass deleted file mode 100644 index 92bc4479c9..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass +++ /dev/null @@ -1,39 +0,0 @@ -public abstract boolean add(Object arg0) -public abstract void add(int arg0, Object arg1) -public abstract boolean addAll(Collection arg0) -public abstract boolean addAll(int arg0, Collection arg1) -public abstract void clear() -public abstract boolean contains(Object arg0) -public abstract boolean containsAll(Collection arg0) -public abstract boolean equals(Object arg0) -public default void forEach(Consumer arg0) -public abstract Object get(int arg0) -public final native Class<?> getClass() -public abstract int hashCode() -public abstract int indexOf(Object arg0) -public abstract boolean isEmpty() -public abstract Iterator iterator() -public abstract int lastIndexOf(Object arg0) -public abstract ListIterator listIterator() -public abstract ListIterator listIterator(int arg0) -public final native void notify() -public final native void notifyAll() -public default Stream parallelStream() -public abstract boolean remove(Object arg0) -public abstract Object remove(int arg0) -public abstract boolean removeAll(Collection arg0) -public default boolean removeIf(Predicate arg0) -public default void replaceAll(UnaryOperator arg0) -public abstract boolean retainAll(Collection arg0) -public abstract Object set(int arg0, Object arg1) -public abstract int size() -public default void sort(Comparator arg0) -public default Spliterator spliterator() -public default Stream stream() -public abstract List subList(int arg0, int arg1) -public abstract Object[] toArray() -public abstract Object[] toArray(Object[] arg0) -public String toString() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass deleted file mode 100644 index a00086d15c..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass +++ /dev/null @@ -1,60 +0,0 @@ -public boolean equals(Object arg0) -public StringBuilder append(CharSequence arg0) -public StringBuilder append(Object arg0) -public StringBuilder append(String arg0) -public StringBuilder append(StringBuffer arg0) -public StringBuilder append(boolean arg0) -public StringBuilder append(char arg0) -public StringBuilder append(char[] arg0) -public StringBuilder append(double arg0) -public StringBuilder append(float arg0) -public StringBuilder append(int arg0) -public StringBuilder append(long arg0) -public StringBuilder append(CharSequence arg0, int arg1, int arg2) -public StringBuilder append(char[] arg0, int arg1, int arg2) -public StringBuilder appendCodePoint(int arg0) -public int capacity() -public char charAt(int arg0) -public default IntStream chars() -public int codePointAt(int arg0) -public int codePointBefore(int arg0) -public int codePointCount(int arg0, int arg1) -public default IntStream codePoints() -public StringBuilder delete(int arg0, int arg1) -public StringBuilder deleteCharAt(int arg0) -public void ensureCapacity(int arg0) -public void getChars(int arg0, int arg1, char[] arg2, int arg3) -public final native Class<?> getClass() -public native int hashCode() -public int indexOf(String arg0) -public int indexOf(String arg0, int arg1) -public StringBuilder insert(int arg0, CharSequence arg1) -public StringBuilder insert(int arg0, Object arg1) -public StringBuilder insert(int arg0, String arg1) -public StringBuilder insert(int arg0, boolean arg1) -public StringBuilder insert(int arg0, char arg1) -public StringBuilder insert(int arg0, char[] arg1) -public StringBuilder insert(int arg0, double arg1) -public StringBuilder insert(int arg0, float arg1) -public StringBuilder insert(int arg0, int arg1) -public StringBuilder insert(int arg0, long arg1) -public StringBuilder insert(int arg0, CharSequence arg1, int arg2, int arg3) -public StringBuilder insert(int arg0, char[] arg1, int arg2, int arg3) -public int lastIndexOf(String arg0) -public int lastIndexOf(String arg0, int arg1) -public int length() -public final native void notify() -public final native void notifyAll() -public int offsetByCodePoints(int arg0, int arg1) -public StringBuilder replace(int arg0, int arg1, String arg2) -public StringBuilder reverse() -public void setCharAt(int arg0, char arg1) -public void setLength(int arg0) -public CharSequence subSequence(int arg0, int arg1) -public String substring(int arg0) -public String substring(int arg0, int arg1) -public String toString() -public void trimToSize() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_3.pass index 3cd138f22b..a953806cd3 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_3.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_3.pass @@ -1 +1,2 @@ -ColoredPoint(Point p, Color c) \ No newline at end of file +r +rect \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_4.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_4.pass new file mode 100644 index 0000000000..6198e4d751 --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_4.pass @@ -0,0 +1,7 @@ +var +ColoredPoint +com +java +javax +org +sun \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_5.pass similarity index 100% rename from java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_3.pass rename to java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_5.pass diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass index d5fbcfcc54..62f872ac4c 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass @@ -1,2 +1,3 @@ -s -string \ No newline at end of file +charSequence +cs +sequence \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass index 94d510bf1d..3430af43ab 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass @@ -1,4 +1,3 @@ -default null AbstractMethodError Appendable @@ -21,6 +20,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -68,6 +68,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass deleted file mode 100644 index 10c56d9563..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass +++ /dev/null @@ -1,40 +0,0 @@ -public abstract boolean add(Object arg0) -public abstract void add(int arg0, Object arg1) -public abstract boolean addAll(Collection arg0) -public abstract boolean addAll(int arg0, Collection arg1) -public abstract void clear() -public abstract boolean contains(Object arg0) -public abstract boolean containsAll(Collection arg0) -public abstract boolean equals(Object arg0) -public default void forEach(Consumer arg0) -public abstract Object get(int arg0) -public final native Class<?> getClass() -public abstract int hashCode() -public abstract int indexOf(Object arg0) -public abstract boolean isEmpty() -public abstract Iterator iterator() -public abstract int lastIndexOf(Object arg0) -public abstract ListIterator listIterator() -public abstract ListIterator listIterator(int arg0) -public final native void notify() -public final native void notifyAll() -public default Stream parallelStream() -public abstract boolean remove(Object arg0) -public abstract Object remove(int arg0) -public abstract boolean removeAll(Collection arg0) -public default boolean removeIf(Predicate arg0) -public default void replaceAll(UnaryOperator arg0) -public abstract boolean retainAll(Collection arg0) -public abstract Object set(int arg0, Object arg1) -public abstract int size() -public default void sort(Comparator arg0) -public default Spliterator spliterator() -public default Stream stream() -public abstract List subList(int arg0, int arg1) -public abstract Object[] toArray() -public default Object[] toArray(IntFunction arg0) -public abstract Object[] toArray(Object[] arg0) -public String toString() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass deleted file mode 100644 index ba9879eb0b..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass +++ /dev/null @@ -1,61 +0,0 @@ -public boolean equals(Object arg0) -public StringBuilder append(CharSequence arg0) -public StringBuilder append(Object arg0) -public StringBuilder append(String arg0) -public StringBuilder append(StringBuffer arg0) -public StringBuilder append(boolean arg0) -public StringBuilder append(char arg0) -public StringBuilder append(char[] arg0) -public StringBuilder append(double arg0) -public StringBuilder append(float arg0) -public StringBuilder append(int arg0) -public StringBuilder append(long arg0) -public StringBuilder append(CharSequence arg0, int arg1, int arg2) -public StringBuilder append(char[] arg0, int arg1, int arg2) -public StringBuilder appendCodePoint(int arg0) -public int capacity() -public char charAt(int arg0) -public IntStream chars() -public int codePointAt(int arg0) -public int codePointBefore(int arg0) -public int codePointCount(int arg0, int arg1) -public IntStream codePoints() -public int compareTo(StringBuilder arg0) -public StringBuilder delete(int arg0, int arg1) -public StringBuilder deleteCharAt(int arg0) -public void ensureCapacity(int arg0) -public void getChars(int arg0, int arg1, char[] arg2, int arg3) -public final native Class<?> getClass() -public native int hashCode() -public int indexOf(String arg0) -public int indexOf(String arg0, int arg1) -public StringBuilder insert(int arg0, CharSequence arg1) -public StringBuilder insert(int arg0, Object arg1) -public StringBuilder insert(int arg0, String arg1) -public StringBuilder insert(int arg0, boolean arg1) -public StringBuilder insert(int arg0, char arg1) -public StringBuilder insert(int arg0, char[] arg1) -public StringBuilder insert(int arg0, double arg1) -public StringBuilder insert(int arg0, float arg1) -public StringBuilder insert(int arg0, int arg1) -public StringBuilder insert(int arg0, long arg1) -public StringBuilder insert(int arg0, CharSequence arg1, int arg2, int arg3) -public StringBuilder insert(int arg0, char[] arg1, int arg2, int arg3) -public int lastIndexOf(String arg0) -public int lastIndexOf(String arg0, int arg1) -public int length() -public final native void notify() -public final native void notifyAll() -public int offsetByCodePoints(int arg0, int arg1) -public StringBuilder replace(int arg0, int arg1, String arg2) -public StringBuilder reverse() -public void setCharAt(int arg0, char arg1) -public void setLength(int arg0) -public CharSequence subSequence(int arg0, int arg1) -public String substring(int arg0) -public String substring(int arg0, int arg1) -public String toString() -public void trimToSize() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass deleted file mode 100644 index 10c56d9563..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass +++ /dev/null @@ -1,40 +0,0 @@ -public abstract boolean add(Object arg0) -public abstract void add(int arg0, Object arg1) -public abstract boolean addAll(Collection arg0) -public abstract boolean addAll(int arg0, Collection arg1) -public abstract void clear() -public abstract boolean contains(Object arg0) -public abstract boolean containsAll(Collection arg0) -public abstract boolean equals(Object arg0) -public default void forEach(Consumer arg0) -public abstract Object get(int arg0) -public final native Class<?> getClass() -public abstract int hashCode() -public abstract int indexOf(Object arg0) -public abstract boolean isEmpty() -public abstract Iterator iterator() -public abstract int lastIndexOf(Object arg0) -public abstract ListIterator listIterator() -public abstract ListIterator listIterator(int arg0) -public final native void notify() -public final native void notifyAll() -public default Stream parallelStream() -public abstract boolean remove(Object arg0) -public abstract Object remove(int arg0) -public abstract boolean removeAll(Collection arg0) -public default boolean removeIf(Predicate arg0) -public default void replaceAll(UnaryOperator arg0) -public abstract boolean retainAll(Collection arg0) -public abstract Object set(int arg0, Object arg1) -public abstract int size() -public default void sort(Comparator arg0) -public default Spliterator spliterator() -public default Stream stream() -public abstract List subList(int arg0, int arg1) -public abstract Object[] toArray() -public default Object[] toArray(IntFunction arg0) -public abstract Object[] toArray(Object[] arg0) -public String toString() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass deleted file mode 100644 index ba9879eb0b..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass +++ /dev/null @@ -1,61 +0,0 @@ -public boolean equals(Object arg0) -public StringBuilder append(CharSequence arg0) -public StringBuilder append(Object arg0) -public StringBuilder append(String arg0) -public StringBuilder append(StringBuffer arg0) -public StringBuilder append(boolean arg0) -public StringBuilder append(char arg0) -public StringBuilder append(char[] arg0) -public StringBuilder append(double arg0) -public StringBuilder append(float arg0) -public StringBuilder append(int arg0) -public StringBuilder append(long arg0) -public StringBuilder append(CharSequence arg0, int arg1, int arg2) -public StringBuilder append(char[] arg0, int arg1, int arg2) -public StringBuilder appendCodePoint(int arg0) -public int capacity() -public char charAt(int arg0) -public IntStream chars() -public int codePointAt(int arg0) -public int codePointBefore(int arg0) -public int codePointCount(int arg0, int arg1) -public IntStream codePoints() -public int compareTo(StringBuilder arg0) -public StringBuilder delete(int arg0, int arg1) -public StringBuilder deleteCharAt(int arg0) -public void ensureCapacity(int arg0) -public void getChars(int arg0, int arg1, char[] arg2, int arg3) -public final native Class<?> getClass() -public native int hashCode() -public int indexOf(String arg0) -public int indexOf(String arg0, int arg1) -public StringBuilder insert(int arg0, CharSequence arg1) -public StringBuilder insert(int arg0, Object arg1) -public StringBuilder insert(int arg0, String arg1) -public StringBuilder insert(int arg0, boolean arg1) -public StringBuilder insert(int arg0, char arg1) -public StringBuilder insert(int arg0, char[] arg1) -public StringBuilder insert(int arg0, double arg1) -public StringBuilder insert(int arg0, float arg1) -public StringBuilder insert(int arg0, int arg1) -public StringBuilder insert(int arg0, long arg1) -public StringBuilder insert(int arg0, CharSequence arg1, int arg2, int arg3) -public StringBuilder insert(int arg0, char[] arg1, int arg2, int arg3) -public int lastIndexOf(String arg0) -public int lastIndexOf(String arg0, int arg1) -public int length() -public final native void notify() -public final native void notifyAll() -public int offsetByCodePoints(int arg0, int arg1) -public StringBuilder replace(int arg0, int arg1, String arg2) -public StringBuilder reverse() -public void setCharAt(int arg0, char arg1) -public void setLength(int arg0) -public CharSequence subSequence(int arg0, int arg1) -public String substring(int arg0) -public String substring(int arg0, int arg1) -public String toString() -public void trimToSize() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass index 94f7b02274..14faa59aa0 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass @@ -1,4 +1,3 @@ -default null AbstractMethodError Appendable @@ -21,6 +20,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -68,6 +68,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass deleted file mode 100644 index 974c82f0f1..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ /dev/null @@ -1,112 +0,0 @@ -default -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass deleted file mode 100644 index d7afe4d119..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/14/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ /dev/null @@ -1,111 +0,0 @@ -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass index 94f7b02274..14faa59aa0 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass @@ -1,4 +1,3 @@ -default null AbstractMethodError Appendable @@ -21,6 +20,7 @@ ClassNotFoundException ClassValue CloneNotSupportedException Cloneable +Color Comparable Compiler Deprecated @@ -68,6 +68,7 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass deleted file mode 100644 index 974c82f0f1..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ /dev/null @@ -1,112 +0,0 @@ -default -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass deleted file mode 100644 index d7afe4d119..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ /dev/null @@ -1,111 +0,0 @@ -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass deleted file mode 100644 index f29c24e3fa..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass +++ /dev/null @@ -1,51 +0,0 @@ -public abstract boolean allMatch(IntPredicate arg0) -public abstract boolean anyMatch(IntPredicate arg0) -public abstract R collect(Supplier<R> arg0, ObjIntConsumer<R> arg1, BiConsumer<R, R> arg2) -public boolean equals(Object arg0) -public abstract boolean isParallel() -public abstract boolean noneMatch(IntPredicate arg0) -public abstract DoubleStream asDoubleStream() -public abstract LongStream asLongStream() -public abstract OptionalDouble average() -public abstract Stream<Integer> boxed() -public abstract void close() -public abstract long count() -public abstract IntStream distinct() -public default IntStream dropWhile(IntPredicate arg0) -public abstract IntStream filter(IntPredicate arg0) -public abstract OptionalInt findAny() -public abstract OptionalInt findFirst() -public abstract IntStream flatMap(IntFunction<? extends IntStream> arg0) -public abstract void forEach(IntConsumer arg0) -public abstract void forEachOrdered(IntConsumer arg0) -public final native Class<?> getClass() -public native int hashCode() -public abstract OfInt iterator() -public abstract IntStream limit(long arg0) -public abstract IntStream map(IntUnaryOperator arg0) -public default IntStream mapMulti(IntMapMultiConsumer arg0) -public abstract DoubleStream mapToDouble(IntToDoubleFunction arg0) -public abstract LongStream mapToLong(IntToLongFunction arg0) -public abstract Stream<U> mapToObj(IntFunction<? extends U> arg0) -public abstract OptionalInt max() -public abstract OptionalInt min() -public final native void notify() -public final native void notifyAll() -public abstract IntStream onClose(Runnable arg0) -public abstract IntStream parallel() -public abstract IntStream peek(IntConsumer arg0) -public abstract OptionalInt reduce(IntBinaryOperator arg0) -public abstract int reduce(int arg0, IntBinaryOperator arg1) -public abstract IntStream sequential() -public abstract IntStream skip(long arg0) -public abstract IntStream sorted() -public abstract OfInt spliterator() -public abstract int sum() -public abstract IntSummaryStatistics summaryStatistics() -public default IntStream takeWhile(IntPredicate arg0) -public abstract int[] toArray() -public String toString() -public abstract IntStream unordered() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass deleted file mode 100644 index 10c56d9563..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass +++ /dev/null @@ -1,40 +0,0 @@ -public abstract boolean add(Object arg0) -public abstract void add(int arg0, Object arg1) -public abstract boolean addAll(Collection arg0) -public abstract boolean addAll(int arg0, Collection arg1) -public abstract void clear() -public abstract boolean contains(Object arg0) -public abstract boolean containsAll(Collection arg0) -public abstract boolean equals(Object arg0) -public default void forEach(Consumer arg0) -public abstract Object get(int arg0) -public final native Class<?> getClass() -public abstract int hashCode() -public abstract int indexOf(Object arg0) -public abstract boolean isEmpty() -public abstract Iterator iterator() -public abstract int lastIndexOf(Object arg0) -public abstract ListIterator listIterator() -public abstract ListIterator listIterator(int arg0) -public final native void notify() -public final native void notifyAll() -public default Stream parallelStream() -public abstract boolean remove(Object arg0) -public abstract Object remove(int arg0) -public abstract boolean removeAll(Collection arg0) -public default boolean removeIf(Predicate arg0) -public default void replaceAll(UnaryOperator arg0) -public abstract boolean retainAll(Collection arg0) -public abstract Object set(int arg0, Object arg1) -public abstract int size() -public default void sort(Comparator arg0) -public default Spliterator spliterator() -public default Stream stream() -public abstract List subList(int arg0, int arg1) -public abstract Object[] toArray() -public default Object[] toArray(IntFunction arg0) -public abstract Object[] toArray(Object[] arg0) -public String toString() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass deleted file mode 100644 index 80d9da227c..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass +++ /dev/null @@ -1,62 +0,0 @@ -public boolean equals(Object arg0) -public default boolean isEmpty() -public StringBuilder append(CharSequence arg0) -public StringBuilder append(Object arg0) -public StringBuilder append(String arg0) -public StringBuilder append(StringBuffer arg0) -public StringBuilder append(boolean arg0) -public StringBuilder append(char arg0) -public StringBuilder append(char[] arg0) -public StringBuilder append(double arg0) -public StringBuilder append(float arg0) -public StringBuilder append(int arg0) -public StringBuilder append(long arg0) -public StringBuilder append(CharSequence arg0, int arg1, int arg2) -public StringBuilder append(char[] arg0, int arg1, int arg2) -public StringBuilder appendCodePoint(int arg0) -public int capacity() -public char charAt(int arg0) -public IntStream chars() -public int codePointAt(int arg0) -public int codePointBefore(int arg0) -public int codePointCount(int arg0, int arg1) -public IntStream codePoints() -public int compareTo(StringBuilder arg0) -public StringBuilder delete(int arg0, int arg1) -public StringBuilder deleteCharAt(int arg0) -public void ensureCapacity(int arg0) -public void getChars(int arg0, int arg1, char[] arg2, int arg3) -public final native Class<?> getClass() -public native int hashCode() -public int indexOf(String arg0) -public int indexOf(String arg0, int arg1) -public StringBuilder insert(int arg0, CharSequence arg1) -public StringBuilder insert(int arg0, Object arg1) -public StringBuilder insert(int arg0, String arg1) -public StringBuilder insert(int arg0, boolean arg1) -public StringBuilder insert(int arg0, char arg1) -public StringBuilder insert(int arg0, char[] arg1) -public StringBuilder insert(int arg0, double arg1) -public StringBuilder insert(int arg0, float arg1) -public StringBuilder insert(int arg0, int arg1) -public StringBuilder insert(int arg0, long arg1) -public StringBuilder insert(int arg0, CharSequence arg1, int arg2, int arg3) -public StringBuilder insert(int arg0, char[] arg1, int arg2, int arg3) -public int lastIndexOf(String arg0) -public int lastIndexOf(String arg0, int arg1) -public int length() -public final native void notify() -public final native void notifyAll() -public int offsetByCodePoints(int arg0, int arg1) -public StringBuilder replace(int arg0, int arg1, String arg2) -public StringBuilder reverse() -public void setCharAt(int arg0, char arg1) -public void setLength(int arg0) -public CharSequence subSequence(int arg0, int arg1) -public String substring(int arg0) -public String substring(int arg0, int arg1) -public String toString() -public void trimToSize() -public final void wait() -public final native void wait(long arg0) -public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass deleted file mode 100644 index d5fbcfcc54..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass +++ /dev/null @@ -1,2 +0,0 @@ -s -string \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass index 3899b3092f..cc1f630047 100644 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass @@ -1,4 +1,3 @@ -default null AbstractMethodError Appendable diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass deleted file mode 100644 index effe0050d3..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ /dev/null @@ -1,114 +0,0 @@ -default -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -MatchException -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -WrongThreadException -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass deleted file mode 100644 index 8f3cc16bbd..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ /dev/null @@ -1,113 +0,0 @@ -AbstractMethodError -Appendable -ArithmeticException -ArrayIndexOutOfBoundsException -ArrayStoreException -AssertionError -AutoCloseable -Boolean -BootstrapMethodError -Byte -CharSequence -Character -Class -ClassCastException -ClassCircularityError -ClassFormatError -ClassLoader -ClassNotFoundException -ClassValue -CloneNotSupportedException -Cloneable -Comparable -Compiler -Deprecated -Double -Enum -EnumConstantNotPresentException -Error -Exception -ExceptionInInitializerError -Float -FunctionalInterface -IllegalAccessError -IllegalAccessException -IllegalArgumentException -IllegalCallerException -IllegalMonitorStateException -IllegalStateException -IllegalThreadStateException -IncompatibleClassChangeError -IndexOutOfBoundsException -InheritableThreadLocal -InstantiationError -InstantiationException -IntStream -Integer -InternalError -InterruptedException -Iterable -LayerInstantiationException -LinkageError -Long -MatchException -Math -Module -ModuleLayer -NegativeArraySizeException -NoClassDefFoundError -NoSuchFieldError -NoSuchFieldException -NoSuchMethodError -NoSuchMethodException -NullPointerException -Number -NumberFormatException -Object -OutOfMemoryError -Override -Package -Process -ProcessBuilder -ProcessHandle -Readable -Record -ReflectiveOperationException -Runnable -Runtime -RuntimeException -RuntimePermission -SafeVarargs -SecurityException -SecurityManager -Short -StackOverflowError -StackTraceElement -StackWalker -StrictMath -String -StringBuffer -StringBuilder -StringIndexOutOfBoundsException -SuppressWarnings -System -Test -Thread -ThreadDeath -ThreadGroup -ThreadLocal -Throwable -TypeNotPresentException -UnknownError -UnsatisfiedLinkError -UnsupportedClassVersionError -UnsupportedOperationException -VerifyError -VirtualMachineError -Void -WrongThreadException -com -java -javax -org -sun diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseRecordPattern_4.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseRecordPattern_4.pass new file mode 100644 index 0000000000..d35ff815ed --- /dev/null +++ b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseRecordPattern_4.pass @@ -0,0 +1,15 @@ +public byte byteValue() +public abstract double doubleValue() +public boolean equals(Object arg0) +public abstract float floatValue() +public final native Class<?> getClass() +public native int hashCode() +public abstract int intValue() +public abstract long longValue() +public final native void notify() +public final native void notifyAll() +public short shortValue() +public String toString() +public final void wait() +public final void wait(long arg0) +public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_Guard_PatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_Guard_PatternMatchingSwitch.pass deleted file mode 100644 index 8685dd8edf..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_Guard_PatternMatchingSwitch.pass +++ /dev/null @@ -1 +0,0 @@ -when diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass deleted file mode 100644 index ac147772ff..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass +++ /dev/null @@ -1,51 +0,0 @@ -public abstract boolean allMatch(IntPredicate arg0) -public abstract boolean anyMatch(IntPredicate arg0) -public abstract R collect(Supplier<R> arg0, ObjIntConsumer<R> arg1, BiConsumer<R, R> arg2) -public boolean equals(Object arg0) -public abstract boolean isParallel() -public abstract boolean noneMatch(IntPredicate arg0) -public abstract DoubleStream asDoubleStream() -public abstract LongStream asLongStream() -public abstract OptionalDouble average() -public abstract Stream<Integer> boxed() -public abstract void close() -public abstract long count() -public abstract IntStream distinct() -public default IntStream dropWhile(IntPredicate arg0) -public abstract IntStream filter(IntPredicate arg0) -public abstract OptionalInt findAny() -public abstract OptionalInt findFirst() -public abstract IntStream flatMap(IntFunction<? extends IntStream> arg0) -public abstract void forEach(IntConsumer arg0) -public abstract void forEachOrdered(IntConsumer arg0) -public final native Class<?> getClass() -public native int hashCode() -public abstract OfInt iterator() -public abstract IntStream limit(long arg0) -public abstract IntStream map(IntUnaryOperator arg0) -public default IntStream mapMulti(IntMapMultiConsumer arg0) -public abstract DoubleStream mapToDouble(IntToDoubleFunction arg0) -public abstract LongStream mapToLong(IntToLongFunction arg0) -public abstract Stream<U> mapToObj(IntFunction<? extends U> arg0) -public abstract OptionalInt max() -public abstract OptionalInt min() -public final native void notify() -public final native void notifyAll() -public abstract IntStream onClose(Runnable arg0) -public abstract IntStream parallel() -public abstract IntStream peek(IntConsumer arg0) -public abstract OptionalInt reduce(IntBinaryOperator arg0) -public abstract int reduce(int arg0, IntBinaryOperator arg1) -public abstract IntStream sequential() -public abstract IntStream skip(long arg0) -public abstract IntStream sorted() -public abstract OfInt spliterator() -public abstract int sum() -public abstract IntSummaryStatistics summaryStatistics() -public default IntStream takeWhile(IntPredicate arg0) -public abstract int[] toArray() -public String toString() -public abstract IntStream unordered() -public final void wait() -public final void wait(long arg0) -public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass deleted file mode 100644 index 2dcd4d253c..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass +++ /dev/null @@ -1,40 +0,0 @@ -public abstract boolean add(Object arg0) -public abstract void add(int arg0, Object arg1) -public abstract boolean addAll(Collection arg0) -public abstract boolean addAll(int arg0, Collection arg1) -public abstract void clear() -public abstract boolean contains(Object arg0) -public abstract boolean containsAll(Collection arg0) -public abstract boolean equals(Object arg0) -public default void forEach(Consumer arg0) -public abstract Object get(int arg0) -public final native Class<?> getClass() -public abstract int hashCode() -public abstract int indexOf(Object arg0) -public abstract boolean isEmpty() -public abstract Iterator iterator() -public abstract int lastIndexOf(Object arg0) -public abstract ListIterator listIterator() -public abstract ListIterator listIterator(int arg0) -public final native void notify() -public final native void notifyAll() -public default Stream parallelStream() -public abstract boolean remove(Object arg0) -public abstract Object remove(int arg0) -public abstract boolean removeAll(Collection arg0) -public default boolean removeIf(Predicate arg0) -public default void replaceAll(UnaryOperator arg0) -public abstract boolean retainAll(Collection arg0) -public abstract Object set(int arg0, Object arg1) -public abstract int size() -public default void sort(Comparator arg0) -public default Spliterator spliterator() -public default Stream stream() -public abstract List subList(int arg0, int arg1) -public abstract Object[] toArray() -public default Object[] toArray(IntFunction arg0) -public abstract Object[] toArray(Object[] arg0) -public String toString() -public final void wait() -public final void wait(long arg0) -public final void wait(long arg0, int arg1) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass deleted file mode 100644 index 5273a759e0..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass +++ /dev/null @@ -1,62 +0,0 @@ -public boolean equals(Object arg0) -public default boolean isEmpty() -public StringBuilder append(CharSequence arg0) -public StringBuilder append(Object arg0) -public StringBuilder append(String arg0) -public StringBuilder append(StringBuffer arg0) -public StringBuilder append(boolean arg0) -public StringBuilder append(char arg0) -public StringBuilder append(char[] arg0) -public StringBuilder append(double arg0) -public StringBuilder append(float arg0) -public StringBuilder append(int arg0) -public StringBuilder append(long arg0) -public StringBuilder append(CharSequence arg0, int arg1, int arg2) -public StringBuilder append(char[] arg0, int arg1, int arg2) -public StringBuilder appendCodePoint(int arg0) -public int capacity() -public char charAt(int arg0) -public IntStream chars() -public int codePointAt(int arg0) -public int codePointBefore(int arg0) -public int codePointCount(int arg0, int arg1) -public IntStream codePoints() -public int compareTo(StringBuilder arg0) -public StringBuilder delete(int arg0, int arg1) -public StringBuilder deleteCharAt(int arg0) -public void ensureCapacity(int arg0) -public void getChars(int arg0, int arg1, char[] arg2, int arg3) -public final native Class<?> getClass() -public native int hashCode() -public int indexOf(String arg0) -public int indexOf(String arg0, int arg1) -public StringBuilder insert(int arg0, CharSequence arg1) -public StringBuilder insert(int arg0, Object arg1) -public StringBuilder insert(int arg0, String arg1) -public StringBuilder insert(int arg0, boolean arg1) -public StringBuilder insert(int arg0, char arg1) -public StringBuilder insert(int arg0, char[] arg1) -public StringBuilder insert(int arg0, double arg1) -public StringBuilder insert(int arg0, float arg1) -public StringBuilder insert(int arg0, int arg1) -public StringBuilder insert(int arg0, long arg1) -public StringBuilder insert(int arg0, CharSequence arg1, int arg2, int arg3) -public StringBuilder insert(int arg0, char[] arg1, int arg2, int arg3) -public int lastIndexOf(String arg0) -public int lastIndexOf(String arg0, int arg1) -public int length() -public final native void notify() -public final native void notifyAll() -public int offsetByCodePoints(int arg0, int arg1) -public StringBuilder replace(int arg0, int arg1, String arg2) -public StringBuilder reverse() -public void setCharAt(int arg0, char arg1) -public void setLength(int arg0) -public CharSequence subSequence(int arg0, int arg1) -public String substring(int arg0) -public String substring(int arg0, int arg1) -public String toString() -public void trimToSize() -public final void wait() -public final void wait(long arg0) -public final void wait(long arg0, int arg1) diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_1.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_1.pass deleted file mode 100644 index 6daf41cb8c..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_1.pass +++ /dev/null @@ -1 +0,0 @@ -Person(String name, int a) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_2.pass deleted file mode 100644 index a1346a9156..0000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_2.pass +++ /dev/null @@ -1 +0,0 @@ -Rect(ColoredPoint upperLeft, ColoredPoint lr) \ No newline at end of file diff --git a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java similarity index 60% copy from java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java copy to java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java index d5edee7db2..9e3476facc 100644 --- a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java +++ b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java @@ -17,22 +17,10 @@ * under the License. */ -package test; - -import java.util.stream.IntStream; - -public class Test{ - - public void op(int a) { - Object obj = "test"; - String result = switch (obj) { - case null, String -> - "null & String"; - case CharSequence s when s. && obj. && IntStream.of(1).max().-> - "CharSequence"; - case java.util.List list when list. && new StringBuilder().ERROR. && java.util.ArrayList<String>.->"list"; - default -> - "default"; - }; +public class InstanceofPattern { + public void op(Object o) { + if (o instanceof String s) { + s. + } } -} +} diff --git a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java index d5edee7db2..610c304283 100644 --- a/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java +++ b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/SwitchPatternMatching.java @@ -21,18 +21,21 @@ package test; import java.util.stream.IntStream; -public class Test{ - - public void op(int a) { - Object obj = "test"; +public class Test { + + public void op(Object obj) { String result = switch (obj) { - case null, String -> - "null & String"; - case CharSequence s when s. && obj. && IntStream.of(1).max().-> + case null -> + "null"; + case CharSequence s when s. && obj. -> "CharSequence"; - case java.util.List list when list. && new StringBuilder().ERROR. && java.util.ArrayList<String>.->"list"; + case Point(var v, Integer j) when v. -> + "Point"; default -> "default"; }; } -} +} + +record Point(Number x, Number y) {} +enum Color {RED, GREEN, BLUE} \ No newline at end of file diff --git a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask116FeaturesTest.java b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask116FeaturesTest.java new file mode 100644 index 0000000000..00fbe2ae9b --- /dev/null +++ b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask116FeaturesTest.java @@ -0,0 +1,47 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.netbeans.modules.java.completion; + +import org.netbeans.modules.java.source.parsing.JavacParser; + +public class JavaCompletionTask116FeaturesTest extends CompletionTestBase { + + private static final String SOURCE_LEVEL = "16"; //NOI18N + + public JavaCompletionTask116FeaturesTest(String testName) { + super(testName); + } + + public void testInstanceofPatternCompletion_1() throws Exception { + performTest("InstanceofPattern", 907, null, "stringVarName.pass", SOURCE_LEVEL); + } + + public void testInstanceofPatternCompletion_2() throws Exception { + performTest("InstanceofPattern", 908, " ", "empty.pass", SOURCE_LEVEL); + } + + public void testInstanceofPatternCompletion_3() throws Exception { + performTest("InstanceofPattern", 926, null, "stringContent.pass", SOURCE_LEVEL); + } + + static { + JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = true; + } +} diff --git a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java deleted file mode 100644 index 3d4bbdab92..0000000000 --- a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.netbeans.modules.java.completion; - -import org.netbeans.modules.java.source.parsing.JavacParser; - -/** - * - * @author aksinsin - */ -public class JavaCompletionTask117FeaturesTest extends CompletionTestBase { - - public JavaCompletionTask117FeaturesTest(String testName) { - super(testName); - } - - public void testCaseLabels_1() throws Exception { - performTest("SwitchPatternMatching", 998, null, "AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass", "21"); - } - - public void testCaseLabels_2() throws Exception { - performTest("SwitchPatternMatching", 1004, null, "AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass", "21"); - } - - public void testCaseLabels_3() throws Exception { - performTest("SwitchPatternMatching", 1011, "s, ", "AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass", "21"); - } - - public void testVariableNameSuggestion() throws Exception { - performTest("SwitchPatternMatching", 1011, null, "AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass", "21"); - } - - public void testClassMembersAutoCompletion_GuardedPattern() throws Exception { - performTest("SwitchPatternMatching", 1087, null, "AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch.pass", "21"); - } - - public void testClassMembersAutoCompletion_GuardedPattern_1() throws Exception { - performTest("SwitchPatternMatching", 1095, null, "AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_1.pass", "21"); - } - public void testClassMembersAutoCompletion_GuardedPattern_2() throws Exception { - performTest("SwitchPatternMatching", 1115, null, "AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass", "21"); - } - public void testClassMembersAutoCompletion_ParanthesizedPattern() throws Exception { - performTest("SwitchPatternMatching", 1204, null, "AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass", "21"); - } - public void testClassMembersAutoCompletion_ParanthesizedPattern_1() throws Exception { - performTest("SwitchPatternMatching", 1227, null, "AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass", "21"); - } - - static { - JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = true; - } - -} diff --git a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask119FeaturesTest.java b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask119FeaturesTest.java deleted file mode 100644 index c203efaa6f..0000000000 --- a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask119FeaturesTest.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.netbeans.modules.java.completion; - -import org.netbeans.modules.java.source.parsing.JavacParser; - -/** - * - * @author Dusan Balek - */ -public class JavaCompletionTask119FeaturesTest extends CompletionTestBase { - - public JavaCompletionTask119FeaturesTest(String testName) { - super(testName); - } - - public void testRecordPatternCompletion_1() throws Exception { - performTest("RecordPattern", 930, null, "AutoCompletion_RecordPattern_1.pass", "21"); - } - - public void testRecordPatternCompletion_2() throws Exception { - performTest("RecordPattern", 1013, null, "AutoCompletion_RecordPattern_2.pass", "21"); - } - - public void testRecordPatternCompletion_3() throws Exception { - performTest("RecordPattern", 1107, null, "AutoCompletion_RecordPattern_3.pass", "21"); - } - - public void testCasePatternGuard_1() throws Exception { - performTest("SwitchPatternMatching", 1080, null, "AutoCompletion_Guard_PatternMatchingSwitch.pass", "21"); - } - - public void testCasePatternGuard_2() throws Exception { - performTest("SwitchPatternMatching", 1193, null, "AutoCompletion_Guard_PatternMatchingSwitch.pass", "21"); - } - - public void TODOtestNoCrash() throws Exception { - performTest("SwitchPatternMatching", 1275, "case R(var s,", "AutoCompletion_Guard_PatternMatchingSwitch.pass", "21"); - } - - static { - JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = true; - } - -} diff --git a/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask121FeaturesTest.java b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask121FeaturesTest.java new file mode 100644 index 0000000000..b116b43066 --- /dev/null +++ b/java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask121FeaturesTest.java @@ -0,0 +1,123 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package org.netbeans.modules.java.completion; + +import org.netbeans.modules.java.source.parsing.JavacParser; + +/** + * + * @author aksinsin + */ +public class JavaCompletionTask121FeaturesTest extends CompletionTestBase { + + private static final String SOURCE_LEVEL = "21"; //NOI18N + + public JavaCompletionTask121FeaturesTest(String testName) { + super(testName); + } + + public void testRecordPatternCompletion_1() throws Exception { + performTest("RecordPattern", 930, null, "AutoCompletion_RecordPattern_1.pass", SOURCE_LEVEL); + } + + public void testRecordPatternCompletion_2() throws Exception { + performTest("RecordPattern", 1013, null, "AutoCompletion_RecordPattern_2.pass", SOURCE_LEVEL); + } + + public void testRecordPatternCompletion_3() throws Exception { + performTest("RecordPattern", 1014, null, "AutoCompletion_RecordPattern_3.pass", SOURCE_LEVEL); + } + + public void testRecordPatternCompletion_4() throws Exception { + performTest("RecordPattern", 1095, null, "AutoCompletion_RecordPattern_4.pass", SOURCE_LEVEL); + } + + public void testRecordPatternCompletion_5() throws Exception { + performTest("RecordPattern", 1107, null, "AutoCompletion_RecordPattern_5.pass", SOURCE_LEVEL); + } + + public void testCaseLabels_1() throws Exception { + performTest("SwitchPatternMatching", 971, null, "AutoCompletion_CaseLabels_PatternMatchingSwitch_1.pass", SOURCE_LEVEL); + } + + public void testCaseLabels_2() throws Exception { + performTest("SwitchPatternMatching", 975, ", ", "defaultKeyword.pass", SOURCE_LEVEL); + } + + public void testCaseLabels_3() throws Exception { + performTest("SwitchPatternMatching", 976, null, "empty.pass", SOURCE_LEVEL); + } + + public void testCaseLabels_4() throws Exception { + performTest("SwitchPatternMatching", 1015, "case default, ", "empty.pass", SOURCE_LEVEL); + } + + public void testVariableNameSuggestion() throws Exception { + performTest("SwitchPatternMatching", 1033, null, "AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + public void testCasePatternGuard_1() throws Exception { + performTest("SwitchPatternMatching", 1035, null, "AutoCompletion_Guard_PatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + public void testCasePatternGuard_2() throws Exception { + performTest("SwitchPatternMatching", 1127, null, "AutoCompletion_Guard_PatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + public void testCasePatternGuard_3() throws Exception { + performTest("SwitchPatternMatching", 1040, null, "AutoCompletion_Guard_PatternMatchingSwitch_1.pass", SOURCE_LEVEL); + } + + public void testClassMembersAutoCompletion_GuardedPattern() throws Exception { + performTest("SwitchPatternMatching", 1042, null, "AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + public void testClassMembersAutoCompletion_GuardedPattern_1() throws Exception { + performTest("SwitchPatternMatching", 1050, null, "AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_1.pass", SOURCE_LEVEL); + } + + public void testCaseRecordPattern_1() throws Exception { + performTest("SwitchPatternMatching", 1108, null, "AutoCompletion_CaseRecordPattern_1.pass", SOURCE_LEVEL); + } + + public void testCaseRecordPattern_2() throws Exception { + performTest("SwitchPatternMatching", 1109, null, "AutoCompletion_CaseRecordPattern_2.pass", SOURCE_LEVEL); + } + + public void testCaseRecordPattern_3() throws Exception { + performTest("SwitchPatternMatching", 1113, null, "AutoCompletion_CaseRecordPattern_3.pass", SOURCE_LEVEL); + } + + public void testCaseRecordPattern_4() throws Exception { + performTest("SwitchPatternMatching", 1134, null, "AutoCompletion_CaseRecordPattern_4.pass", SOURCE_LEVEL); + } + + public void testCaseBodyCompletion_GuardedPattern() throws Exception { + performTest("SwitchPatternMatching", 1137, null, "AutoCompletion_CaseBody_PatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + public void TODOtestNoCrash() throws Exception { + performTest("SwitchPatternMatching", 1275, "case R(var s,", "AutoCompletion_Guard_PatternMatchingSwitch.pass", SOURCE_LEVEL); + } + + static { + JavacParser.DISABLE_SOURCE_LEVEL_DOWNGRADE = true; + } +} diff --git a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java index 679a3b84b3..e97d4a8a8c 100644 --- a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java +++ b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionCollector.java @@ -52,6 +52,7 @@ import javax.lang.model.element.Element; import javax.lang.model.element.ElementKind; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.Modifier; +import javax.lang.model.element.RecordComponentElement; import javax.lang.model.element.TypeElement; import javax.lang.model.element.TypeParameterElement; import javax.lang.model.element.VariableElement; @@ -154,7 +155,7 @@ public class JavaCompletionCollector implements CompletionCollector { return ret.get(); } - public static final Set<String> SUPPORTED_ELEMENT_KINDS = new HashSet<>(Arrays.asList("PACKAGE", "CLASS", "INTERFACE", "ENUM", "ANNOTATION_TYPE", "METHOD", "CONSTRUCTOR", "INSTANCE_INIT", "STATIC_INIT", "FIELD", "ENUM_CONSTANT", "TYPE_PARAMETER", "MODULE")); + public static final Set<String> SUPPORTED_ELEMENT_KINDS = new HashSet<>(Arrays.asList("PACKAGE", "CLASS", "INTERFACE", "ENUM", "ANNOTATION_TYPE", "RECORD", "METHOD", "CONSTRUCTOR", "INSTANCE_INIT", "STATIC_INIT", "FIELD", "ENUM_CONSTANT", "TYPE_PARAMETER", "MODULE")); public static Supplier<String> getDocumentation(Document doc, int offset, ElementHandle handle) { return () -> { @@ -189,6 +190,8 @@ public class JavaCompletionCollector implements CompletionCollector { return Completion.Kind.Enum; case CLASS: return Completion.Kind.Class; + case RECORD: + return Completion.Kind.Struct; case ANNOTATION_TYPE: return Completion.Kind.Interface; case INTERFACE: @@ -294,7 +297,8 @@ public class JavaCompletionCollector implements CompletionCollector { } private static class ItemFactoryImpl implements JavaCompletionTask.TypeCastableItemFactory<Completion>, - JavaCompletionTask.LambdaItemFactory<Completion>, JavaCompletionTask.ModuleItemFactory<Completion> { + JavaCompletionTask.LambdaItemFactory<Completion>, JavaCompletionTask.ModuleItemFactory<Completion>, + JavaCompletionTask.RecordPatternItemFactory<Completion> { private static final String EMPTY = ""; private static final String ERROR = "<error>"; @@ -931,6 +935,41 @@ public class JavaCompletionCollector implements CompletionCollector { .build(); } + + @Override + public Completion createRecordPatternItem(CompilationInfo info, TypeElement elem, DeclaredType type, int substitutionOffset, ReferencesCount referencesCount, boolean isDeprecated, boolean insideNew, boolean addTypeVars) { + String simpleName = elem.getSimpleName().toString(); + Iterator<? extends RecordComponentElement> it = elem.getRecordComponents().iterator(); + StringBuilder label = new StringBuilder(elem.getSimpleName()); + StringBuilder insertText = new StringBuilder(elem.getSimpleName()); + RecordComponentElement recordComponent; + int cnt = 1; + label.append("("); + insertText.append("("); + while (it.hasNext()) { + recordComponent = it.next(); + CharSequence typeName = Utilities.getTypeName(info, recordComponent.getAccessor().getReturnType(), false); + label.append(typeName); + insertText.append("${").append(cnt++).append(":").append(typeName).append("}"); + label.append(" "); + insertText.append(" "); + label.append(recordComponent.getSimpleName()); + insertText.append("${").append(cnt++).append(":").append(recordComponent.getSimpleName()).append("}"); + if (it.hasNext()) { + label.append(", "); + insertText.append(", "); + } + } + label.append(")"); + insertText.append(")"); + return CompletionCollector.newBuilder(label.toString()) + .kind(Completion.Kind.Struct) + .insertText(insertText.toString()) + .insertTextFormat(Completion.TextFormat.Snippet) + .sortText(String.format("%04d%s#", 650, simpleName)) + .build(); + } + private Completion createTypeItem(CompilationInfo info, String prefix, ElementHandle<TypeElement> handle, TypeElement elem, DeclaredType type, int substitutionOffset, ReferencesCount referencesCount, boolean isDeprecated, boolean insideNew, boolean addTypeVars, boolean addSimpleName, boolean smartType) { int off = info.getSnapshot().getEmbeddedOffset(substitutionOffset); String name = elem.getQualifiedName().toString(); diff --git a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java index d715406d51..733ba9ad32 100644 --- a/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java +++ b/java/java.editor/src/org/netbeans/modules/editor/java/JavaCompletionItem.java @@ -1357,15 +1357,12 @@ public abstract class JavaCompletionItem implements CompletionItem { Iterator<? extends RecordComponentElement> it = elem.getRecordComponents().iterator(); StringBuilder sb = new StringBuilder(); RecordComponentElement recordComponent; - String name; sb.append("("); while (it.hasNext()) { recordComponent = it.next(); - name = recordComponent.getAccessor().getReturnType().toString(); - name = name.substring(name.lastIndexOf(".") + 1); - sb.append(name); + sb.append(Utilities.getTypeName(info, recordComponent.getAccessor().getReturnType(), false)); sb.append(" "); - sb.append(recordComponent.getSimpleName().toString()); + sb.append(recordComponent.getSimpleName()); if (it.hasNext()) { sb.append(", "); //NOI18N } --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@netbeans.apache.org For additional commands, e-mail: commits-h...@netbeans.apache.org For further information about the NetBeans mailing lists, visit: https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists