From 29a9e0dc0eb18286fabbcc9137399154df18447e Mon Sep 17 00:00:00 2001 From: Dusan Balek Date: Tue, 25 Jul 2023 16:36:15 +0200 Subject: [PATCH] Code completion modified to support JDK 21 features. --- .../modules/java/completion/BaseTask.java | 44 ++++ .../java/completion/JavaCompletionTask.java | 208 ++++++++++++++---- ...etion_CaseBody_PatternMatchingSwitch.pass} | 46 +++- ...on_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...on_CaseLabels_PatternMatchingSwitch_2.pass | 101 --------- ...on_CaseLabels_PatternMatchingSwitch_3.pass | 100 --------- .../AutoCompletion_CaseRecordPattern_1.pass | 1 + .../AutoCompletion_CaseRecordPattern_2.pass | 13 ++ .../AutoCompletion_CaseRecordPattern_3.pass | 2 + .../AutoCompletion_CaseRecordPattern_4.pass | 15 ++ ...letion_Guard_PatternMatchingSwitch_1.pass} | 28 ++- ...Select_GuardedPatternMatchingSwitch_2.pass | 48 ---- ...ct_ParenthesizedPatternMatchingSwitch.pass | 39 ---- ..._ParenthesizedPatternMatchingSwitch_1.pass | 60 ----- .../1.8/AutoCompletion_RecordPattern_3.pass | 3 +- .../1.8/AutoCompletion_RecordPattern_4.pass | 7 + .../AutoCompletion_RecordPattern_5.pass} | 0 ...rNameSuggestion_PatternMatchingSwitch.pass | 5 +- ...on_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...on_CaseLabels_PatternMatchingSwitch_2.pass | 111 ---------- ...on_CaseLabels_PatternMatchingSwitch_3.pass | 110 --------- ...ct_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ..._ParenthesizedPatternMatchingSwitch_1.pass | 61 ----- ...ct_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ..._ParenthesizedPatternMatchingSwitch_1.pass | 61 ----- ...on_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...on_CaseLabels_PatternMatchingSwitch_1.pass | 3 +- ...on_CaseLabels_PatternMatchingSwitch_2.pass | 112 ---------- ...on_CaseLabels_PatternMatchingSwitch_3.pass | 111 ---------- ...Select_GuardedPatternMatchingSwitch_2.pass | 51 ----- ...ct_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ..._ParenthesizedPatternMatchingSwitch_1.pass | 62 ------ ...rNameSuggestion_PatternMatchingSwitch.pass | 2 - ...on_CaseLabels_PatternMatchingSwitch_1.pass | 1 - ...on_CaseLabels_PatternMatchingSwitch_2.pass | 114 ---------- ...on_CaseLabels_PatternMatchingSwitch_3.pass | 113 ---------- .../AutoCompletion_CaseRecordPattern_4.pass | 15 ++ ...ompletion_Guard_PatternMatchingSwitch.pass | 1 - ...Select_GuardedPatternMatchingSwitch_2.pass | 51 ----- ...ct_ParenthesizedPatternMatchingSwitch.pass | 40 ---- ..._ParenthesizedPatternMatchingSwitch_1.pass | 62 ------ .../19/AutoCompletion_RecordPattern_1.pass | 1 - .../19/AutoCompletion_RecordPattern_2.pass | 1 - .../completion/data/InstanceofPattern.java | 26 +++ .../data/SwitchPatternMatching.java | 21 +- .../JavaCompletionTask116FeaturesTest.java | 47 ++++ .../JavaCompletionTask117FeaturesTest.java | 71 ------ .../JavaCompletionTask119FeaturesTest.java | 61 ----- .../JavaCompletionTask121FeaturesTest.java | 123 +++++++++++ .../editor/java/JavaCompletionCollector.java | 43 +++- .../editor/java/JavaCompletionItem.java | 7 +- 51 files changed, 599 insertions(+), 1732 deletions(-) rename java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/{14/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass => 1.8/AutoCompletion_CaseBody_PatternMatchingSwitch.pass} (73%) delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_1.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_2.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_3.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_CaseRecordPattern_4.pass rename java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/{14/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass => 1.8/AutoCompletion_Guard_PatternMatchingSwitch_1.pass} (77%) delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/1.8/AutoCompletion_RecordPattern_4.pass rename java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/{19/AutoCompletion_RecordPattern_3.pass => 1.8/AutoCompletion_RecordPattern_5.pass} (100%) delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/11/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/13/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/17/AutoCompletion_VarNameSuggestion_PatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass create mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_CaseRecordPattern_4.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_Guard_PatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_GuardedPatternMatchingSwitch_2.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_MembersSelect_ParenthesizedPatternMatchingSwitch_1.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_1.pass delete mode 100644 java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/19/AutoCompletion_RecordPattern_2.pass create mode 100644 java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java create mode 100644 java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask116FeaturesTest.java delete mode 100644 java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask117FeaturesTest.java delete mode 100644 java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask119FeaturesTest.java create mode 100644 java/java.completion/test/unit/src/org/netbeans/modules/java/completion/JavaCompletionTask121FeaturesTest.java 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 a08521df2dd8..9242e63687ef 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 @@ private Env getEnvImpl(CompilationController controller, TreePath orig, TreePath } 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 @@ public Tree.Kind getKind() { } 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 c8d760a6d510..eed308f75db0 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.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 @@ private void insideMemberSelect(Env env) throws IOException { 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 @@ private void insideMemberSelect(Env env) throws IOException { 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 @@ private void insideMemberSelect(Env env) throws IOException { 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 @@ private void insideMemberSelect(Env env) throws IOException { 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 @@ private void insideMemberSelect(Env env) throws IOException { } 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 @@ private void insideMemberSelect(Env env) throws IOException { } 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 @@ private void insideLambdaExpression(Env env) throws IOException { 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 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 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) 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 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 @@ private void insideMethodInvocation(Env env) throws IOException { } return; } - String prefix = env.getPrefix(); if (prefix == null || prefix.length() == 0) { addMethodArguments(env, mi); } @@ -2412,6 +2459,7 @@ private void insideCase(Env env) throws IOException { 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 @@ private void insideCase(Env env) throws IOException { 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 @@ private void insideCase(Env env) throws IOException { 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) 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 ts = findLastNonWhitespaceToken(env, cst, offset); + if (ts != null && ts.token().id() == JavaTokenId.IDENTIFIER && WHEN_KEYWORD.contentEquals(ts.token().text())) { + localResult(env); + } + } } else { TokenSequence ts = findLastNonWhitespaceToken(env, cst, offset); if (ts != null && ts.token().id() == JavaTokenId.IDENTIFIER) { @@ -2471,7 +2537,7 @@ private void insideCase(Env env) throws IOException { } } } - } 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 @@ private void insideParens(Env env) throws IOException { } private void insideTypeCheck(Env env) throws IOException { + CompilationController controller = env.getController(); + String prefix = env.getPrefix(); InstanceOfTree iot = (InstanceOfTree) env.getPath().getLeaf(); TokenSequence 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) 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 @@ private void insideExpression(Env env, TreePath exPath) throws IOException { 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 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 @@ private void insideBreakOrContinue(Env env) throws IOException { } } - private void addClassTypes(final Env env, DeclaredType baseType) throws IOException{ - EnumSet 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 @@ private void insideRecord(Env env) throws IOException { } 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) 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 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 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) 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 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 @@ private void addCaseLabels(Env env, CaseTree cst) { 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 boolean accept(Element e, TypeMirror t) { 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/14/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/14/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 d7afe4d1193b..615e4fb668e5 100644 --- 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/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,11 +110,11 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle Readable -Record ReflectiveOperationException Runnable Runtime 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 bb15c49e0dfd..f9045b5a1b58 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 d42b16a1494c..000000000000 --- 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 33dec11b496c..000000000000 --- 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 000000000000..3dea321b45c6 --- /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 000000000000..88a361782bf6 --- /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 000000000000..6da8f92d24a2 --- /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 000000000000..da5150379138 --- /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/14/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/14/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 974c82f0f19a..572d58bebaf1 100644 --- 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/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,11 +91,11 @@ Object OutOfMemoryError Override Package +Point Process ProcessBuilder ProcessHandle Readable -Record ReflectiveOperationException Runnable Runtime 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 9458e5c242b1..000000000000 --- 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 arg0, ObjIntConsumer arg1, BiConsumer 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 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 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 mapToObj(IntFunction 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 92bc4479c9a2..000000000000 --- 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 a00086d15cdc..000000000000 --- 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 3cd138f22b6a..a953806cd3a0 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 000000000000..6198e4d75111 --- /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 d5fbcfcc5493..62f872ac4ca7 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 94d510bf1d75..3430af43abea 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/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass deleted file mode 100644 index b76a4249132f..000000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_2.pass +++ /dev/null @@ -1,111 +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 -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/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass b/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass deleted file mode 100644 index 49639ae8ca25..000000000000 --- a/java/java.completion/test/unit/data/goldenfiles/org/netbeans/modules/java/completion/JavaCompletionTaskTest/10/AutoCompletion_CaseLabels_PatternMatchingSwitch_3.pass +++ /dev/null @@ -1,110 +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 -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/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 10c56d95631a..000000000000 --- 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 ba9879eb0b7e..000000000000 --- 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 10c56d95631a..000000000000 --- 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 ba9879eb0b7e..000000000000 --- 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 94f7b022744b..14faa59aa088 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/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 94f7b022744b..14faa59aa088 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 974c82f0f19a..000000000000 --- 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 d7afe4d1193b..000000000000 --- 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 f29c24e3facf..000000000000 --- 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 arg0, ObjIntConsumer arg1, BiConsumer 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 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 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 mapToObj(IntFunction 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 10c56d95631a..000000000000 --- 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 80d9da227cbb..000000000000 --- 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 d5fbcfcc5493..000000000000 --- 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 3899b3092f11..cc1f6300470f 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 effe0050d37e..000000000000 --- 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 8f3cc16bbda2..000000000000 --- 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 000000000000..d35ff815edbc --- /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 8685dd8edfde..000000000000 --- 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 ac147772ffd7..000000000000 --- 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 arg0, ObjIntConsumer arg1, BiConsumer 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 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 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 mapToObj(IntFunction 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 2dcd4d253c49..000000000000 --- 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 5273a759e003..000000000000 --- 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 6daf41cb8c21..000000000000 --- 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 a1346a915629..000000000000 --- 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/InstanceofPattern.java b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java new file mode 100644 index 000000000000..9e3476facccd --- /dev/null +++ b/java/java.completion/test/unit/data/org/netbeans/modules/java/completion/data/InstanceofPattern.java @@ -0,0 +1,26 @@ +/* + * 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. + */ + +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 d5edee7db200..610c3042831b 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 @@ 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.->"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 000000000000..00fbe2ae9bc7 --- /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 3d4bbdab92dc..000000000000 --- 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 c203efaa6f9a..000000000000 --- 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 000000000000..b116b4306650 --- /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 679a3b84b3af..e97d4a8a8c48 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.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 void run(ResultIterator resultIterator) throws Exception { return ret.get(); } - public static final Set 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 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 getDocumentation(Document doc, int offset, ElementHandle handle) { return () -> { @@ -189,6 +190,8 @@ public static Completion.Kind elementKind2CompletionItemKind(ElementKind kind) { 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 @@ private static TextEdit modify2TextEdit(JavaSource js, Task task) t } private static class ItemFactoryImpl implements JavaCompletionTask.TypeCastableItemFactory, - JavaCompletionTask.LambdaItemFactory, JavaCompletionTask.ModuleItemFactory { + JavaCompletionTask.LambdaItemFactory, JavaCompletionTask.ModuleItemFactory, + JavaCompletionTask.RecordPatternItemFactory { private static final String EMPTY = ""; private static final String ERROR = ""; @@ -931,6 +935,41 @@ public Completion createLambdaItem(CompilationInfo info, TypeElement elem, Decla .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 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 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 d715406d5183..733ba9ad3226 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 @@ private RecordPatternItem(CompilationInfo info, TypeElement elem, DeclaredType t Iterator 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 }