Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 4 additions & 189 deletions .travis.yml

Large diffs are not rendered by default.

3 changes: 0 additions & 3 deletions ergonomics/ide.ergonomics/nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ release.dir=${basedir}/build/release
src-ant.build=build/classes/
src-ant.cp=${ant.core.lib}

requires.nb.javac=true
requires.nb.javac.impl=true

test.config.commit.includes=\
org/netbeans/modules/ide/ergonomics/DynamicVerifyTest.class,\
org/netbeans/modules/ide/ergonomics/CachingPreventsLoadingOfModuleManifestsTest.class,\
Expand Down
2 changes: 1 addition & 1 deletion java/java.completion/manifest.mf
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
OpenIDE-Module: org.netbeans.modules.java.completion
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/java/completion/Bundle.properties
OpenIDE-Module-Implementation-Version: 1
OpenIDE-Module-Implementation-Version: 2
Original file line number Diff line number Diff line change
Expand Up @@ -138,50 +138,6 @@ meth public void run(org.netbeans.modules.parsing.api.ResultIterator) throws jav
supr org.netbeans.modules.parsing.api.UserTask
hfds INIT,SUPER_KEYWORD,THIS_KEYWORD,anchorOffset,toolTipData,toolTipIndex,toolTipOffset

CLSS public org.netbeans.modules.java.completion.TreeShims
cons public init()
fld public final static int PATTERN_MATCHING_INSTANCEOF_PREVIEW_JDK_VERSION = 15
fld public final static java.lang.String BINDING_PATTERN = "BINDING_PATTERN"
fld public final static java.lang.String BINDING_VARIABLE = "BINDING_VARIABLE"
fld public final static java.lang.String DEFAULT_CASE_LABEL = "DEFAULT_CASE_LABEL"
fld public final static java.lang.String GUARDED_PATTERN = "GUARDED_PATTERN"
fld public final static java.lang.String NULL_LITERAL = "NULL_LITERAL"
fld public final static java.lang.String PARENTHESIZED_PATTERN = "PARENTHESIZED_PATTERN"
fld public final static java.lang.String RECORD = "RECORD"
fld public final static java.lang.String SWITCH_EXPRESSION = "SWITCH_EXPRESSION"
fld public final static java.lang.String YIELD = "YIELD"
meth public static <%0 extends com.sun.source.tree.Tree> boolean isRecord({%%0})
meth public static <%0 extends java.lang.Throwable> java.lang.RuntimeException throwAny(java.lang.Throwable) throws {%%0}
meth public static boolean isJDKVersionRelease16_Or_Above()
meth public static boolean isJDKVersionRelease17_Or_Above()
meth public static boolean isJDKVersionSupportEnablePreview()
meth public static boolean isRecord(javax.lang.model.element.Element)
meth public static boolean isRecordComponent(javax.lang.model.element.Element)
meth public static boolean isRecordComponent(javax.lang.model.element.ElementKind)
meth public static boolean isRuleCase(com.sun.source.tree.CaseTree)
meth public static com.sun.source.doctree.ReferenceTree getRefrenceTree(com.sun.tools.javac.tree.DocTreeMaker,com.sun.source.tree.ExpressionTree,java.lang.CharSequence,java.util.List<? extends com.sun.source.tree.Tree>,com.sun.tools.javac.util.Names,java.util.List<com.sun.tools.javac.tree.JCTree>)
meth public static com.sun.source.tree.ExpressionTree getGuardedExpression(com.sun.source.tree.Tree)
meth public static com.sun.source.tree.ExpressionTree getValue(com.sun.source.tree.BreakTree)
meth public static com.sun.source.tree.ExpressionTree getYieldValue(com.sun.source.tree.Tree)
meth public static com.sun.source.tree.ModuleTree getModule(com.sun.source.tree.CompilationUnitTree)
meth public static com.sun.source.tree.Tree SwitchExpression(com.sun.tools.javac.tree.TreeMaker,com.sun.source.tree.ExpressionTree,java.util.List<? extends com.sun.source.tree.CaseTree>)
meth public static com.sun.source.tree.Tree getBindingPatternType(com.sun.source.tree.Tree)
meth public static com.sun.source.tree.Tree getBody(com.sun.source.tree.CaseTree)
meth public static com.sun.source.tree.Tree getGuardedPattern(com.sun.source.tree.Tree)
meth public static com.sun.source.tree.Tree getParenthesizedPattern(com.sun.source.tree.Tree)
meth public static com.sun.source.tree.Tree getPattern(com.sun.source.tree.InstanceOfTree)
meth public static com.sun.source.tree.Tree getTarget(com.sun.source.tree.Tree)
meth public static java.util.List<? extends com.sun.source.tree.CaseTree> getCases(com.sun.source.tree.Tree)
meth public static java.util.List<? extends com.sun.source.tree.ExpressionTree> getExpressions(com.sun.source.tree.CaseTree)
meth public static java.util.List<? extends com.sun.source.tree.ExpressionTree> getExpressions(com.sun.source.tree.Tree)
meth public static java.util.List<? extends com.sun.source.tree.Tree> getLabels(com.sun.source.tree.CaseTree)
meth public static java.util.List<? extends com.sun.source.tree.Tree> getPermits(com.sun.source.tree.ClassTree)
meth public static java.util.List<? extends com.sun.source.tree.Tree> getPermits(com.sun.tools.javac.tree.JCTree$JCClassDecl)
meth public static javax.lang.model.element.Element toRecordComponent(javax.lang.model.element.Element)
meth public static javax.lang.model.element.ElementKind getRecordKind()
meth public static javax.lang.model.element.Name getBinding(com.sun.source.tree.Tree)
supr java.lang.Object

CLSS public final org.netbeans.modules.java.completion.Utilities
meth public static boolean isCaseSensitive()
meth public static boolean isExcludeMethods()
Expand Down
2 changes: 1 addition & 1 deletion java/java.completion/nbproject/project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
is.autoload=true
javac.source=1.8
javac.compilerargs=-Xlint -Xlint:-serial
spec.version.base=1.23.0
spec.version.base=2.0.0
#test configs

test.config.jet-main.includes=\
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -518,15 +518,15 @@ protected void resolve(CompilationController controller) throws IOException {
case STRING_LITERAL:
insideStringLiteral(env);
break;
default:
if (path.getLeaf().getKind().toString().equals(TreeShims.SWITCH_EXPRESSION)) {
insideSwitch(env);
} else if (TreeShims.isRecord(path.getLeaf())) {
insideRecord(env);
} else if (path.getLeaf().getKind().toString().equals("DEFAULT_CASE_LABEL")) {
localResult(env);
addKeywordsForBlock(env);
}
case SWITCH_EXPRESSION:
insideSwitch(env);
break;
case RECORD:
insideRecord(env);
break;
case DEFAULT_CASE_LABEL:
localResult(env);
addKeywordsForBlock(env);
break;
}
}
Expand Down Expand Up @@ -750,7 +750,7 @@ private void insideImport(Env env) throws IOException {
if (options.contains(Options.ALL_COMPLETION) || options.contains(Options.COMBINED_COMPLETION)) {
EnumSet<ElementKind> classKinds = EnumSet.of(CLASS, INTERFACE, ENUM, ANNOTATION_TYPE);
if (isRecordSupported(env)) {
classKinds.add(TreeShims.getRecordKind());
classKinds.add(RECORD);
}
addTypes(env, classKinds, null);
} else {
Expand Down Expand Up @@ -781,7 +781,7 @@ private void insideClass(Env env) throws IOException {
}
TreeUtilities tu = controller.getTreeUtilities();
Tree lastPerm = null;
List<? extends Tree> permits = TreeShims.getPermits(cls);
List<? extends Tree> permits = cls.getPermitsClause();
permits = permits == null ? new ArrayList<>() : permits;
for (Tree perm : permits) {
int permPos = (int) sourcePositions.getEndPosition(root, perm);
Expand Down Expand Up @@ -1588,7 +1588,7 @@ private void insideBlock(Env env) throws IOException {
if (SOURCE_VERSION_RELEASE_13 != null && env.getController().getSourceVersion().compareTo(SOURCE_VERSION_RELEASE_13) >= 0
&& Utilities.startsWith(YIELD_KEYWORD, prefix)) {
TreePath parentPath = env.getPath().getParentPath();
if (parentPath.getLeaf().getKind() == Tree.Kind.CASE && parentPath.getParentPath().getLeaf().getKind().toString().equals(TreeShims.SWITCH_EXPRESSION)) {
if (parentPath.getLeaf().getKind() == Tree.Kind.CASE && parentPath.getParentPath().getLeaf().getKind() == Kind.SWITCH_EXPRESSION) {
addKeyword(env, YIELD_KEYWORD, null, false);
}
}
Expand Down Expand Up @@ -2133,7 +2133,7 @@ private void insideNewClass(Env env) throws IOException {
if (encl == null) {
EnumSet<ElementKind> classKinds = EnumSet.of(CLASS, INTERFACE, ENUM, ANNOTATION_TYPE);
if (isRecordSupported(env)) {
classKinds.add(TreeShims.getRecordKind());
classKinds.add(RECORD);
}
addTypes(env, classKinds, base);
} else {
Expand Down Expand Up @@ -2385,16 +2385,15 @@ private void insideSwitch(Env env) throws IOException {
exprTree = ((SwitchTree) path.getLeaf()).getExpression();

} else {
List<? extends ExpressionTree> exprTrees = TreeShims.getExpressions(path.getLeaf());
if (!exprTrees.isEmpty()) {
exprTree = exprTrees.get(0);
}
exprTree = ((SwitchExpressionTree) path.getLeaf()).getExpression();
}
SourcePositions sourcePositions = env.getSourcePositions();
CompilationUnitTree root = env.getRoot();
if (sourcePositions.getStartPosition(root, exprTree) < offset) {
CaseTree lastCase = null;
for (CaseTree t : TreeShims.getCases(path.getLeaf())) {
List<? extends CaseTree> cases = path.getLeaf().getKind() == Kind.SWITCH ? ((SwitchTree) path.getLeaf()).getCases()
: ((SwitchExpressionTree) path.getLeaf()).getCases();
for (CaseTree t : cases) {
int pos = (int) sourcePositions.getStartPosition(root, t);
if (pos == Diagnostic.NOPOS || offset <= pos) {
break;
Expand All @@ -2405,7 +2404,7 @@ private void insideSwitch(Env env) throws IOException {
StatementTree last = null;
List<? extends StatementTree> statements = lastCase.getStatements();
if (statements == null) {
Tree caseBody = TreeShims.getBody(lastCase);
Tree caseBody = lastCase.getBody();
if (caseBody instanceof StatementTree) {
statements = Collections.singletonList((StatementTree) caseBody);
}
Expand Down Expand Up @@ -2435,8 +2434,8 @@ private void insideSwitch(Env env) throws IOException {
localResult(env);
addKeywordsForBlock(env);
String prefix = env.getPrefix();
if (SOURCE_VERSION_RELEASE_13 != null && (env.getController().getSourceVersion().compareTo(SOURCE_VERSION_RELEASE_13) >= 0
&& path.getLeaf().getKind().toString().equals(TreeShims.SWITCH_EXPRESSION) && Utilities.startsWith(YIELD_KEYWORD, prefix))) {
if (env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_13) >= 0
&& path.getLeaf().getKind() == Kind.SWITCH_EXPRESSION && Utilities.startsWith(YIELD_KEYWORD, prefix)) {
addKeyword(env, YIELD_KEYWORD, null, false);
}

Expand All @@ -2460,7 +2459,7 @@ private void insideCase(Env env) throws IOException {
TreePath parentPath = path.getParentPath();
ExpressionTree caseExpressionTree = null;
ExpressionTree caseErroneousTree = null;
List<? extends ExpressionTree> caseTreeList = TreeShims.getExpressions(cst);
List<? extends ExpressionTree> caseTreeList = cst.getExpressions();
if (!caseTreeList.isEmpty() && caseTreeList.size() == 1) {
caseExpressionTree = caseTreeList.get(0);
caseErroneousTree = caseTreeList.get(0);
Expand All @@ -2477,15 +2476,12 @@ private void insideCase(Env env) throws IOException {
if (caseExpressionTree != null && ((sourcePositions.getStartPosition(root, caseExpressionTree) >= 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().toString().equals(TreeShims.SWITCH_EXPRESSION)) {
if (parentPath.getLeaf().getKind() == Tree.Kind.SWITCH || parentPath.getLeaf().getKind() == Kind.SWITCH_EXPRESSION) {
ExpressionTree exprTree = null;
if (parentPath.getLeaf().getKind() == Tree.Kind.SWITCH) {
exprTree = ((SwitchTree) parentPath.getLeaf()).getExpression();
} else {
List<? extends ExpressionTree> exprTrees = TreeShims.getExpressions(parentPath.getLeaf());
if (!exprTrees.isEmpty()) {
exprTree = exprTrees.get(0);
}
exprTree = ((SwitchExpressionTree) parentPath.getLeaf()).getExpression();
}
TypeMirror tm = controller.getTrees().getTypeMirror(new TreePath(parentPath, exprTree));
if (tm.getKind() == TypeKind.DECLARED && ((DeclaredType) tm).asElement().getKind() == ENUM) {
Expand Down Expand Up @@ -3098,16 +3094,16 @@ private void insideBreakOrContinue(Env env) throws IOException {
private void addClassTypes(final Env env, DeclaredType baseType) throws IOException{
EnumSet<ElementKind> classKinds = EnumSet.of(CLASS, INTERFACE, ENUM, ANNOTATION_TYPE, TYPE_PARAMETER);
if (isRecordSupported(env)) {
classKinds.add(TreeShims.getRecordKind());
classKinds.add(RECORD);
}
addTypes(env, classKinds, baseType);
}

private boolean isRecordSupported(final Env env) {
return (SOURCE_VERSION_RELEASE_14 != null && env.getController().getSourceVersion().compareTo(SOURCE_VERSION_RELEASE_14) >= 0);
return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_14) >= 0;
}
private boolean isSealedSupported(final Env env) {
return (SOURCE_VERSION_RELEASE_15 != null && env.getController().getSourceVersion().compareTo(SOURCE_VERSION_RELEASE_15) >= 0);
return env.getController().getSourceVersion().compareTo(SourceVersion.RELEASE_15) >= 0;
}

private void insideRecord(Env env) throws IOException {
Expand Down Expand Up @@ -4039,13 +4035,13 @@ private void addEnumConstants(Env env, TypeElement elem) {
if (path != null && path.getLeaf().getKind() == Tree.Kind.SWITCH) {
SwitchTree st = (SwitchTree) path.getLeaf();
caseTrees = st.getCases();
} else if (path != null && path.getLeaf().getKind().toString().equals(TreeShims.SWITCH_EXPRESSION)) {
caseTrees = TreeShims.getCases(path.getLeaf());
} else if (path != null && path.getLeaf().getKind() == Tree.Kind.SWITCH_EXPRESSION) {
caseTrees = ((SwitchExpressionTree) path.getLeaf()).getCases();
}

if (caseTrees != null) {
for (CaseTree ct : caseTrees) {
for (ExpressionTree et : TreeShims.getExpressions(ct)) {
for (ExpressionTree et : ct.getExpressions()) {
Element e = et != null ? trees.getElement(new TreePath(path, et)) : null;
if (e != null && e.getKind() == ENUM_CONSTANT) {
alreadyUsed.add(e);
Expand All @@ -4066,7 +4062,7 @@ private void addEnumConstants(Env env, TypeElement elem) {

private void addPackageContent(final Env env, PackageElement pe, EnumSet<ElementKind> kinds, DeclaredType baseType, boolean insideNew, boolean srcOnly) throws IOException {
if (isRecordSupported(env)) {
kinds.add(TreeShims.getRecordKind());
kinds.add(RECORD);
}
Set<? extends TypeMirror> smartTypes = options.contains(Options.ALL_COMPLETION) ? null : getSmartTypes(env);
CompilationController controller = env.getController();
Expand Down Expand Up @@ -6365,9 +6361,9 @@ private boolean isLambdaVarType(Env env, Tree tree) {
}

private static ElementKind simplifyElementKind(ElementKind kind) {
if (TreeShims.BINDING_VARIABLE.equals(kind.name())) {
if (ElementKind.BINDING_VARIABLE == kind) {
return ElementKind.LOCAL_VARIABLE;
} else if (TreeShims.RECORD.equals(kind.name())) {
} else if (ElementKind.RECORD == kind) {
return ElementKind.CLASS;
}
return kind;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,14 @@ protected void resolve(CompilationController controller) throws IOException {
}
}
if (!controller.getElementUtilities().isErroneous(el)) {
switch (simplifyElementKind(el.getKind())) {
switch (el.getKind()) {
case MODULE:
case PACKAGE:
case ANNOTATION_TYPE:
case CLASS:
case ENUM:
case INTERFACE:
case RECORD:
case CONSTRUCTOR:
case ENUM_CONSTANT:
case FIELD:
Expand All @@ -106,10 +107,4 @@ private TreePath refinePath(final TreePath path) {
return path;
}

private static ElementKind simplifyElementKind(ElementKind kind) {
if (TreeShims.RECORD.equals(kind.name())) {
return ElementKind.CLASS;
}
return kind;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -214,14 +214,12 @@ public CI createVariableItem(CompilationInfo info, VariableElement elem, TypeMir
String varName = elem.getSimpleName().toString();
String typeName = type != null ? info.getTypeUtilities().getTypeName(type).toString() : null;
ElementKind ek = elem.getKind();
if (TreeShims.BINDING_VARIABLE.equals(ek.name())) {
ek = ElementKind.LOCAL_VARIABLE;
}
switch (ek) {
case LOCAL_VARIABLE:
case RESOURCE_VARIABLE:
case PARAMETER:
case EXCEPTION_PARAMETER:
case BINDING_VARIABLE:
return new CI((typeName != null ? typeName + " " : "") + varName, smartType ? 200 - SMART_TYPE : 200, varName);
case ENUM_CONSTANT:
case FIELD:
Expand Down
Loading