Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2019-04-13 12:09:15 +0000
committerStephan Herrmann2019-04-13 12:35:00 +0000
commit04ac9ac21116d3f4ecb0af7a026fd07be9f4bc99 (patch)
treeba0401e7964a91b9fcd60d96af6fb89ca293d275 /org.eclipse.jdt.core
parentc830660bd12b8a17058f87b7070c8de16e2b2ec1 (diff)
downloadorg.eclipse.objectteams-04ac9ac21116d3f4ecb0af7a026fd07be9f4bc99.tar.gz
org.eclipse.objectteams-04ac9ac21116d3f4ecb0af7a026fd07be9f4bc99.tar.xz
org.eclipse.objectteams-04ac9ac21116d3f4ecb0af7a026fd07be9f4bc99.zip
update jdt.core to S4_12_0_M1
Diffstat (limited to 'org.eclipse.jdt.core')
-rw-r--r--org.eclipse.jdt.core/.settings/.api_filters14
-rw-r--r--org.eclipse.jdt.core/META-INF/MANIFEST.MF2
-rw-r--r--org.eclipse.jdt.core/batch/org/eclipse/jdt/core/compiler/batch/BatchCompiler.java5
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java2
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CharOperation.java16
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java2
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java10
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java5
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchExpression.java4
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java5
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java216
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding18.java2
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java14
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java4
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceSubstitution.java2
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceVariable.java10
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java18
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java10
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java5
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java22
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java7
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java7
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeSystem.java11
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java27
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java98
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java2
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java5
-rw-r--r--org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/OTClassScope.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java19
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java5
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java12
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java3
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java6
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Comment.java6
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Expression.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IBinding.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ITypeBinding.java3
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IntersectionType.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ModuleDeclaration.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Name.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Statement.java7
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchExpression.java2
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java33
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java7
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclaration.java4
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java6
-rw-r--r--org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/TargetSourceRangeComputer.java7
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java6
-rw-r--r--org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java24
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/BindingKey.java8
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/ClasspathContainerInitializer.java9
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java44
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionRequestor.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/Flags.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathAttribute.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathContainer.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathEntry.java6
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java7
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaElementDelta.java9
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaProject.java11
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IModuleDescription.java20
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/IType.java17
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaConventions.java6
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/NamingConventions.java7
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/Signature.java29
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/ToolFactory.java14
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/WorkingCopyOwner.java7
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/compiler/CompilationParticipant.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/ICodeSnippetRequestor.java4
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/IEvaluationContext.java9
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMNode.java3
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/CompilationUnitSorter.java92
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/ExternalAnnotationUtil.java6
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IStackMapFrame.java6
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/AbstractModule.java23
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java2
-rw-r--r--org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SearchableEnvironment.java9
-rw-r--r--org.eclipse.jdt.core/pom.xml2
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/IJavaSearchConstants.java8
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/ReferenceMatch.java7
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchEngine.java32
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java6
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java42
-rw-r--r--org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodLocator.java4
99 files changed, 636 insertions, 581 deletions
diff --git a/org.eclipse.jdt.core/.settings/.api_filters b/org.eclipse.jdt.core/.settings/.api_filters
index a0ecc9a94..26e4f5705 100644
--- a/org.eclipse.jdt.core/.settings/.api_filters
+++ b/org.eclipse.jdt.core/.settings/.api_filters
@@ -1,19 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<component id="org.eclipse.jdt.core" version="2">
- <resource path="META-INF/MANIFEST.MF">
- <filter id="924844039">
- <message_arguments>
- <message_argument value="3.16.0"/>
- <message_argument value="3.16.0"/>
- </message_arguments>
- </filter>
- <filter comment="Address this while merging 12" id="924844039">
- <message_arguments>
- <message_argument value="3.17.0"/>
- <message_argument value="3.17.0"/>
- </message_arguments>
- </filter>
- </resource>
<resource path="compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java" type="org.eclipse.jdt.core.compiler.CategorizedProblem">
<filter comment="To be addressed while merging 12" id="336658481">
<message_arguments>
diff --git a/org.eclipse.jdt.core/META-INF/MANIFEST.MF b/org.eclipse.jdt.core/META-INF/MANIFEST.MF
index 22514bead..9d583e561 100644
--- a/org.eclipse.jdt.core/META-INF/MANIFEST.MF
+++ b/org.eclipse.jdt.core/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.core; singleton:=true
-Bundle-Version: 3.17.100.OTDT_r273_qualifier
+Bundle-Version: 3.18.0.OTDT_r273_qualifier
Bundle-Activator: org.eclipse.jdt.core.JavaCore
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/core/compiler/batch/BatchCompiler.java b/org.eclipse.jdt.core/batch/org/eclipse/jdt/core/compiler/batch/BatchCompiler.java
index 65d20e6dc..7e4ca11bf 100644
--- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/core/compiler/batch/BatchCompiler.java
+++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/core/compiler/batch/BatchCompiler.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2010 IBM Corporation and others.
+ * Copyright (c) 2008, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -43,7 +43,6 @@ public final class BatchCompiler {
* <p>
* The specification of the command line arguments is defined by running the batch compiler's help
* <pre>BatchCompiler.compile("-help", new PrintWriter(System.out), new PrintWriter(System.err), null);</pre>
- * </p>
*
* @param commandLine the command line arguments passed to the compiler
* @param outWriter the writer used to print standard messages
@@ -69,7 +68,7 @@ public final class BatchCompiler {
* <p>
* The specification of the command line arguments is defined by running the batch compiler's help
* <pre>BatchCompiler.compile("-help", new PrintWriter(System.out), new PrintWriter(System.err), null);</pre>
- * </p>
+ * <p>
* Note that a <code>true</code> returned value indicates that no errors were reported, no runtime exceptions
* occurred and that the compilation was not canceled.
*
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java
index 881870b88..41add2dcf 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CategorizedProblem.java
@@ -157,7 +157,7 @@ public String[] getExtraMarkerAttributeNames() {
* Returns the respective values for the extra marker attributes associated to this problem when persisted into
* a marker by the JavaBuilder. Each value must correspond to a matching attribute name, as defined by
* {@link #getExtraMarkerAttributeNames()}.
- * The values must be eligible for marker creation, as defined by <code> IMarker#setAttributes(String[], Object[])}.
+ * The values must be eligible for marker creation, as defined by <code> IMarker#setAttributes(String[], Object[])}</code>.
* @return the values of the corresponding extra marker attributes
*/
public Object[] getExtraMarkerAttributeValues() {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CharOperation.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CharOperation.java
index 18098cfc2..5dc15d686 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CharOperation.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/CharOperation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -296,8 +296,8 @@ public static final char[][] arrayConcat(char[][] first, char[][] second) {
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap',
* 'HatMapper' <b>and also</b> 'HashMapEntry'.
* <p>
- * <pre>
- * Examples:<ol>
+ * Examples:
+ * <ol>
* <li> pattern = "NPE".toCharArray()
* name = "NullPointerException".toCharArray()
* result => true</li>
@@ -319,7 +319,7 @@ public static final char[][] arrayConcat(char[][] first, char[][] second) {
* <li> pattern = "HM".toCharArray()
* name = "HashMapEntry".toCharArray()
* result => true</li>
- * </ol></pre>
+ * </ol>
*
* @param pattern the given pattern
* @param name the given name
@@ -366,7 +366,6 @@ public static final boolean camelCaseMatch(char[] pattern, char[] name) {
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
* 'HatMapper' <b>but not</b> 'HashMapEntry'.
* <p>
- * <pre>
* Examples:<ol>
* <li> pattern = "NPE".toCharArray()
* name = "NullPointerException".toCharArray()
@@ -389,7 +388,7 @@ public static final boolean camelCaseMatch(char[] pattern, char[] name) {
* <li> pattern = "HM".toCharArray()
* name = "HashMapEntry".toCharArray()
* result => (samePartCount == false)</li>
- * </ol></pre>
+ * </ol>
*
* @param pattern the given pattern
* @param name the given name
@@ -550,7 +549,6 @@ public static final boolean camelCaseMatch(char[] pattern, int patternStart, int
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
* 'HatMapper' <b>but not</b> 'HashMapEntry'.
* <p>
- * <pre>
* Examples:
* <ol>
* <li> pattern = "NPE".toCharArray()
@@ -603,7 +601,6 @@ public static final boolean camelCaseMatch(char[] pattern, int patternStart, int
* nameEnd = 12
* result => (samePartCount == false)</li>
* </ol>
- * </pre>
*
* @param pattern the given pattern
* @param patternStart the start index of the pattern, inclusive
@@ -1026,7 +1023,6 @@ public static final int compareTo(char[] array1, char[] array2, int start, int e
* </pre>
* </li>
* </ol>
- * </p>
*
* @param array the given array
* @param prefix the given prefix
@@ -1414,7 +1410,7 @@ public static final char[] concat(
* => result = { ' a' , '/', 'b' }
* </pre>
* </li>
- * * <li><pre>
+ * <li><pre>
* first = { ' a' }
* second = { }
* separator = '/'
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
index 8e624ba2c..6063b96d4 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/core/compiler/IProblem.java
@@ -377,7 +377,7 @@ void setSourceStart(int sourceStart);
int Javadoc = 0x80000000;
/** @since 3.14 */
int ModuleRelated = 0x00800000;
- /** @since 3.17 */
+ /** @since 3.18 */
int Compliance = 0x00400000;
/**
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
index a3c086406..6a49c0e5c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/AllocationExpression.java
@@ -1036,10 +1036,16 @@ public InferenceContext18 freshInferenceContext(Scope scope) {
}
@Override
public int nameSourceStart() {
- return this.type.sourceStart;
+ if (this.enumConstant != null)
+ return this.enumConstant.sourceStart;
+ else
+ return this.type.sourceStart;
}
@Override
public int nameSourceEnd() {
- return this.type.sourceEnd;
+ if (this.enumConstant != null)
+ return this.enumConstant.sourceEnd;
+ else
+ return this.type.sourceEnd;
}
} \ No newline at end of file
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
index 52d519eb6..d266ab8e5 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/MessageSend.java
@@ -745,9 +745,10 @@ public void manageSyntheticAccessIfNecessary(BlockScope currentScope, FlowInfo f
&& !this.isDecapsulation)
// SH}
{
-
+ boolean useNesting = currentScope.enclosingSourceType().isNestmateOf(codegenBinding.declaringClass) &&
+ !(this.receiver instanceof QualifiedSuperReference);
// depth is set for both implicit and explicit access (see MethodBinding#canBeSeenBy)
- if (!currentScope.enclosingSourceType().isNestmateOf(codegenBinding.declaringClass) &&
+ if (!useNesting &&
TypeBinding.notEquals(currentScope.enclosingSourceType(), codegenBinding.declaringClass)){
this.syntheticAccessor = ((SourceTypeBinding)codegenBinding.declaringClass).addSyntheticMethod(codegenBinding, false /* not super access there */);
currentScope.problemReporter().needToEmulateMethodAccess(codegenBinding, this);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchExpression.java
index faba6e578..1130f6925 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchExpression.java
@@ -160,6 +160,10 @@ public class SwitchExpression extends SwitchStatement implements IPolyExpression
}
}
@Override
+ protected boolean checkNullDefaultFlow() { // JLS 12 16.1.8
+ return !this.switchLabeledRules;
+ }
+ @Override
public Expression[] getPolyExpressions() {
List<Expression> polys = new ArrayList<>();
for (Expression e : this.resultExpressions) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java
index a694b0a10..eebcfca75 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SwitchStatement.java
@@ -112,6 +112,9 @@ public class SwitchStatement extends Expression {
protected void completeNormallyCheck(BlockScope blockScope) {
// do nothing
}
+ protected boolean checkNullDefaultFlow() {
+ return true;
+ }
@Override
public FlowInfo analyseCode(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo) {
try {
@@ -175,7 +178,7 @@ public class SwitchStatement extends Expression {
this.synthetic = sourceTypeBinding.addSyntheticMethodForSwitchEnum(resolvedTypeBinding, this);
}
// if no default case, then record it may jump over the block directly to the end
- if (this.defaultCase == null) {
+ if (this.defaultCase == null && checkNullDefaultFlow()) {
// only retain the potential initializations
flowInfo.addPotentialInitializationsFrom(caseInits.mergedWith(switchContext.initsOnBreak));
this.mergedInitStateIndex = currentScope.methodScope().recordInitializationStates(flowInfo);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
index fb53daf75..9b3e8b7a7 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java
@@ -878,37 +878,40 @@ private int getNullDefaultFrom(IBinaryAnnotation[] declAnnotations) {
private void createFields(IBinaryField[] iFields, IBinaryType binaryType, long sourceLevel, char[][][] missingTypeNames) {
if (!isPrototype()) throw new IllegalStateException();
- this.fields = Binding.NO_FIELDS;
- if (iFields != null) {
- int size = iFields.length;
- if (size > 0) {
- FieldBinding[] fields1 = new FieldBinding[size];
- boolean use15specifics = sourceLevel >= ClassFileConstants.JDK1_5;
- boolean hasRestrictedAccess = hasRestrictedAccess();
- int firstAnnotatedFieldIndex = -1;
- for (int i = 0; i < size; i++) {
- IBinaryField binaryField = iFields[i];
- char[] fieldSignature = use15specifics ? binaryField.getGenericSignature() : null;
- ITypeAnnotationWalker walker = getTypeAnnotationWalker(binaryField.getTypeAnnotations(), getNullDefaultFrom(binaryField.getAnnotations()));
- if (sourceLevel >= ClassFileConstants.JDK1_8) { // below 1.8, external annotations will be attached later
- walker = binaryType.enrichWithExternalAnnotationsFor(walker, iFields[i], this.environment);
- }
- walker = walker.toField();
- TypeBinding type = fieldSignature == null
- ? this.environment.getTypeFromSignature(binaryField.getTypeName(), 0, -1, false, this, missingTypeNames, walker)
- : this.environment.getTypeFromTypeSignature(new SignatureWrapper(fieldSignature), Binding.NO_TYPE_VARIABLES, this, missingTypeNames, walker);
- FieldBinding field =
- new FieldBinding(
- binaryField.getName(),
- type,
- binaryField.getModifiers() | ExtraCompilerModifiers.AccUnresolved,
- this,
- binaryField.getConstant());
- boolean forceStoreAnnotations = !this.environment.globalOptions.storeAnnotations
- && (this.environment.globalOptions.sourceLevel >= ClassFileConstants.JDK9
- && binaryField.getAnnotations() != null
- && (binaryField.getTagBits() & TagBits.AnnotationDeprecated) != 0);
- if (firstAnnotatedFieldIndex < 0
+ boolean save = this.environment.mayTolerateMissingType;
+ this.environment.mayTolerateMissingType = true;
+ try {
+ this.fields = Binding.NO_FIELDS;
+ if (iFields != null) {
+ int size = iFields.length;
+ if (size > 0) {
+ FieldBinding[] fields1 = new FieldBinding[size];
+ boolean use15specifics = sourceLevel >= ClassFileConstants.JDK1_5;
+ boolean hasRestrictedAccess = hasRestrictedAccess();
+ int firstAnnotatedFieldIndex = -1;
+ for (int i = 0; i < size; i++) {
+ IBinaryField binaryField = iFields[i];
+ char[] fieldSignature = use15specifics ? binaryField.getGenericSignature() : null;
+ ITypeAnnotationWalker walker = getTypeAnnotationWalker(binaryField.getTypeAnnotations(), getNullDefaultFrom(binaryField.getAnnotations()));
+ if (sourceLevel >= ClassFileConstants.JDK1_8) { // below 1.8, external annotations will be attached later
+ walker = binaryType.enrichWithExternalAnnotationsFor(walker, iFields[i], this.environment);
+ }
+ walker = walker.toField();
+ TypeBinding type = fieldSignature == null
+ ? this.environment.getTypeFromSignature(binaryField.getTypeName(), 0, -1, false, this, missingTypeNames, walker)
+ : this.environment.getTypeFromTypeSignature(new SignatureWrapper(fieldSignature), Binding.NO_TYPE_VARIABLES, this, missingTypeNames, walker);
+ FieldBinding field =
+ new FieldBinding(
+ binaryField.getName(),
+ type,
+ binaryField.getModifiers() | ExtraCompilerModifiers.AccUnresolved,
+ this,
+ binaryField.getConstant());
+ boolean forceStoreAnnotations = !this.environment.globalOptions.storeAnnotations
+ && (this.environment.globalOptions.sourceLevel >= ClassFileConstants.JDK9
+ && binaryField.getAnnotations() != null
+ && (binaryField.getTagBits() & TagBits.AnnotationDeprecated) != 0);
+ if (firstAnnotatedFieldIndex < 0
//{ObjectTeams: read annotations within roles to enable copying:
/* orig:
&& (this.environment.globalOptions.storeAnnotations || forceStoreAnnotations)
@@ -917,37 +920,40 @@ private void createFields(IBinaryField[] iFields, IBinaryType binaryType, long s
|| forceStoreAnnotations
|| this.isRole())
// SH}
- && binaryField.getAnnotations() != null) {
- firstAnnotatedFieldIndex = i;
- if (forceStoreAnnotations)
- storedAnnotations(true, true); // for Java 9 @Deprecated we need to force storing annotations
- }
- field.id = i; // ordinal
- if (use15specifics)
- field.tagBits |= binaryField.getTagBits();
- if (hasRestrictedAccess)
- field.modifiers |= ExtraCompilerModifiers.AccRestrictedAccess;
- if (fieldSignature != null)
- field.modifiers |= ExtraCompilerModifiers.AccGenericSignature;
- fields1[i] = field;
+ && binaryField.getAnnotations() != null) {
+ firstAnnotatedFieldIndex = i;
+ if (forceStoreAnnotations)
+ storedAnnotations(true, true); // for Java 9 @Deprecated we need to force storing annotations
+ }
+ field.id = i; // ordinal
+ if (use15specifics)
+ field.tagBits |= binaryField.getTagBits();
+ if (hasRestrictedAccess)
+ field.modifiers |= ExtraCompilerModifiers.AccRestrictedAccess;
+ if (fieldSignature != null)
+ field.modifiers |= ExtraCompilerModifiers.AccGenericSignature;
+ fields1[i] = field;
//{ObjectTeams:
- // field attributes:
- if (binaryField instanceof FieldInfo)
- ((FieldInfo)binaryField).evaluateOTAttributes(field);
- // field as value parameter?
- if ((field.modifiers & ExtraCompilerModifiers.AccValueParam) != 0)
- addValueParameter(field);
+ // field attributes:
+ if (binaryField instanceof FieldInfo)
+ ((FieldInfo)binaryField).evaluateOTAttributes(field);
+ // field as value parameter?
+ if ((field.modifiers & ExtraCompilerModifiers.AccValueParam) != 0)
+ addValueParameter(field);
// SH}
- }
- this.fields = fields1;
- // second pass for reifying annotations, since may refer to fields being constructed (147875)
- if (firstAnnotatedFieldIndex >= 0) {
- for (int i = firstAnnotatedFieldIndex; i <size; i++) {
- IBinaryField binaryField = iFields[i];
- this.fields[i].setAnnotations(createAnnotations(binaryField.getAnnotations(), this.environment, missingTypeNames), false);
+ }
+ this.fields = fields1;
+ // second pass for reifying annotations, since may refer to fields being constructed (147875)
+ if (firstAnnotatedFieldIndex >= 0) {
+ for (int i = firstAnnotatedFieldIndex; i <size; i++) {
+ IBinaryField binaryField = iFields[i];
+ this.fields[i].setAnnotations(createAnnotations(binaryField.getAnnotations(), this.environment, missingTypeNames), false);
+ }
}
}
}
+ } finally {
+ this.environment.mayTolerateMissingType = save;
}
}
//{ObjectTeams: some fields are indeed value parameters:
@@ -1269,63 +1275,69 @@ private MethodBinding createMethod(IBinaryMethod method, IBinaryType binaryType,
*/
private IBinaryMethod[] createMethods(IBinaryMethod[] iMethods, IBinaryType binaryType, long sourceLevel, char[][][] missingTypeNames) {
if (!isPrototype()) throw new IllegalStateException();
- int total = 0, initialTotal = 0, iClinit = -1;
- int[] toSkip = null;
- if (iMethods != null) {
- total = initialTotal = iMethods.length;
- boolean keepBridgeMethods = sourceLevel < ClassFileConstants.JDK1_5; // https://bugs.eclipse.org/bugs/show_bug.cgi?id=330347
- for (int i = total; --i >= 0;) {
- IBinaryMethod method = iMethods[i];
- if ((method.getModifiers() & ClassFileConstants.AccSynthetic) != 0) {
+ boolean save = this.environment.mayTolerateMissingType;
+ this.environment.mayTolerateMissingType = true;
+ try {
+ int total = 0, initialTotal = 0, iClinit = -1;
+ int[] toSkip = null;
+ if (iMethods != null) {
+ total = initialTotal = iMethods.length;
+ boolean keepBridgeMethods = sourceLevel < ClassFileConstants.JDK1_5; // https://bugs.eclipse.org/bugs/show_bug.cgi?id=330347
+ for (int i = total; --i >= 0;) {
+ IBinaryMethod method = iMethods[i];
+ if ((method.getModifiers() & ClassFileConstants.AccSynthetic) != 0) {
//{ObjectTeams: teams and roles don't discard synthetic for the sake of copy inheritance
- if (isTeam() || isRole())
- continue;
+ if (isTeam() || isRole())
+ continue;
// SH}
- if (keepBridgeMethods && (method.getModifiers() & ClassFileConstants.AccBridge) != 0)
- continue; // want to see bridge methods as real methods
- // discard synthetics methods
- if (toSkip == null) toSkip = new int[iMethods.length];
- toSkip[i] = -1;
- total--;
- } else if (iClinit == -1) {
- char[] methodName = method.getSelector();
- if (methodName.length == 8 && methodName[0] == Util.C_GENERIC_START) {
- // discard <clinit>
- iClinit = i;
+ if (keepBridgeMethods && (method.getModifiers() & ClassFileConstants.AccBridge) != 0)
+ continue; // want to see bridge methods as real methods
+ // discard synthetics methods
+ if (toSkip == null) toSkip = new int[iMethods.length];
+ toSkip[i] = -1;
total--;
+ } else if (iClinit == -1) {
+ char[] methodName = method.getSelector();
+ if (methodName.length == 8 && methodName[0] == Util.C_GENERIC_START) {
+ // discard <clinit>
+ iClinit = i;
+ total--;
+ }
}
}
}
- }
- if (total == 0) {
- this.methods = Binding.NO_METHODS;
- return NO_BINARY_METHODS;
- }
-
- boolean hasRestrictedAccess = hasRestrictedAccess();
- MethodBinding[] methods1 = new MethodBinding[total];
- if (total == initialTotal) {
- for (int i = 0; i < initialTotal; i++) {
- MethodBinding method = createMethod(iMethods[i], binaryType, sourceLevel, missingTypeNames);
- if (hasRestrictedAccess)
- method.modifiers |= ExtraCompilerModifiers.AccRestrictedAccess;
- methods1[i] = method;
+ if (total == 0) {
+ this.methods = Binding.NO_METHODS;
+ return NO_BINARY_METHODS;
}
- this.methods = methods1;
- return iMethods;
- } else {
- IBinaryMethod[] mappedBinaryMethods = new IBinaryMethod[total];
- for (int i = 0, index = 0; i < initialTotal; i++) {
- if (iClinit != i && (toSkip == null || toSkip[i] != -1)) {
+
+ boolean hasRestrictedAccess = hasRestrictedAccess();
+ MethodBinding[] methods1 = new MethodBinding[total];
+ if (total == initialTotal) {
+ for (int i = 0; i < initialTotal; i++) {
MethodBinding method = createMethod(iMethods[i], binaryType, sourceLevel, missingTypeNames);
if (hasRestrictedAccess)
method.modifiers |= ExtraCompilerModifiers.AccRestrictedAccess;
- mappedBinaryMethods[index] = iMethods[i];
- methods1[index++] = method;
+ methods1[i] = method;
}
+ this.methods = methods1;
+ return iMethods;
+ } else {
+ IBinaryMethod[] mappedBinaryMethods = new IBinaryMethod[total];
+ for (int i = 0, index = 0; i < initialTotal; i++) {
+ if (iClinit != i && (toSkip == null || toSkip[i] != -1)) {
+ MethodBinding method = createMethod(iMethods[i], binaryType, sourceLevel, missingTypeNames);
+ if (hasRestrictedAccess)
+ method.modifiers |= ExtraCompilerModifiers.AccRestrictedAccess;
+ mappedBinaryMethods[index] = iMethods[i];
+ methods1[index++] = method;
+ }
+ }
+ this.methods = methods1;
+ return mappedBinaryMethods;
}
- this.methods = methods1;
- return mappedBinaryMethods;
+ } finally {
+ this.environment.mayTolerateMissingType = save;
}
}
//{ObjectTeams: create bindings for OTRE-generated methods:
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding18.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding18.java
index 7bf4782a9..597111471 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding18.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CaptureBinding18.java
@@ -103,6 +103,8 @@ public class CaptureBinding18 extends CaptureBinding {
return erasures[0];
return this.environment.createIntersectionType18(erasures);
}
+ if (this.superclass == null)
+ return this.environment.getType(TypeConstants.JAVA_LANG_OBJECT);
return super.erasure();
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
index cb86d339c..1ff0bb523 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
@@ -86,12 +86,6 @@ public class CompilationUnitScope extends Scope {
private ImportBinding[] tempImports; // to keep a record of resolved imports while traversing all in faultInImports()
/**
- * Flag that should be set during annotation traversal or similar runs
- * to prevent caching of failures regarding imports of yet to be generated classes.
- */
- public boolean suppressImportErrors;
-
- /**
* Skips import caching if unresolved imports were
* found last time.
*/
@@ -99,7 +93,7 @@ public class CompilationUnitScope extends Scope {
boolean connectingHierarchy;
private ArrayList<Invocation> inferredInvocations;
- /** Cache of interned inference variables. Access only via {@link InferenceVariable#get(TypeBinding, int, InvocationSite, Scope, ReferenceBinding)}. */
+ /** Cache of interned inference variables. Access only via {@link InferenceVariable#get(TypeBinding, int, InvocationSite, Scope, ReferenceBinding, boolean)}. */
Map<InferenceVariable.InferenceVarKey, InferenceVariable> uniqueInferenceVariables = new HashMap<>();
//{ObjectTeams: when used as a baseimport scope, remember the original scope during this current lookup
public Scope originalScope;
@@ -628,7 +622,7 @@ void faultInImports() {
return; // faultInImports already in progress
boolean unresolvedFound = false;
// should report unresolved only if we are not suppressing caching of failed resolutions
- boolean reportUnresolved = !this.suppressImportErrors;
+ boolean reportUnresolved = !this.environment.suppressImportErrors;
if (this.typeOrPackageCache != null && !this.skipCachingImports)
return; // can be called when a field constant is resolved before static imports
@@ -792,7 +786,7 @@ void faultInImports() {
if (!binding.onDemand && binding.resolvedImport instanceof ReferenceBinding || binding instanceof ImportConflictBinding)
this.typeOrPackageCache.put(binding.compoundName[binding.compoundName.length - 1], binding);
}
- this.skipCachingImports = this.suppressImportErrors && unresolvedFound;
+ this.skipCachingImports = this.environment.suppressImportErrors && unresolvedFound;
}
public void faultInTypes() {
faultInImports();
@@ -859,7 +853,7 @@ private Binding findImport(char[][] compoundName, int length, boolean allowDecap
packageBinding = (PackageBinding) binding;
}
if (packageBinding.isValidBinding() && !module.canAccess(packageBinding))
- return new ProblemPackageBinding(compoundName, ProblemReasons.NotAccessible);
+ return new ProblemPackageBinding(compoundName, ProblemReasons.NotAccessible, this.environment);
return packageBinding;
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
index a80528e34..90052785b 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceContext18.java
@@ -313,7 +313,7 @@ public class InferenceContext18 {
}
InferenceVariable[] newVariables = new InferenceVariable[len];
for (int i = 0; i < len; i++)
- newVariables[i] = InferenceVariable.get(typeVariables[i], i, this.currentInvocation, this.scope, this.object);
+ newVariables[i] = InferenceVariable.get(typeVariables[i], i, this.currentInvocation, this.scope, this.object, true);
addInferenceVariables(newVariables);
return newVariables;
}
@@ -341,7 +341,7 @@ public class InferenceContext18 {
newVariables[i] = (InferenceVariable) typeVariables[i]; // prevent double substitution of an already-substituted inferenceVariable
else
toAdd[numToAdd++] =
- newVariables[i] = InferenceVariable.get(typeVariables[i], i, this.currentInvocation, this.scope, this.object);
+ newVariables[i] = InferenceVariable.get(typeVariables[i], i, this.currentInvocation, this.scope, this.object, false);
}
if (numToAdd > 0) {
int start = 0;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceSubstitution.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceSubstitution.java
index 1b2354557..dbf2ff903 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceSubstitution.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceSubstitution.java
@@ -83,7 +83,7 @@ public class InferenceSubstitution extends Scope.Substitutor implements Substitu
public TypeBinding substitute(Substitution substitution, TypeBinding originalType) {
for (int i = 0; i < this.variables.length; i++) {
InferenceVariable variable = this.variables[i];
- if (isInSites(variable.site) && isSameParameter(getP(i), originalType)) {
+ if (variable.isFromInitialSubstitution && isInSites(variable.site) && isSameParameter(getP(i), originalType)) {
if (this.environment.globalOptions.isAnnotationBasedNullAnalysisEnabled && originalType.hasNullTypeAnnotations())
return this.environment.createAnnotatedType(variable.withoutToplevelNullAnnotation(), originalType.getTypeAnnotations());
return variable;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceVariable.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceVariable.java
index 4511ae9ee..dc7585669 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceVariable.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/InferenceVariable.java
@@ -65,7 +65,7 @@ public class InferenceVariable extends TypeVariableBinding {
* Create or retrieve the inference variable representing the given typeParameter.
* Inference variables are interned to avoid duplication due to lambda copying.
*/
- public static InferenceVariable get(TypeBinding typeParameter, int rank, InvocationSite site, Scope scope, ReferenceBinding object) {
+ public static InferenceVariable get(TypeBinding typeParameter, int rank, InvocationSite site, Scope scope, ReferenceBinding object, boolean initial) {
Map<InferenceVarKey, InferenceVariable> uniqueInferenceVariables = scope.compilationUnitScope().uniqueInferenceVariables;
InferenceVariable var = null;
InferenceVarKey key = null;
@@ -75,7 +75,7 @@ public class InferenceVariable extends TypeVariableBinding {
}
if (var == null) {
int newVarId = uniqueInferenceVariables.size();
- var = new InferenceVariable(typeParameter, rank, newVarId, site, scope.environment(), object);
+ var = new InferenceVariable(typeParameter, rank, newVarId, site, scope.environment(), object, initial);
if (key != null)
uniqueInferenceVariables.put(key, var);
}
@@ -88,10 +88,13 @@ public class InferenceVariable extends TypeVariableBinding {
long nullHints; // one of TagBits.{AnnotationNonNull,AnnotationNullable} may steer inference into inferring nullness as well; set both bits to request avoidance.
private InferenceVariable prototype;
int varId; // this is used for constructing a source name like T#0.
+ public boolean isFromInitialSubstitution; // further ivars created during 18.5.2 (for capture bounds) set this to false
+ // to mark that they don't participate in any theta substitution
- private InferenceVariable(TypeBinding typeParameter, int parameterRank, int iVarId, InvocationSite site, LookupEnvironment environment, ReferenceBinding object) {
+ private InferenceVariable(TypeBinding typeParameter, int parameterRank, int iVarId, InvocationSite site, LookupEnvironment environment, ReferenceBinding object, boolean initial) {
this(typeParameter, parameterRank, site, makeName(typeParameter, iVarId), environment, object);
this.varId = iVarId;
+ this.isFromInitialSubstitution = initial;
}
private static char[] makeName(TypeBinding typeParameter, int iVarId) {
if (typeParameter.getClass() == TypeVariableBinding.class) {
@@ -126,6 +129,7 @@ public class InferenceVariable extends TypeVariableBinding {
clone.tagBits = this.tagBits;
clone.nullHints = this.nullHints;
clone.varId = this.varId;
+ clone.isFromInitialSubstitution = this.isFromInitialSubstitution;
clone.prototype = this;
return clone;
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
index 6c8c01b53..b107b44a6 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/LookupEnvironment.java
@@ -188,6 +188,12 @@ public class LookupEnvironment implements ProblemReasons, TypeConstants {
/** Global access to the outermost active inference context as the universe for inference variable interning. */
InferenceContext18 currentInferenceContext;
+ /**
+ * Flag that should be set during annotation traversal or similar runs
+ * to prevent caching of failures regarding imports of yet to be generated classes.
+ */
+ public boolean suppressImportErrors; // per module
+
final static int BUILD_FIELDS_AND_METHODS = 4;
final static int BUILD_TYPE_HIERARCHY = 1;
final static int CHECK_AND_SET_IMPORTS = 2;
@@ -196,7 +202,7 @@ public class LookupEnvironment implements ProblemReasons, TypeConstants {
final static int ROLES_LINKED = 5;
// SH}
- static final ProblemPackageBinding TheNotFoundPackage = new ProblemPackageBinding(CharOperation.NO_CHAR, NotFound);
+ static final ProblemPackageBinding TheNotFoundPackage = new ProblemPackageBinding(CharOperation.NO_CHAR, NotFound, null/*not perfect*/);
static final ProblemReferenceBinding TheNotFoundType = new ProblemReferenceBinding(CharOperation.NO_CHAR_CHAR, null, NotFound);
static final ModuleBinding TheNotFoundModule = new ModuleBinding(CharOperation.NO_CHAR);
@@ -766,12 +772,13 @@ void internalCompleteTypeBindings(CompilationUnitDeclaration parsedUnit, int req
// SH}
if (parsedUnit.scope == null) return; // parsing errors were too severe
LookupEnvironment rootEnv = this.root;
+ CompilationUnitDeclaration previousUnitBeingCompleted = rootEnv.unitBeingCompleted;
(rootEnv.unitBeingCompleted = parsedUnit).scope.checkAndSetImports();
parsedUnit.scope.connectTypeHierarchy();
parsedUnit.scope.checkParameterizedTypes();
if (buildFieldsAndMethods)
parsedUnit.scope.buildFieldsAndMethods();
- rootEnv.unitBeingCompleted = null;
+ rootEnv.unitBeingCompleted = previousUnitBeingCompleted;
}
/*
@@ -2199,6 +2206,9 @@ TypeBinding getTypeFromSignature(char[] signature, int start, int end, boolean i
}
private TypeBinding annotateType(TypeBinding binding, ITypeAnnotationWalker walker, char[][][] missingTypeNames) {
+ if (walker == ITypeAnnotationWalker.EMPTY_ANNOTATION_WALKER) {
+ return binding;
+ }
int depth = binding.depth() + 1;
if (depth > 1) {
// need to count non-static nesting levels, resolved binding required for precision
@@ -2307,13 +2317,13 @@ public TypeBinding getTypeFromTypeSignature(SignatureWrapper wrapper, TypeVariab
// type must be a ReferenceBinding at this point, cannot be a BaseTypeBinding or ArrayTypeBinding
ReferenceBinding actualType = (ReferenceBinding) type;
- if (actualType instanceof UnresolvedReferenceBinding)
+ if (walker != ITypeAnnotationWalker.EMPTY_ANNOTATION_WALKER && actualType instanceof UnresolvedReferenceBinding)
if (actualType.depth() > 0)
actualType = (ReferenceBinding) BinaryTypeBinding.resolveType(actualType, this, false /* no raw conversion */); // must resolve member types before asking for enclosingType
ReferenceBinding actualEnclosing = actualType.enclosingType();
ITypeAnnotationWalker savedWalker = walker;
- if(actualType.depth() > 0) {
+ if(walker != ITypeAnnotationWalker.EMPTY_ANNOTATION_WALKER && actualType.depth() > 0) {
int nonStaticNestingLevels = countNonStaticNestingLevels(actualType);
for (int i = 0; i < nonStaticNestingLevels; i++) {
walker = walker.toNextNestedType();
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
index d972ad3db..953bcebc3 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
@@ -101,6 +101,10 @@ public class ModuleBinding extends Binding implements IUpdatableModule {
return ANY;
}
@Override
+ public char[] nameForCUCheck() {
+ return UNNAMED;
+ }
+ @Override
public char[] readableName() {
return UNNAMED_READABLE_NAME;
}
@@ -621,7 +625,11 @@ public class ModuleBinding extends Binding implements IUpdatableModule {
&& !packageMayBeIncomplete // don't remember package that may still lack some siblings
&& !(parent instanceof SplitPackageBinding)) // don't store problem into SPB, because from different focus things may look differently
{
- parent.knownPackages.put(name, binding == null ? LookupEnvironment.TheNotFoundPackage : binding);
+ if (binding == null) {
+ parent.addNotFoundPackage(name);
+ } else {
+ parent.knownPackages.put(name, binding);
+ }
}
return null;
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
index 0d3e00164..9d8420def 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
@@ -85,11 +85,14 @@ public PackageBinding(LookupEnvironment environment) {
this(CharOperation.NO_CHAR_CHAR, null, environment, environment.module);
}
protected void addNotFoundPackage(char[] simpleName) {
- this.knownPackages.put(simpleName, LookupEnvironment.TheNotFoundPackage);
+ if (!this.environment.suppressImportErrors)
+ this.knownPackages.put(simpleName, LookupEnvironment.TheNotFoundPackage);
}
//{ObjectTeams: ROFI changed visibility, was private
void addNotFoundType(char[] simpleName) {
// SH}
+ if (this.environment.suppressImportErrors)
+ return;
if (this.knownTypes == null)
this.knownTypes = new HashtableOfType(25);
this.knownTypes.put(simpleName, LookupEnvironment.TheNotFoundType);
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java
index 415ef3ada..846167c49 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ParameterizedTypeBinding.java
@@ -101,7 +101,7 @@ public class ParameterizedTypeBinding extends ReferenceBinding implements Substi
public ParameterizedTypeBinding(ReferenceBinding type, TypeBinding[] arguments, ITeamAnchor teamAnchor, ReferenceBinding enclosingType, LookupEnvironment environment){
// orig:
this.environment = environment;
- this.enclosingType = enclosingType; // never unresolved, never lazy per construction
+ this.enclosingType = enclosingType; // never unresolved, but if type is an unresolved nested type, enclosingType is null here but set later in swapUnresolved.
if (!type.hasEnclosingInstanceContext() && arguments == null && !(this instanceof RawTypeBinding))
// :giro
if (teamAnchor == null)
@@ -493,6 +493,9 @@ public class ParameterizedTypeBinding extends ReferenceBinding implements Substi
*/
@Override
public ReferenceBinding enclosingType() {
+ if (this.type instanceof UnresolvedReferenceBinding && ((UnresolvedReferenceBinding) this.type).depth() > 0) {
+ ((UnresolvedReferenceBinding) this.type).resolve(this.environment, false); // may set enclosingType as side effect
+ }
return this.enclosingType;
}
@@ -835,21 +838,6 @@ public class ParameterizedTypeBinding extends ReferenceBinding implements Substi
return ReferenceBinding.binarySearch(fieldName, this.fields);
}
- /**
- * @see org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding#getMemberType(char[])
- */
- @Override
- public ReferenceBinding getMemberType(char[] typeName) {
- memberTypes(); // ensure memberTypes have been initialized... must create all at once unlike methods
- int typeLength = typeName.length;
- for (int i = this.memberTypes.length; --i >= 0;) {
- ReferenceBinding memberType = this.memberTypes[i];
- if (memberType.sourceName.length == typeLength && CharOperation.equals(memberType.sourceName, typeName))
- return memberType;
- }
- return null;
- }
-
/**
* @see org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding#getMethods(char[])
*/
@@ -1646,7 +1634,7 @@ public class ParameterizedTypeBinding extends ReferenceBinding implements Substi
update = true;
ReferenceBinding enclosing = resolvedType.enclosingType();
if (enclosing != null) {
- this.enclosingType = (ReferenceBinding) env.convertUnresolvedBinaryToRawType(enclosing); // needed when binding unresolved member type
+ this.enclosingType = resolvedType.isStatic() ? enclosing : (ReferenceBinding) env.convertUnresolvedBinaryToRawType(enclosing); // needed when binding unresolved member type
}
}
if (this.arguments != null) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java
index 24053bebb..b6e6feb83 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ProblemPackageBinding.java
@@ -18,15 +18,16 @@ public class ProblemPackageBinding extends PackageBinding {
private int problemId;
// NOTE: must only answer the subset of the name related to the problem
-ProblemPackageBinding(char[][] compoundName, int problemId) {
+ProblemPackageBinding(char[][] compoundName, int problemId, LookupEnvironment environment) {
this.compoundName = compoundName;
this.problemId = problemId;
+ this.environment = environment;
}
//{ObjectTeams: accessible for OTClassScope:
public
// SH}
-ProblemPackageBinding(char[] name, int problemId) {
- this(new char[][] {name}, problemId);
+ProblemPackageBinding(char[] name, int problemId, LookupEnvironment environment) {
+ this(new char[][] {name}, problemId, environment);
}
/* API
* Answer the problem id associated with the receiver.
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java
index a46e22919..f06959247 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/RawTypeBinding.java
@@ -333,4 +333,11 @@ public class RawTypeBinding extends ParameterizedTypeBinding {
public ReferenceBinding downwardsProjection(Scope scope, TypeBinding[] mentionedTypeVariables) {
return this;
}
+
+ @Override
+ public ReferenceBinding enclosingType() {
+ // ParameterizedTypeBinding earlier always had a resolved enclosed type, but now it does on-demand resolving.
+ // Behaviour for RawTypeBinding should be unchanged.
+ return this.enclosingType;
+ }
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeSystem.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeSystem.java
index afd43cb86..abb522b2c 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeSystem.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/TypeSystem.java
@@ -112,7 +112,7 @@ public class TypeSystem {
this.type = resolvedType; // cannot be raw since being parameterized below
ReferenceBinding enclosing = resolvedType.enclosingType();
if (enclosing != null) {
- this.enclosingType = (ReferenceBinding) env.convertUnresolvedBinaryToRawType(enclosing); // needed when binding unresolved member type
+ this.enclosingType = resolvedType.isStatic() ? enclosing : (ReferenceBinding) env.convertUnresolvedBinaryToRawType(enclosing); // needed when binding unresolved member type
}
}
if (this.arguments != null) {
@@ -146,7 +146,7 @@ public class TypeSystem {
@Override
public int hashCode() {
final int prime=31;
- int hashCode = 1 + hash(this.type) + (this.enclosingType != null ? hash(this.enclosingType) : 0);
+ int hashCode = 1 + hash(this.type);
for (int i = 0, length = this.arguments == null ? 0 : this.arguments.length; i < length; i++) {
hashCode = hashCode * prime + hash(this.arguments[i]);
}
@@ -197,7 +197,7 @@ public class TypeSystem {
if (parameterizedType.actualType() != genericTypeToMatch) { //$IDENTITY-COMPARISON$
continue;
}
- if (parameterizedType.enclosingType() != enclosingTypeToMatch //$IDENTITY-COMPARISON$
+ if (parameterizedType.enclosingType != enclosingTypeToMatch //$IDENTITY-COMPARISON$
|| !Util.effectivelyEqual(parameterizedType.typeArguments(), typeArgumentsToMatch))
continue;
if (Util.effectivelyEqual(annotations, parameterizedType.getTypeAnnotations()))
@@ -372,6 +372,11 @@ public class TypeSystem {
// SH}
ReferenceBinding unannotatedGenericType = (ReferenceBinding) getUnannotatedType(genericType);
+ // getUnannotatedType may have replaced URB by resolvedType
+ if (enclosingType == null && genericType instanceof UnresolvedReferenceBinding
+ && !(unannotatedGenericType instanceof UnresolvedReferenceBinding)) {
+ enclosingType = unannotatedGenericType.enclosingType();
+ }
int typeArgumentsLength = typeArguments == null ? 0: typeArguments.length;
TypeBinding [] unannotatedTypeArguments = typeArguments == null ? null : new TypeBinding[typeArgumentsLength];
for (int i = 0; i < typeArgumentsLength; i++) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java
index f46424103..793a33ecc 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocParser.java
@@ -524,6 +524,9 @@ public class JavadocParser extends AbstractCommentParser {
if (length == TAG_AUTHOR_LENGTH && CharOperation.equals(TAG_AUTHOR, tagName, 0, length)) {
this.tagValue = TAG_AUTHOR_VALUE;
this.tagWaitingForDescription = this.tagValue;
+ }else if (length == TAG_API_NOTE_LENGTH && CharOperation.equals(TAG_API_NOTE, tagName, 0, length)) {
+ this.tagValue = TAG_API_NOTE_VALUE;
+ this.tagWaitingForDescription = this.tagValue;
}
break;
case 'c':
@@ -558,8 +561,18 @@ public class JavadocParser extends AbstractCommentParser {
}
}
break;
+ case 'h':
+ if (length == TAG_HIDDEN_LENGTH && CharOperation.equals(TAG_HIDDEN, tagName, 0, length)) {
+ valid = true;
+ this.tagValue = TAG_HIDDEN_VALUE;
+ }
+ break;
case 'i':
- if (length == TAG_INHERITDOC_LENGTH && CharOperation.equals(TAG_INHERITDOC, tagName, 0, length)) {
+ if (length == TAG_INDEX_LENGTH && CharOperation.equals(TAG_INDEX, tagName, 0, length)) {
+ valid = true;
+ this.tagValue = TAG_INDEX_VALUE;
+ this.tagWaitingForDescription = this.tagValue;
+ } else if (length == TAG_INHERITDOC_LENGTH && CharOperation.equals(TAG_INHERITDOC, tagName, 0, length)) {
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=247037, @inheritDoc usage is illegal
// outside of few block tags and the main description.
switch (this.lastBlockTagValue) {
@@ -585,6 +598,12 @@ public class JavadocParser extends AbstractCommentParser {
}
}
this.tagValue = TAG_INHERITDOC_VALUE;
+ } else if (length == TAG_IMPL_SPEC_LENGTH && CharOperation.equals(TAG_IMPL_SPEC, tagName, 0, length)) {
+ this.tagValue = TAG_IMPL_SPEC_VALUE;
+ this.tagWaitingForDescription = this.tagValue;
+ } else if (length == TAG_IMPL_NOTE_LENGTH && CharOperation.equals(TAG_IMPL_NOTE, tagName, 0, length)) {
+ this.tagValue = TAG_IMPL_NOTE_VALUE;
+ this.tagWaitingForDescription = this.tagValue;
}
break;
case 'l':
@@ -609,8 +628,7 @@ public class JavadocParser extends AbstractCommentParser {
if (!this.inlineTagStarted) {
valid = parseParam();
}
- }
- if (length == TAG_PROVIDES_LENGTH && CharOperation.equals(TAG_PROVIDES, tagName, 0, length)) {
+ } else if (length == TAG_PROVIDES_LENGTH && CharOperation.equals(TAG_PROVIDES, tagName, 0, length)) {
this.tagValue = TAG_PROVIDES_VALUE;
this.tagWaitingForDescription = this.tagValue;
}
@@ -660,6 +678,9 @@ public class JavadocParser extends AbstractCommentParser {
} else if (length == TAG_SYSTEM_PROPERTY_LENGTH && CharOperation.equals(TAG_SYSTEM_PROPERTY, tagName, 0, length)) {
this.tagValue = TAG_SYSTEM_PROPERTY_VALUE;
this.tagWaitingForDescription = this.tagValue;
+ } else if (length == TAG_SUMMARY_LENGTH && CharOperation.equals(TAG_SUMMARY, tagName, 0, length)) {
+ this.tagValue = TAG_SUMMARY_VALUE;
+ this.tagWaitingForDescription = this.tagValue;
}
break;
case 't':
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java
index 63dbfa580..b6373fb87 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/JavadocTagConstants.java
@@ -48,6 +48,12 @@ public interface JavadocTagConstants {
public static final char[] TAG_SYSTEM_PROPERTY = "systemProperty".toCharArray(); //$NON-NLS-1$
public static final char[] TAG_USES = "uses".toCharArray(); //$NON-NLS-1$
public static final char[] TAG_PROVIDES = "provides".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_HIDDEN = "hidden".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_INDEX = "index".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_SUMMARY = "summary".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_API_NOTE = "apiNote".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_IMPL_SPEC = "implSpec".toCharArray(); //$NON-NLS-1$
+ public static final char[] TAG_IMPL_NOTE = "implNote".toCharArray(); //$NON-NLS-1$
// tags lengthes
public static final int TAG_DEPRECATED_LENGTH = TAG_DEPRECATED.length;
@@ -73,6 +79,12 @@ public interface JavadocTagConstants {
public static final int TAG_SYSTEM_PROPERTY_LENGTH = TAG_SYSTEM_PROPERTY.length;
public static final int TAG_USES_LENGTH = TAG_USES.length;
public static final int TAG_PROVIDES_LENGTH = TAG_PROVIDES.length;
+ public static final int TAG_HIDDEN_LENGTH = TAG_HIDDEN.length;
+ public static final int TAG_INDEX_LENGTH = TAG_INDEX.length;
+ public static final int TAG_SUMMARY_LENGTH = TAG_SUMMARY.length;
+ public static final int TAG_API_NOTE_LENGTH = TAG_API_NOTE.length;
+ public static final int TAG_IMPL_SPEC_LENGTH = TAG_IMPL_SPEC.length;
+ public static final int TAG_IMPL_NOTE_LENGTH = TAG_IMPL_NOTE.length;
// tags value
public static final int NO_TAG_VALUE = 0;
@@ -99,12 +111,18 @@ public interface JavadocTagConstants {
public static final int TAG_SYSTEM_PROPERTY_VALUE=21;
public static final int TAG_USES_VALUE=21;
public static final int TAG_PROVIDES_VALUE=22;
+ public static final int TAG_HIDDEN_VALUE = 23;
+ public static final int TAG_INDEX_VALUE = 24;
+ public static final int TAG_SUMMARY_VALUE = 25;
+ public static final int TAG_API_NOTE_VALUE = 26;
+ public static final int TAG_IMPL_SPEC_VALUE = 27;
+ public static final int TAG_IMPL_NOTE_VALUE = 28;
public static final int TAG_OTHERS_VALUE = 100;
//{ObjectTeams: role tag
public static final char[] TAG_ROLE = "role".toCharArray(); //$NON-NLS-1$
public static final int TAG_ROLE_LENGTH = TAG_ROLE.length;
- public static final int TAG_ROLE_VALUE = 23;
+ public static final int TAG_ROLE_VALUE = 30;
// SH}
// Tag names array
@@ -130,11 +148,17 @@ public interface JavadocTagConstants {
TAG_CODE, /* 18 */
TAG_LITERAL, /* 19 */
TAG_DOC_ROOT, /* 20 */
- TAG_SYSTEM_PROPERTY /* 21 */
+ TAG_SYSTEM_PROPERTY, /* 21 */
+ TAG_USES, /* 22 */
+ TAG_PROVIDES, /* 23 */
+ TAG_HIDDEN, /* 24 */
+ TAG_INDEX, /* 25 */
+ TAG_SUMMARY, /* 26 */
+ TAG_API_NOTE, /* 27 */
+ TAG_IMPL_SPEC, /* 28 */
+ TAG_IMPL_NOTE, /* 29 */
//{ObjectTeams: role tag:
- ,TAG_USES, /* 22 */ // omission in JDT?
- TAG_PROVIDES, /* 23 */ // omission in JDT?
- TAG_ROLE, /* 24 */
+ TAG_ROLE, /* 30 */
// SH}
};
@@ -185,9 +209,9 @@ public interface JavadocTagConstants {
// since 1.7
{},
// since 1.8
- {},
+ {TAG_API_NOTE, TAG_IMPL_SPEC, TAG_IMPL_NOTE},
// since 9
- {TAG_USES, TAG_PROVIDES},
+ { TAG_HIDDEN, TAG_USES, TAG_PROVIDES },
// since 10
{},
// since 11
@@ -215,9 +239,9 @@ public interface JavadocTagConstants {
// since 1.8
{},
// since 9
- {},
+ { TAG_INDEX },
// since 10
- {},
+ { TAG_SUMMARY },
// since 11
{},
//since 12
@@ -252,12 +276,17 @@ public interface JavadocTagConstants {
TAG_TYPE_INLINE, // TAG_CODE_VALUE = 18;
TAG_TYPE_INLINE, // TAG_LITERAL_VALUE = 19;
TAG_TYPE_INLINE, // TAG_DOC_ROOT_VALUE = 20;
- TAG_TYPE_INLINE // TAG_DOC_ROOT_VALUE = 21
+ TAG_TYPE_INLINE, // TAG_DOC_ROOT_VALUE = 21
+ TAG_TYPE_BLOCK, // TAG_HIDDEN_VALUE = 22;
+ TAG_TYPE_BLOCK, // TAG_PROVIDES_VALUE = 23;
+ TAG_TYPE_BLOCK, // TAG_USES_VALUE = 24;
+ TAG_TYPE_INLINE, // TAG_INDEX_VALUE = 25;
+ TAG_TYPE_INLINE, // TAG_SUMMARY_VALUE = 26;
+ TAG_TYPE_BLOCK, // TAG_API_NOTE = 27;
+ TAG_TYPE_BLOCK, // TAG_IMPL_SPEC = 28;
+ TAG_TYPE_BLOCK, // TAG_IMPL_NOTE = 29;
//{ObjectTeams: @role tag
- ,
- TAG_TYPE_BLOCK, // TAG_USES_VALUE = 22; // omission in JDT
- TAG_TYPE_BLOCK, // TAG_PROVIDES_VALUE = 23; // omission in JDT
- TAG_TYPE_BLOCK, // TAG_ROLE_VALUE = 24;
+ TAG_TYPE_BLOCK, // TAG_ROLE_VALUE = 30;
// SH}
};
/*
@@ -274,7 +303,13 @@ public interface JavadocTagConstants {
TAG_LINKPLAIN,
TAG_DOC_ROOT,
TAG_VALUE,
- TAG_SYSTEM_PROPERTY
+ TAG_SYSTEM_PROPERTY,
+ TAG_HIDDEN,
+ TAG_INDEX,
+ TAG_SUMMARY,
+ TAG_API_NOTE,
+ TAG_IMPL_SPEC,
+ TAG_IMPL_NOTE,
};
public static final char[][] COMPILATION_UNIT_TAGS = {};
public static final char[][] CLASS_TAGS = {
@@ -292,9 +327,14 @@ public interface JavadocTagConstants {
TAG_VALUE,
TAG_CODE,
TAG_LITERAL,
- TAG_SYSTEM_PROPERTY
+ TAG_SYSTEM_PROPERTY,
+ TAG_HIDDEN,
+ TAG_INDEX,
+ TAG_SUMMARY,
+ TAG_API_NOTE,
+ TAG_IMPL_SPEC,
+ TAG_IMPL_NOTE,
//{ObjectTeams: role tag:
- ,
TAG_ROLE,
// SH}
};
@@ -311,7 +351,13 @@ public interface JavadocTagConstants {
TAG_VALUE,
TAG_CODE,
TAG_LITERAL,
- TAG_SYSTEM_PROPERTY
+ TAG_SYSTEM_PROPERTY,
+ TAG_INDEX,
+ TAG_HIDDEN,
+ TAG_SUMMARY,
+ TAG_API_NOTE,
+ TAG_IMPL_SPEC,
+ TAG_IMPL_NOTE,
};
public static final char[][] METHOD_TAGS = {
TAG_SEE,
@@ -330,7 +376,13 @@ public interface JavadocTagConstants {
TAG_VALUE,
TAG_CODE,
TAG_LITERAL,
- TAG_SYSTEM_PROPERTY
+ TAG_SYSTEM_PROPERTY,
+ TAG_HIDDEN,
+ TAG_INDEX,
+ TAG_SUMMARY,
+ TAG_API_NOTE,
+ TAG_IMPL_SPEC,
+ TAG_IMPL_NOTE,
};
public static final char[][] MODULE_TAGS = {
TAG_SEE,
@@ -347,6 +399,12 @@ public interface JavadocTagConstants {
TAG_CODE,
TAG_LITERAL,
TAG_USES,
- TAG_PROVIDES
+ TAG_PROVIDES,
+ TAG_HIDDEN,
+ TAG_INDEX,
+ TAG_SUMMARY,
+ TAG_API_NOTE,
+ TAG_IMPL_SPEC,
+ TAG_IMPL_NOTE,
};
}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
index b420fd29c..f282e999a 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/parser/Parser.java
@@ -7415,7 +7415,7 @@ protected void consumePackageDeclaration() {
// flush comments defined prior to import statements
impt.declarationEnd = this.endStatementPosition;
impt.declarationSourceEnd = flushCommentsDefinedPriorTo(impt.declarationSourceEnd);
- if (this.firstToken == TerminalTokens.TokenNameQUESTION)
+ if (this.firstToken == TokenNameQUESTION)
this.unstackedAct = ACCEPT_ACTION; // force termination at goal
}
protected void consumePackageDeclarationName() {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
index af414b624..20df21071 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/problem/ProblemReporter.java
@@ -2002,10 +2002,7 @@ public void deprecatedMethod(final MethodBinding method, ASTNode location) {
// omit the new keyword from the warning marker
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=300031
AllocationExpression allocationExpression = (AllocationExpression) location;
- if (allocationExpression.enumConstant != null) {
- start = allocationExpression.enumConstant.sourceStart;
- }
- start = allocationExpression.type.sourceStart;
+ start = allocationExpression.nameSourceStart();
}
} else {
if (location instanceof MessageSend) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/OTClassScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/OTClassScope.java
index 8ea4157e7..dd567da21 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/OTClassScope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/objectteams/otdt/internal/core/compiler/lookup/OTClassScope.java
@@ -159,7 +159,7 @@ public class OTClassScope extends ClassScope {
{
switch (foundInParent.kind()) {
case Binding.PACKAGE:
- return new ProblemPackageBinding(compoundName, ProblemReasons.Ambiguous);
+ return new ProblemPackageBinding(compoundName, ProblemReasons.Ambiguous, environment());
case Binding.TYPE:
return problemTypeBinding(compoundName, (TypeBinding)foundInParent, ProblemReasons.Ambiguous);
}
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
index 897beadf2..4acd3f99e 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/AST.java
@@ -73,6 +73,7 @@ import org.eclipse.text.edits.TextEdit;
* Compilation units created by <code>ASTParser</code> from a
* source document can be serialized after arbitrary modifications
* with minimal loss of original formatting. Here is an example:
+ * </p>
* <pre>
* Document doc = new Document("import java.util.List;\nclass X {}\n");
* ASTParser parser = ASTParser.newParser(AST.JLS3);
@@ -86,6 +87,7 @@ import org.eclipse.text.edits.TextEdit;
* TextEdit edits = cu.rewrite(document, null);
* UndoEdit undo = edits.apply(document);
* </pre>
+ * <p>
* See also {@link org.eclipse.jdt.core.dom.rewrite.ASTRewrite} for
* an alternative way to describe and serialize changes to a
* read-only AST.
@@ -911,6 +913,7 @@ public final class AST {
* <code>"1.7"</code> means the source code is as per JDK 1.7;
* additional legal values may be added later. </li>
* </ul>
+ * <p>
* Options other than the above are ignored.
* </p>
*
@@ -1127,9 +1130,10 @@ public final class AST {
* <li>removing a child from a node owned by this AST,</li>
* <li>setting a non-node attribute of a node owned by this AST.</li>
* </ul>
- * </p>
+ * <p>
* Operations which do not entail creating or modifying existing nodes
* do not increase the modification count.
+ * </p>
* <p>
* N.B. This method may be called several times in the course
* of a single client operation. The only promise is that the modification
@@ -1154,7 +1158,6 @@ public final class AST {
* <li>removing a child from a node owned by this AST</li>
* <li>setting a non-node attribute of a node owned by this AST</li>.
* </ul>
- * </p>
* <p>
* N.B. This method may be called several times in the course
* of a single client operation.
@@ -1273,8 +1276,8 @@ public final class AST {
* array initializer.
* <p>
* Examples:
- * <code>
* <pre>
+ * <code>
* // new String[len]
* ArrayCreation ac1 = ast.newArrayCreation();
* ac1.setType(
@@ -1299,9 +1302,8 @@ public final class AST {
* ac3.setInitializer(ai);
* ai.expressions().add(ast.newNumberLiteral("1"));
* ai.expressions().add(ast.newNumberLiteral("2"));
- * </pre>
* </code>
- * </p>
+ * </pre>
*
* @return a new unparented array creation expression node
*/
@@ -1327,6 +1329,7 @@ public final class AST {
* By default, the array type has one non-annotated dimension.
* <p>
* For JLS4 and before, the given component type may be another array type.
+ * </p>
*
* @param elementType element type for API level JLS8 and later, or the
* component type (possibly another array type) for levels less than JLS8
@@ -1473,14 +1476,13 @@ public final class AST {
* <p>
* For example, the assignment expression <code>foo = true</code>
* is generated by the following snippet:
- * <code>
* <pre>
+ * <code>
* Assignment e= ast.newAssignment();
* e.setLeftHandSide(ast.newSimpleName("foo"));
* e.setRightHandSide(ast.newBooleanLiteral(true));
- * </pre>
* </code>
- * </p>
+ * </pre>
*
* @param value the boolean value
* @return a new unparented boolean literal node
@@ -3579,7 +3581,6 @@ public final class AST {
* <li><code>"java.lang.Void"</code> (since 3.1)</li>
* <li><code>"java.io.Serializable"</code></li>
* </ul>
- * </p>
*
* @param name the name of a well known type
* @return the corresponding type binding, or <code>null</code> if the
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
index f6449e747..afd7819c6 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTNode.java
@@ -72,7 +72,6 @@ import org.eclipse.jdt.internal.core.dom.NaiveASTFlattener;
* <li>types - <code>Type</code></li>
* <li>type body declarations - <code>BodyDeclaration</code></li>
* </ul>
- * </p>
* <p>
* Abstract syntax trees may be hand constructed by clients, using the
* <code>new<i>TYPE</i></code> factory methods (see <code>AST</code>) to
@@ -1809,7 +1808,6 @@ public abstract class ASTNode {
/**
* Returns the location of this node within its parent,
* or <code>null</code> if this is a root node.
- * <p>
* <pre>
* ASTNode node = ...;
* ASTNode parent = node.getParent();
@@ -1820,7 +1818,6 @@ public abstract class ASTNode {
* if ((location != null) && location.isChildListProperty())
* assert ((List) parent.getStructuralProperty(location)).contains(node);
* </pre>
- * </p>
* <p>
* Note that the relationship between an AST node and its parent node
* may change over the lifetime of a node.
@@ -2713,7 +2710,6 @@ public abstract class ASTNode {
* is recovered from source that contains a syntax error</li>
* </ul>
* Other bit positions are reserved for future use.
- * </p>
*
* @return the bitwise-or of individual flags
* @see #setFlags(int)
@@ -2738,7 +2734,6 @@ public abstract class ASTNode {
* is recovered from source that contains a syntax error</li>
* </ul>
* Other bit positions are reserved for future use.
- * </p>
* <p>
* Note that the flags are <em>not</em> considered a structural
* property of the node, and can be changed even if the
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
index c2ceb2e32..fb2b8803f 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTParser.java
@@ -66,6 +66,7 @@ import org.eclipse.objectteams.otdt.core.exceptions.InternalCompilerError;
* parser.setCompilerOptions(options);
* CompilationUnit result = (CompilationUnit) parser.createAST(null);
* </pre>
+ * <p>
* Once a configured parser instance has been used to create an AST,
* the settings are automatically reset to their defaults,
* ready for the parser instance to be reused.
@@ -93,7 +94,6 @@ import org.eclipse.objectteams.otdt.core.exceptions.InternalCompilerError;
* <li>Whether to return a {@linkplain #setFocalPosition(int) abridged AST}
* focused on the declaration containing a given source position.</li>
* </ul>
- * </p>
*
* @since 3.0
* @noinstantiate This class is not intended to be instantiated by clients.
@@ -523,10 +523,12 @@ public class ASTParser {
* <li>{@link #K_EXPRESSION K_EXPRESSION}: The result node is a subclass of
* {@link Expression Expression}. Other aspects of the expression are unspecified.</li>
* </ul>
+ * <p>
* The resulting AST node is rooted under (possibly contrived)
* {@link CompilationUnit CompilationUnit} node, to allow the
* client to retrieve the following pieces of information
* available there:
+ * </p>
* <ul>
* <li>{@linkplain CompilationUnit#getLineNumber(int) Line number map}. Line
* numbers start at 1 and only cover the subrange scanned
@@ -538,6 +540,7 @@ public class ASTParser {
* <li>{@linkplain CompilationUnit#getCommentList() Comment list}
* for the subrange scanned.</li>
* </ul>
+ * <p>
* The contrived nodes do not have source positions. Other aspects of the
* {@link CompilationUnit CompilationUnit} node are unspecified, including
* the exact arrangement of intervening nodes.
@@ -866,6 +869,7 @@ public class ASTParser {
* is called passing the compilation unit and the corresponding AST to <code>requestor</code>.
* </li>
* </ul>
+ * <p>
* Note only ASTs from the given compilation units are reported
* to the requestor. If additional compilation units are required to
* resolve the original ones, the corresponding ASTs are <b>not</b>
@@ -879,7 +883,6 @@ public class ASTParser {
* <li>The {@linkplain #setSourceRange(int,int) source range} is <code>(0, -1)</code></li>
* <li>The {@linkplain #setFocalPosition(int) focal position} is not set</li>
* </ul>
- * </p>
* <p>
* The <code>bindingKeys</code> parameter specifies bindings keys
* ({@link IBinding#getKey()}) that are to be looked up. These keys may
@@ -955,6 +958,7 @@ public class ASTParser {
* path that is passed into the given <code>sourceFilePaths</code> parameter.
* </li>
* </ul>
+ * <p>
* Note only ASTs from the given compilation units are reported
* to the requestor. If additional compilation units are required to
* resolve the original ones, the corresponding ASTs are <b>not</b>
@@ -963,12 +967,12 @@ public class ASTParser {
* <p>
* Note also the following parser parameters are used, regardless of what
* may have been specified:
+ * </p>
* <ul>
* <li>The {@linkplain #setKind(int) parser kind} is <code>K_COMPILATION_UNIT</code></li>
* <li>The {@linkplain #setSourceRange(int,int) source range} is <code>(0, -1)</code></li>
* <li>The {@linkplain #setFocalPosition(int) focal position} is not set</li>
* </ul>
- * </p>
* <p>
* The <code>bindingKeys</code> parameter specifies bindings keys
* ({@link IBinding#getKey()}) that are to be looked up. These keys may
@@ -1056,7 +1060,6 @@ public class ASTParser {
* <li>The {@linkplain #setSourceRange(int,int) source range} is <code>(0, -1)</code></li>
* <li>The {@linkplain #setFocalPosition(int) focal position} is not set</li>
* </ul>
- * </p>
* <p>
* A successful call to this method returns all settings to their
* default values so the object is ready to be reused.
@@ -1318,6 +1321,7 @@ public class ASTParser {
* <li>{@linkplain CompilationUnit#getCommentList() Comment list}
* for the subrange scanned.</li>
* </ul>
+ * <p>
* The contrived nodes do not have source positions. Other aspects of the
* {@link CompilationUnit CompilationUnit} node are unspecified, including
* the exact arrangment of intervening nodes.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
index 8a7fdc01b..1949fb0a1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ASTVisitor.java
@@ -37,7 +37,7 @@ package org.eclipse.jdt.core.dom;
* <code>false</code>). The default implementation provided by this class does
* nothing. Subclasses may reimplement this method as needed.</li>
* </ul>
- * </p>
+ * <p>
* In addition, there are a pair of methods for visiting AST nodes in the
* abstract, regardless of node type:
* <ul>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
index 24e611f28..0db795695 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Annotation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -15,14 +15,12 @@ package org.eclipse.jdt.core.dom;
/**
* Abstract base class of AST nodes that represent annotations.
- * <p>
* <pre>
* Annotation:
* NormalAnnotation
* MarkerAnnotation
* SingleMemberAnnotation
* </pre>
- * </p>
* @since 3.1
*/
@SuppressWarnings("rawtypes")
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
index 493b1724c..6cfde6788 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ArrayCreation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,6 @@ import java.util.List;
* <li>the dimension expressions are collected into the <code>dimensions</code>
* list.</li>
* </ul>
- * </p>
*
* @since 2.0
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
index 3e21d5c97..6b48ec3f9 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/BodyDeclaration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -22,7 +22,6 @@ import java.util.List;
* that may appear in the body of some kind of class or interface declaration,
* including anonymous class declarations, enumeration declarations, and
* enumeration constant declarations.
- * <p>
* <pre>
* BodyDeclaration:
* {@link AbstractTypeDeclaration}
@@ -35,7 +34,6 @@ import java.util.List;
* {@link Initializer}
* {@link MethodDeclaration} (for methods and constructors)
* </pre>
- * </p>
* <p>
* All types of body declarations carry modifiers (and annotations), although they differ in
* which modifiers are allowed. Most types of body declarations can carry a
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
index 86f83d548..786e83a64 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CharacterLiteral.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -200,7 +200,6 @@ public class CharacterLiteral extends Expression {
* s.setEscapedValue("\'x\'");
* assert s.charValue() == 'x';
* </pre>
- * </p>
*
* @return the character value without enclosing quotes and embedded
* escapes
@@ -300,7 +299,6 @@ public class CharacterLiteral extends Expression {
* assert s.charValue() == 'x';
* assert s.getEscapedValue().equals("\'x\'");
* </pre>
- * </p>
*
* @param value the character value
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
index 1bfaeb66e..8d27af005 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ClassInstanceCreation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -399,7 +399,7 @@ public class ClassInstanceCreation extends Expression {
* @exception IllegalArgumentException if:
* <ul>
* <li>the node belongs to a different AST</li>
- * <li>the node already has a parent</li>`
+ * <li>the node already has a parent</li>
* </ul>
* @exception UnsupportedOperationException if this operation is used in
* an AST later than JLS2
@@ -459,7 +459,7 @@ public class ClassInstanceCreation extends Expression {
* @exception IllegalArgumentException if:
* <ul>
* <li>the node belongs to a different AST</li>
- * <li>the node already has a parent</li>`
+ * <li>the node already has a parent</li>
* </ul>
* @exception UnsupportedOperationException if this operation is used in
* a JLS2 AST
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Comment.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Comment.java
index 75020d949..4b44887a1 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Comment.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Comment.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2009 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,14 +19,12 @@ package org.eclipse.jdt.core.dom;
* line comments ({@link LineComment}),
* block comments ({@link BlockComment}), and
* doc comments ({@link Javadoc}).
- * <p>
* <pre>
* Comment:
* LineComment
* BlockComment
* Javadoc
* </pre>
- * </p>
*
* @since 3.0
*/
@@ -109,8 +107,6 @@ public abstract class Comment extends ASTNode {
/**
* Returns the root AST node that this comment occurs
* within, or <code>null</code> if none (or not recorded).
- * <p>
- * </p>
*
* @param root the alternate root node, or <code>null</code>
* if none
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
index 9cd41ab9f..841b7f4a2 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/CompilationUnit.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -349,6 +349,7 @@ public class CompilationUnit extends ASTNode {
* <li>member value pair binding - an <code>MemberValuePair</code>,
* or <code>null</code> if it represents a default value or a single member value</li>
* </ul>
+ * <p>
* For parameterized or raw type bindings, the declaring node is
* that of the corresponding generic type. And for parameterized or raw
* method bindings, the declaring node is that of the corresponding
@@ -407,7 +408,6 @@ public class CompilationUnit extends ASTNode {
* that of the corresponding generic type. And for parameterized or raw
* method bindings, the declaring node is that of the corresponding
* generic method.
- * </p>
*
* @param key the binding key, or <code>null</code>
* @return the corresponding node where a binding with the given
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Expression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Expression.java
index eccf166d2..d0c40e2b0 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Expression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Expression.java
@@ -17,7 +17,6 @@ package org.eclipse.jdt.core.dom;
/**
* Abstract base class of AST nodes that represent expressions.
* There are several kinds of expressions.
- * <p>
* <pre>
* Expression:
* {@link Annotation},
@@ -54,7 +53,6 @@ package org.eclipse.jdt.core.dom;
* {@link TypeMethodReference},
* {@link VariableDeclarationExpression}
* </pre>
- * </p>
*
* @since 2.0
*/
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
index c53c9800d..b4fab40fc 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/FieldAccess.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -29,6 +29,7 @@ import java.util.List;
* Note that there are several kinds of expressions that resemble field access
* expressions: qualified names, this expressions, and super field access
* expressions. The following guidelines help with correct usage:
+ * </p>
* <ul>
* <li>An expression like "foo.this" can only be represented as a this
* expression (<code>ThisExpression</code>) containing a simple name.
@@ -50,7 +51,6 @@ import java.util.List;
* only be represented as field access expressions
* (<code>FieldAccess</code>).</li>
* </ul>
- * </p>
*
* @see QualifiedName
* @see ThisExpression
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IBinding.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IBinding.java
index a9274ed4e..5e212cad4 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IBinding.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -243,6 +243,7 @@ public interface IBinding {
* <li>synthetic bindings</li>
* <li>problem package bindings (since Java 9)</li>
* </ul>
+ * <p>
* For all other kind of type, method, variable, annotation and package bindings,
* this method returns non-<code>null</code>.
* </p>
@@ -308,7 +309,6 @@ public interface IBinding {
* <li>annotations - the key of the annotated element and the key of
* the annotation type</li>
* </ul>
- * </p>
* <p>
* The key for a type binding does <em>not</em> contain {@link ITypeBinding#getTypeAnnotations() type annotations},
* so type bindings with different type annotations may have the same key (iff they denote the same un-annotated type).
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ITypeBinding.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ITypeBinding.java
index 28fb31b33..38f24dbce 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ITypeBinding.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ITypeBinding.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -591,7 +591,6 @@ public interface ITypeBinding extends IBinding {
* <li>java.lang.@Marker2 String</li>
* <li>java.lang.String</li>
* </ul>
- * </p>
* To get the type annotations on dimensions, clients should repeatedly call
* {@link #getComponentType()} and get the type annotations from there.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IntersectionType.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IntersectionType.java
index be68171f1..1046ec51d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IntersectionType.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/IntersectionType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2013, 2014 IBM Corporation and others.
+ * Copyright (c) 2013, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -21,7 +21,7 @@ import java.util.List;
* Type node for an intersection type in a cast expression (added in JLS8 API).
* <pre>
* IntersectionType:
- * Type <b>&</b> Type { <b>&</b> Type }
+ * Type <b>&amp;</b> Type { <b>&amp;</b> Type }
* </pre>
* <p>
* This kind of node is used only inside a cast expression.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
index 89b663705..bd7a51fb8 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MarkerAnnotation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,12 +19,10 @@ import java.util.List;
/**
* Marker annotation node (added in JLS3 API). The marker annotation
* "@foo" is equivalent to the normal annotation "@foo()".
- * <p>
* <pre>
* MarkerAnnotation:
* <b>@</b> TypeName
* </pre>
- * </p>
*
* @since 3.1
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
index c1459ff7d..b988b7d6f 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/MemberValuePair.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,11 +19,11 @@ import java.util.List;
/**
* Member value pair node (added in JLS3 API). Member value pairs appear in annotations.
- * <p>
* <pre>
* MemberValuePair:
* SimpleName <b>=</b> Expression
* </pre>
+ * <p>
* Within annotations, only certain kinds of expressions are meaningful,
* including other annotations.
* </p>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ModuleDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ModuleDeclaration.java
index bdad064c8..eace44eed 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ModuleDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/ModuleDeclaration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2016, 2017 IBM Corporation and others.
+ * Copyright (c) 2016, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -24,8 +24,6 @@ import java.util.List;
* { RequiresDirective | ExportsDirective | OpensDirective | UsesDirective | ProvidesDirective }
* <b>}</b>
* </pre>
- * <p>
- * </p>
*
* @since 3.14
*
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Name.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Name.java
index 4e41ffafb..eeb937b5d 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Name.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Name.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2008 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -18,13 +18,11 @@ package org.eclipse.jdt.core.dom;
* Abstract base class for all AST nodes that represent names.
* There are exactly two kinds of name: simple ones
* (<code>SimpleName</code>) and qualified ones (<code>QualifiedName</code>).
- * <p>
* <pre>
* Name:
* SimpleName
* QualifiedName
* </pre>
- * </p>
*
* @since 2.0
* @noextend This class is not intended to be subclassed by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
index f3c1228c7..4efea1700 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/NormalAnnotation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -18,12 +18,10 @@ import java.util.List;
/**
* Normal annotation node (added in JLS3 API).
- * <p>
* <pre>
* NormalAnnotation:
* <b>@</b> TypeName <b>(</b> [ MemberValuePair { <b>,</b> MemberValuePair } ] <b>)</b>
* </pre>
- * </p>
*
* @since 3.1
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
index d03a445fa..5ec2ffe00 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SingleMemberAnnotation.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,11 +19,11 @@ import java.util.List;
/**
* Single member annotation node (added in JLS3 API). The single member annotation
* "@foo(bar)" is equivalent to the normal annotation "@foo(value=bar)".
- * <p>
* <pre>
* SingleMemberAnnotation:
* <b>@</b> TypeName <b>(</b> Expression <b>)</b>
* </pre>
+ * <p>
* Within annotations, only certain kinds of expressions are meaningful,
* including other annotations.
* </p>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Statement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Statement.java
index e81e2dd79..ecb61a56a 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Statement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Statement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -112,8 +112,8 @@ public abstract class Statement extends ASTNode {
* </p>
* <p>
* Examples:
- * <code>
* <pre>
+ * <code>
* setLeadingComment("/&#42; traditional comment &#42;/"); // correct
* setLeadingComment("missing comment delimiters"); // wrong
* setLeadingComment("/&#42; unterminated traditional comment "); // wrong
@@ -121,9 +121,8 @@ public abstract class Statement extends ASTNode {
* setLeadingComment("// end-of-line comment\n"); // correct
* setLeadingComment("// end-of-line comment without line terminator"); // correct
* setLeadingComment("// broken\n end-of-line comment\n"); // wrong
- * </pre>
* </code>
- * </p>
+ * </pre>
*
* @param comment the comment string, or <code>null</code> if none
* @exception IllegalArgumentException if the comment string is invalid
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
index 8541b6d83..fb7212264 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/StringLiteral.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -201,7 +201,6 @@ public class StringLiteral extends Expression {
* s.setEscapedValue("\"hello\\nworld\"");
* assert s.getLiteralValue().equals("hello\nworld");
* </pre>
- * </p>
* <p>
* Note that this is a convenience method that converts from the stored
* string literal token returned by <code>getEscapedLiteral</code>.
@@ -245,7 +244,6 @@ public class StringLiteral extends Expression {
* assert s.getEscapedValue().equals("\"hello\\nworld\"");
* assert s.getLiteralValue().equals("hello\nworld");
* </pre>
- * </p>
* <p>
* Note that this is a convenience method that converts to the stored
* string literal token acceptable to <code>setEscapedLiteral</code>.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
index 444a0ef7e..94404ed18 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchCase.java
@@ -20,7 +20,6 @@ import java.util.List;
/**
* Switch case AST node type. A switch case is a special kind of node used only
* in switch statements. It is a <code>Statement</code> in name only.
- * <p>
* <pre>
* SwitchCase:
* <b>case</b> Expression <b>:</b>
@@ -30,7 +29,6 @@ import java.util.List;
* <b>case</b> [ Expression { <b>,</b> Expression } ] <b>{ : | ->}</b>
* <b>default</b> <b>{ : | ->}</b>
* </pre>
- * </p>
*
* @since 2.0
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchExpression.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchExpression.java
index 1a899b441..135796d20 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchExpression.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchExpression.java
@@ -19,7 +19,6 @@ import java.util.List;
/**
* Switch expression AST node type (added in JEP 325).
- * <p>
* <pre>
* SwitchExpression:
* <b>switch</b> <b>(</b> Expression <b>)</b>
@@ -30,7 +29,6 @@ import java.util.List;
* </pre>
* <code>SwitchCase</code> nodes are treated as a kind of
* <code>Statement</code>.
- * </p>
*
* @since 3.18
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
index f3d05950e..f248dd428 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/SwitchStatement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,7 +19,6 @@ import java.util.List;
/**
* Switch statement AST node type.
- * <p>
* <pre>
* SwitchStatement:
* <b>switch</b> <b>(</b> Expression <b>)</b>
@@ -30,7 +29,6 @@ import java.util.List;
* </pre>
* <code>SwitchCase</code> nodes are treated as a kind of
* <code>Statement</code>.
- * </p>
*
* @since 2.0
* @noinstantiate This class is not intended to be instantiated by clients.
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
index fefb92777..01ebce7ea 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TagElement.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2013 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -112,8 +112,20 @@ public final class TagElement extends ASTNode implements IDocElement {
* Standard doc tag name (value {@value}).
*/
public static final String TAG_EXCEPTION = "@exception"; //$NON-NLS-1$
+
+ /**
+ * Standard doc tag name (value {@value}).
+ * @since 3.18
+ */
+ public static final String TAG_HIDDEN = "@hidden"; //$NON-NLS-1$
/**
+ * Standard doc tag name (value {@value}).
+ * @since 3.18
+ */
+ public static final String TAG_INDEX = "@index"; //$NON-NLS-1$
+
+ /**
* Standard inline doc tag name (value {@value}).
*/
public static final String TAG_INHERITDOC = "@inheritDoc"; //$NON-NLS-1$
@@ -144,6 +156,12 @@ public final class TagElement extends ASTNode implements IDocElement {
/**
* Standard doc tag name (value {@value}).
+ * @since 3.18
+ */
+ public static final String TAG_PROVIDES = "@provides"; //$NON-NLS-1$
+
+ /**
+ * Standard doc tag name (value {@value}).
*/
public static final String TAG_RETURN = "@return"; //$NON-NLS-1$
@@ -174,10 +192,22 @@ public final class TagElement extends ASTNode implements IDocElement {
/**
* Standard doc tag name (value {@value}).
+ * @since 3.18
+ */
+ public static final String TAG_SUMMARY = "@summary"; //$NON-NLS-1$
+
+ /**
+ * Standard doc tag name (value {@value}).
*/
public static final String TAG_THROWS = "@throws"; //$NON-NLS-1$
/**
+ * Standard doc tag name (value {@value}).
+ * @since 3.18
+ */
+ public static final String TAG_USES = "@uses"; //$NON-NLS-1$
+
+ /**
* Standard inline doc tag name (value {@value}).
*/
public static final String TAG_VALUE= "@value"; //$NON-NLS-1$
@@ -333,7 +363,6 @@ public final class TagElement extends ASTNode implements IDocElement {
* The use of Name, MethodRef, and MemberRef nodes within
* tag elements allows these fragments to be queried for
* binding information.
- * </p>
* <p>
* Adding and removing nodes from this list affects this node
* dynamically. The nodes in this list may be of various
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
index 5310e54b2..a5637bed8 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/Type.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,6 @@ package org.eclipse.jdt.core.dom;
* meaningful in the type argument position of a parameterized type.
* UnionType got introduced in JLS4 to support common catch blocks for disjunctive types.
* For JLS8, optional annotations indicated by {Annotation} got added.
- * <p>
* <pre>
* Type:
* AnnotatableType:
@@ -63,9 +62,8 @@ package org.eclipse.jdt.core.dom;
* {@link UnionType}:
* Type <b>|</b> Type { <b>|</b> Type }
* {@link IntersectionType}:
- * Type <b>&</b> Type { <b>&</b> Type }
+ * Type <b>&amp;</b> Type { <b>&amp;</b> Type }
* </pre>
- * </p>
*
* @since 2.0
*/
@@ -158,7 +156,6 @@ public abstract class Type extends ASTNode {
* either rather than make assumptions. (Note also that the first form
* became possible as of JLS3; only the second form existed in the
* JLS2 API.)
- * </p>
*
* @return <code>true</code> if this is a qualified type, and
* <code>false</code> otherwise
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
index 8dfee9779..c2a0e1991 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/TypeParameter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2003, 2014 IBM Corporation and others.
+ * Copyright (c) 2003, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -23,7 +23,7 @@ import java.util.List;
*
* <pre>
* TypeParameter:
- * { ExtendedModifier } Identifier [ <b>extends</b> Type { <b>&</b> Type } ]
+ * { ExtendedModifier } Identifier [ <b>extends</b> Type { <b>&amp;</b> Type } ]
* </pre>
*
* @since 3.1
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclaration.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclaration.java
index 795dbd0de..dc4ff57f0 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclaration.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/VariableDeclaration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -19,13 +19,11 @@ import java.util.List;
/**
* Abstract base class of all AST node types that declare a single
* variable.
- * <p>
* <pre>
* VariableDeclaration:
* SingleVariableDeclaration
* VariableDeclarationFragment
* </pre>
- * </p>
*
* @see SingleVariableDeclaration
* @see VariableDeclarationFragment
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
index aab7eb061..0df2a82f3 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/ImportRewrite.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -99,7 +99,8 @@ import org.eclipse.text.edits.TextEdit;
* <ul><li>{@link #setImportOrder(String[])} specifies the import groups and their preferred order</li>
* <li>{@link #setOnDemandImportThreshold(int)} specifies the number of imports in a group needed for a on-demand import statement (star import)</li>
* <li>{@link #setStaticOnDemandImportThreshold(int)} specifies the number of static imports in a group needed for a on-demand import statement (star import)</li>
- *</ul>
+ * </ul>
+ * <p>
* This class is not intended to be subclassed.
* </p>
* @since 3.2
@@ -240,7 +241,6 @@ public final class ImportRewrite {
* give more information about the types visible in the scope. These types can be for example inherited inner types where it is
* unnecessary to add import statements for.
*
- * </p>
* <p>
* This class can be implemented by clients.
* </p>
diff --git a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/TargetSourceRangeComputer.java b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/TargetSourceRangeComputer.java
index 26e41a055..991bf9b33 100644
--- a/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/TargetSourceRangeComputer.java
+++ b/org.eclipse.jdt.core/dom/org/eclipse/jdt/core/dom/rewrite/TargetSourceRangeComputer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2009 IBM Corporation and others.
+ * Copyright (c) 2005, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -107,11 +107,10 @@ public class TargetSourceRangeComputer {
* immediately before or after the normal source range for the node.
* <p>
* The returned source ranges must satisfy the following conditions:
- * <dl>
+ * <ul>
* <li>no two source ranges in an AST may be overlapping</li>
* <li>a source range of a parent node must fully cover the source ranges of its children</li>
- * </dl>
- * </p>
+ * </ul>
* <p>
* The default implementation uses
* {@link CompilationUnit#getExtendedStartPosition(ASTNode)}
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java
index 2e7db123e..ade7f181d 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/CodeFormatter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -155,7 +155,7 @@ public abstract class CodeFormatter {
* <li>{@link #K_STATEMENTS} <i>(since 3.6)</i></li>
* <li>{@link #K_MODULE_INFO} <i>(since 3.14)</i></li>
* </ul>
- * </p><p>
+ * <p>
* Note also that it has an effect only when one or several format comments
* options for
* {@link DefaultCodeFormatterConstants#FORMATTER_COMMENT_FORMAT_JAVADOC_COMMENT javadoc}
@@ -206,7 +206,7 @@ public abstract class CodeFormatter {
* }
* }
* </pre>
- * </p><p>
+ * <p>
* <i><u>Note</u>: Although we're convinced that the formatter should
* always include the comments while processing a
* {@link #K_COMPILATION_UNIT kind of compilation unit}, we
diff --git a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java
index f832f2d19..b3d3900fe 100644
--- a/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java
+++ b/org.eclipse.jdt.core/formatter/org/eclipse/jdt/core/formatter/DefaultCodeFormatterConstants.java
@@ -337,7 +337,7 @@ public class DefaultCodeFormatterConstants {
* </pre>
* @see #createAlignmentValue(boolean, int, int)
* @see #FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION
- * @since 3.17
+ * @since 3.18
*/
public static final String FORMATTER_ALIGNMENT_FOR_CONDITIONAL_EXPRESSION_CHAIN = JavaCore.PLUGIN_ID + ".formatter.alignment_for_conditional_expression_chain"; //$NON-NLS-1$
/**
@@ -1203,9 +1203,11 @@ public class DefaultCodeFormatterConstants {
* </pre>
*
* Note that at most one of these options can be set to {@code TRUE}:
+ * <ul>
* <li>{@code FORMATTER_COMMENT_INDENT_ROOT_TAGS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_NAMES_DESCRIPTIONS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_DESCREIPTIONS_GROUPED}.
+ * </ul>
*
* @see #TRUE
* @see #FALSE
@@ -1224,9 +1226,11 @@ public class DefaultCodeFormatterConstants {
* </pre>
*
* Note that at most one of these options can be set to {@code TRUE}:
+ * <ul>
* <li>{@code FORMATTER_COMMENT_INDENT_ROOT_TAGS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_NAMES_DESCRIPTIONS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_DESCREIPTIONS_GROUPED}.
+ * </ul>
*
* @see #TRUE
* @see #FALSE
@@ -1245,9 +1249,11 @@ public class DefaultCodeFormatterConstants {
* </pre>
*
* Note that at most one of these options can be set to {@code TRUE}:
+ * <ul>
* <li>{@code FORMATTER_COMMENT_INDENT_ROOT_TAGS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_NAMES_DESCRIPTIONS},
* <li>{@code FORMATTER_COMMENT_ALIGN_TAGS_DESCREIPTIONS_GROUPED}.
+ * </ul>
*
* @see #TRUE
* @see #FALSE
@@ -1419,7 +1425,7 @@ public class DefaultCodeFormatterConstants {
* void bar1() {}
* void bar2() {}
* }
- * </pre></p>
+ * </pre>
* </li>
* <li>If no enabling tag is found by the formatter after the disabling tag, then
* the end of the snippet won't be formatted.<br>
@@ -1497,7 +1503,6 @@ public class DefaultCodeFormatterConstants {
* </pre>
* </li>
* </ol>
- * </p>
* @since 3.6
*/
public static final String FORMATTER_DISABLING_TAG = JavaCore.PLUGIN_ID + ".formatter.disabling_tag"; //$NON-NLS-1$
@@ -1556,7 +1561,7 @@ public class DefaultCodeFormatterConstants {
* // @formatter:on
* void bar2() {}
* }
- * </pre></p>
+ * </pre>
* </li>
* <li>If a mix of disabling and enabling tags is done in the same comment, then
* the formatter will only take into account the last encountered tag in the
@@ -1627,7 +1632,6 @@ public class DefaultCodeFormatterConstants {
* </pre>
* </li>
* </ol>
- * </p>
* @since 3.6
*/
public static final String FORMATTER_ENABLING_TAG = JavaCore.PLUGIN_ID + ".formatter.enabling_tag"; //$NON-NLS-1$
@@ -2121,6 +2125,7 @@ public class DefaultCodeFormatterConstants {
*/
public static final String FORMATTER_INSERT_SPACE_AFTER_AND_IN_TYPE_PARAMETER = JavaCore.PLUGIN_ID + ".formatter.insert_space_after_and_in_type_parameter"; //$NON-NLS-1$
/**
+ * <pre>
* FORMATTER / Option to insert a space after arrow in switch case
* - option id: "org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case"
* - possible values: { INSERT, DO_NOT_INSERT }
@@ -2132,6 +2137,7 @@ public class DefaultCodeFormatterConstants {
*/
public static final String FORMATTER_INSERT_SPACE_AFTER_ARROW_IN_SWITCH_CASE = JavaCore.PLUGIN_ID + ".formatter.insert_space_after_arrow_in_switch_case"; //$NON-NLS-1$
/**
+ * <pre>
* FORMATTER / Option to insert a space after arrow in switch default
* - option id: "org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default"
* - possible values: { INSERT, DO_NOT_INSERT }
@@ -2599,7 +2605,7 @@ public class DefaultCodeFormatterConstants {
* </pre>
* @see JavaCore#INSERT
* @see JavaCore#DO_NOT_INSERT
- * @since 3.17
+ * @since 3.18
*/
public static final String FORMATTER_INSERT_SPACE_AFTER_COMMA_IN_SWITCH_CASE_EXPRESSIONS = JavaCore.PLUGIN_ID + ".formatter.insert_space_after_comma_in_switch_case_expressions"; //$NON-NLS-1$
/**
@@ -2988,6 +2994,7 @@ public class DefaultCodeFormatterConstants {
*/
public static final String FORMATTER_INSERT_SPACE_BEFORE_AND_IN_TYPE_PARAMETER = JavaCore.PLUGIN_ID + ".formatter.insert_space_before_and_in_type_parameter"; //$NON-NLS-1$
/**
+ * <pre>
* FORMATTER / Option to insert a space before arrow in switch case
* - option id: "org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case"
* - possible values: { INSERT, DO_NOT_INSERT }
@@ -2999,6 +3006,7 @@ public class DefaultCodeFormatterConstants {
*/
public static final String FORMATTER_INSERT_SPACE_BEFORE_ARROW_IN_SWITCH_CASE = JavaCore.PLUGIN_ID + ".formatter.insert_space_before_arrow_in_switch_case"; //$NON-NLS-1$
/**
+ * <pre>
* FORMATTER / Option to insert a space before arrow in switch default
* - option id: "org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default"
* - possible values: { INSERT, DO_NOT_INSERT }
@@ -3658,7 +3666,7 @@ public class DefaultCodeFormatterConstants {
* </pre>
* @see JavaCore#INSERT
* @see JavaCore#DO_NOT_INSERT
- * @since 3.17
+ * @since 3.18
*/
public static final String FORMATTER_INSERT_SPACE_BEFORE_COMMA_IN_SWITCH_CASE_EXPRESSIONS = JavaCore.PLUGIN_ID + ".formatter.insert_space_before_comma_in_switch_case_expressions"; //$NON-NLS-1$
/**
@@ -4896,8 +4904,6 @@ public class DefaultCodeFormatterConstants {
* }
* }
* </pre>
- * <p>
- * </p>
* <p><b><u>Important notes</u></b>:</p>
* <ol>
* <li>This new behavior is automatically activated (i.e. the default value for this preference is {@link #TRUE}).
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/BindingKey.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/BindingKey.java
index defeedffe..043322247 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/BindingKey.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/BindingKey.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2011 IBM Corporation and others.
+ * Copyright (c) 2005, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -52,7 +52,6 @@ public final class BindingKey {
* createArrayTypeBindingKey("I", 2) -> "[[I"
* </code>
* </pre>
- * </p>
*
* @param typeKey the binding key of the given type
* @param arrayDimension the given array dimension
@@ -83,7 +82,6 @@ public final class BindingKey {
* "Ljava/util/List&lt;&gt;;"
* </code>
* </pre>
- * </p>
*
* @param genericTypeKey the binding key of the generic type
* @param argumentTypeKeys the possibly empty list of binding keys of argument types
@@ -116,7 +114,6 @@ public final class BindingKey {
* createTypeBindingKey("boolean[]") -> "[Z"
* </code>
* </pre>
- * </p>
*
* @param typeName the possibly qualified type name
* @return a new type binding key
@@ -139,7 +136,6 @@ public final class BindingKey {
* "Lp/X;.foo()V:TSomeTypeVariable;"
* </code>
* </pre>
- * </p>
*
* @param typeVariableName the name of the given type variable
* @param declaringKey the binding key of the type or method the type variable belongs to
@@ -171,7 +167,6 @@ public final class BindingKey {
* "+Ljava/util/ArrayList;"
* </code>
* </pre>
- * </p>
*
* @param typeKey the binding key of the given type
* @param kind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
@@ -208,7 +203,6 @@ public final class BindingKey {
* "Ljava/util/HashMap;{1}+Ljava/lang/String;"
* </code>
* </pre>
- * </p>
*
* @param genericTypeKey the binding key of the generic type
* @param boundKind one of {@link Signature#C_STAR}, {@link Signature#C_SUPER}, or {@link Signature#C_EXTENDS}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ClasspathContainerInitializer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ClasspathContainerInitializer.java
index a087d856d..e70ca2a53 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ClasspathContainerInitializer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ClasspathContainerInitializer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2007 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -120,7 +120,6 @@ public abstract class ClasspathContainerInitializer {
* <li>Java element operations marked as "handle-only"</li>
* </ul>
* The effects of using other Java model APIs are unspecified.
- * </p>
*
* @param containerPath a two-segment path (ID/hint) identifying the container that needs
* to be resolved
@@ -275,7 +274,7 @@ public abstract class ClasspathContainerInitializer {
* respectively the {@link #ATTRIBUTE_NOT_SUPPORTED} value
* or the {@link #ATTRIBUTE_READ_ONLY} value.</li>
* </ul>
- * </p><p>
+ * <p>
* The status message can contain more information.
* </p><p>
* If the subclass does not override this method, then the default behavior is
@@ -311,7 +310,7 @@ public abstract class ClasspathContainerInitializer {
* respectively the {@link #ATTRIBUTE_NOT_SUPPORTED} value
* or the {@link #ATTRIBUTE_READ_ONLY} value.</li>
* </ul>
- * </p><p>
+ * <p>
* The status message can contain more information.
* </p><p>
* If the subclass does not override this method, then the default behavior is
@@ -349,7 +348,7 @@ public abstract class ClasspathContainerInitializer {
* respectively the {@link #ATTRIBUTE_NOT_SUPPORTED} value
* or the {@link #ATTRIBUTE_READ_ONLY} value.</li>
* </ul>
- * </p><p>
+ * <p>
* The status message can contain more information.
* </p><p>
* If the subclass does not override this method, then the default behavior is
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java
index 80381ca34..ba57ebe51 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionProposal.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2018 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -83,7 +83,6 @@ public class CompletionProposal {
* the modifiers flags of the constructor that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -113,7 +112,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -135,7 +133,6 @@ public class CompletionProposal {
* the corresponding modifier flags if the keyword is a modifier
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -154,7 +151,6 @@ public class CompletionProposal {
* the simple name of the label that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -179,7 +175,6 @@ public class CompletionProposal {
* the type signature of the local variable's type
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -207,7 +202,6 @@ public class CompletionProposal {
* the method signature of the method that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -247,7 +241,6 @@ public class CompletionProposal {
* overridden or implemented
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -266,7 +259,6 @@ public class CompletionProposal {
* the dot-based package name of the package that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -295,7 +287,6 @@ public class CompletionProposal {
* and AccAnnotation) of the type that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*/
@@ -319,7 +310,6 @@ public class CompletionProposal {
* the modifiers flags of the variable being declared
* </li>
* </ul>
- * </p>
* @see #getKind()
*/
public static final int VARIABLE_DECLARATION = 10;
@@ -349,7 +339,6 @@ public class CompletionProposal {
* created
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.1
@@ -364,6 +353,7 @@ public class CompletionProposal {
* <p>
* The following additional context information is available
* for this kind of completion proposal at little extra cost:
+ * </p>
* <ul>
* <li>{@link #getDeclarationSignature()} -
* the type signature of the type that declares the method that is referenced
@@ -378,7 +368,6 @@ public class CompletionProposal {
* the method signature of the method that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.1
@@ -409,7 +398,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.1
@@ -440,7 +428,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -469,7 +456,6 @@ public class CompletionProposal {
* the method signature of the method that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -499,7 +485,6 @@ public class CompletionProposal {
* and AccAnnotation) of the type that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -530,7 +515,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -565,7 +549,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -596,7 +579,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -627,7 +609,6 @@ public class CompletionProposal {
* is declared)
* </li>
* </ul>
- * </p>
*
* @see #getKind()
* @since 3.2
@@ -659,7 +640,6 @@ public class CompletionProposal {
* of the proposed import
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*
@@ -690,7 +670,6 @@ public class CompletionProposal {
* of the proposed import
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*
@@ -721,7 +700,6 @@ public class CompletionProposal {
* of the proposed import
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*
@@ -754,7 +732,6 @@ public class CompletionProposal {
* the method signature of the method that is referenced
* </li>
* </ul>
- * </p>
*
* @see #getKind()
*
@@ -790,7 +767,6 @@ public class CompletionProposal {
* </li>
*
* </ul>
- * </p>
*
* @see #getKind()
*
@@ -820,7 +796,6 @@ public class CompletionProposal {
* the method signature of the constructor that is referenced
* </li>
* </ul>
- * </p>
* <p>
* This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
* (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)}).<br>
@@ -861,7 +836,6 @@ public class CompletionProposal {
* the modifiers flags of the constructor that is referenced
* </li>
* </ul>
- * </p>
* <p>
* This kind of proposal could require a long computation, so they are computed only if completion operation is called with a {@link IProgressMonitor}
* (e.g. {@link ICodeAssist#codeComplete(int, CompletionRequestor, IProgressMonitor)})<br>
@@ -1010,7 +984,6 @@ public class CompletionProposal {
* </ul>
* For other kinds of completion proposals, this method returns
* <code>CompletionFlags.Default</code>.
- * </p>
*
* @return the completion flags, or
* <code>CompletionFlags.Default</code> if none
@@ -1285,7 +1258,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return a type signature or a package name or module name (9) (depending
* on the kind of completion), or <code>null</code> if none
@@ -1312,7 +1284,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return a key, or <code>null</code> if none
* @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
@@ -1384,7 +1355,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return the keyword, field, method, local variable, or member
* name, or <code>null</code> if none
@@ -1452,7 +1422,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return the signature, or <code>null</code> if none
* @see Signature
@@ -1477,7 +1446,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return the key, or <code>null</code> if none
* @see org.eclipse.jdt.core.dom.ASTParser#createASTs(ICompilationUnit[], String[], org.eclipse.jdt.core.dom.ASTRequestor, IProgressMonitor)
@@ -1578,7 +1546,6 @@ public class CompletionProposal {
* </ul>
* For other kinds of completion proposals, this method returns
* <code>Flags.AccDefault</code>.
- * </p>
*
* @return the modifier flags, or
* <code>Flags.AccDefault</code> if none
@@ -1627,7 +1594,6 @@ public class CompletionProposal {
* <li><code>TYPE_IMPORT</code></li>
* <li><code>METHOD_IMPORT</code></li>
* </ul>
- * </li>
* </li>
* <li><code>TYPE_REF</code> - The allowed required proposals for this kind are:
* <ul>
@@ -1650,7 +1616,6 @@ public class CompletionProposal {
* </ul>
* </li>
* </ul>
- * </p>
* <p>
* Other kinds of required proposals will be returned in the future, therefore clients of this
* API must allow with {@link CompletionRequestor#setAllowsRequiredProposals(int, int, boolean)}
@@ -1741,7 +1706,6 @@ public class CompletionProposal {
* {@link IAccessRule#K_ACCESSIBLE} or {@link IAccessRule#K_DISCOURAGED}
* or {@link IAccessRule#K_NON_ACCESSIBLE}.
* By default this method return {@link IAccessRule#K_ACCESSIBLE}.
- * </p>
*
* @see IAccessRule
*
@@ -1766,7 +1730,6 @@ public class CompletionProposal {
* </ul>
* For kinds of completion proposals, this method returns
* <code>false</code>.
- * </p>
*
* @return <code>true</code> if the proposal is a constructor.
* @since 3.1
@@ -1790,7 +1753,6 @@ public class CompletionProposal {
* For kinds of completion proposals, this method returns
* <code>null</code>. Clients must not modify the array
* returned.
- * </p>
*
* @return a type signature or a package name (depending
* on the kind of completion), or <code>null</code> if none
@@ -1816,7 +1778,6 @@ public class CompletionProposal {
* <li><code>METHOD_REF_WITH_CASTED_RECEIVER</code></li>
* </ul>
* For kinds of completion proposals, this method returns <code>0</code>.
- * </p>
*
* @return character index of receiver start position (inclusive)
*
@@ -1839,7 +1800,6 @@ public class CompletionProposal {
* <li><code>METHOD_REF_WITH_CASTED_RECEIVER</code></li>
* </ul>
* For kinds of completion proposals, this method returns <code>0</code>.
- * </p>
*
* @return character index of receiver end position (exclusive)
*
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionRequestor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionRequestor.java
index dfc71066a..1465be709 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionRequestor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/CompletionRequestor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation and others.
+ * Copyright (c) 2004, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -33,6 +33,7 @@ import org.eclipse.jdt.core.compiler.IProblem;
* ...
* requestor.endReporting();
* </pre>
+ * <p>
* If, however, the engine is unable to offer completion proposals
* for whatever reason, <code>completionFailure</code> is called
* with a problem object describing why completions were unavailable.
@@ -43,6 +44,7 @@ import org.eclipse.jdt.core.compiler.IProblem;
* requestor.completionFailure(problem);
* requestor.endReporting();
* </pre>
+ * <p>
* In either case, the bracketing <code>beginReporting</code>
* <code>endReporting</code> calls are always made as well as
* <code>acceptContext</code> call.
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Flags.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Flags.java
index ca3f5ec52..fda96862a 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Flags.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Flags.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -506,14 +506,12 @@ public final class Flags {
* int flags = method.getFlags() & ~Flags.AccVarargs;
* return Flags.toString(flags);
* </pre>
- * </p>
* <p>
* Examples results:
* <pre>
* <code>"public static final"</code>
* <code>"private native"</code>
* </pre>
- * </p>
*
* @param flags the flags
* @return the standard string representation of the given flags
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathAttribute.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathAttribute.java
index 24c188302..c841fb860 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathAttribute.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathAttribute.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2017 IBM Corporation and others.
+ * Copyright (c) 2005, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -219,7 +219,7 @@ public interface IClasspathAttribute {
* <code>"false"</code> is assumed. If the value of this attribute is <code>"true"</code>, and the classpath entry
* is a source folder, it is assumed to contain test sources, otherwise main sources.
* </p>
- * </p>
+ * <p>
* During the compilation of main sources, only code is visible, that is reachable via classpath entries which do
* not have the test attribute set to to "true". During the compilation of test sources, all code is visible as if
* this attribute didn't exist at all.
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathContainer.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathContainer.java
index 93a331723..ba3afda8f 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathContainer.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathContainer.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2010 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -98,6 +98,7 @@ public interface IClasspathContainer {
* <li>{@link IJavaProject#readOutputLocation()}</li>
* <li>Java element operations marked as "handle-only"</li>
* </ul>
+ * <p>
* The effects of using other Java model APIs are unspecified.
* </p>
*
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathEntry.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathEntry.java
index bbe602970..ad735bc07 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathEntry.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IClasspathEntry.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -22,7 +22,6 @@ import org.eclipse.core.runtime.IPath;
* by each package fragment root and package fragment associated with the entry.
* <p>
* A classpath entry can refer to any of the following:<ul>
- *
* <li>Source code in the current project. In this case, the entry identifies a
* root folder in the current project containing package fragments and
* source files with one of the {@link JavaCore#getJavaLikeExtensions()
@@ -91,7 +90,6 @@ import org.eclipse.core.runtime.IPath;
* <br> Also note that the container resolution APIs include an IJavaProject argument, so as to allow the same
* container path to be interpreted in different ways for different projects. </li>
* </ul>
- * </p>
* The result of {@link IJavaProject#getResolvedClasspath} will have all entries of type
* {@link #CPE_VARIABLE} and {@link #CPE_CONTAINER} resolved to a set of
* {@link #CPE_SOURCE}, {@link #CPE_LIBRARY} or {@link #CPE_PROJECT}
@@ -275,7 +273,6 @@ public interface IClasspathEntry {
* <code>tests</code>).
* </li>
* </ul>
- * </p>
*
* @return the possibly empty list of resource exclusion patterns
* associated with this classpath entry, or <code>null</code> if this kind
@@ -335,7 +332,6 @@ public interface IClasspathEntry {
* named <code>Foo.java</code>.
* </li>
* </ul>
- * </p>
*
* @return the possibly empty list of resource inclusion patterns
* associated with this classpath entry, or <code>null</code> if this kind
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
index 2f7c535b4..0e0a5f595 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICodeAssist.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -95,7 +95,6 @@ public interface ICodeAssist {
* An <code>offset</code> of -1 indicates to code assist at the beginning of this
* compilation unit.
* <p>
- * <p>
* If {@link IProgressMonitor} is not <code>null</code> then some proposals which
* can be very long to compute are proposed. To avoid that the code assist operation
* take too much time a {@link IProgressMonitor} which automatically cancel the code
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
index 5f2c667a8..2530489df 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ICompilationUnit.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2015 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -418,11 +418,11 @@ IImportDeclaration[] getImports() throws JavaModelException;
*/
ICompilationUnit getPrimary();
/**
- * Returns <tt>null</tt> if this <code>ICompilationUnit</code> is the primary
+ * Returns <code>null</code> if this <code>ICompilationUnit</code> is the primary
* working copy, or this <code>ICompilationUnit</code> is not a working copy,
* otherwise the <code>WorkingCopyOwner</code>
*
- * @return <tt>null</tt> if this <code>ICompilationUnit</code> is the primary
+ * @return <code>null</code> if this <code>ICompilationUnit</code> is the primary
* working copy, or this <code>ICompilationUnit</code> is not a working copy,
* otherwise the <code>WorkingCopyOwner</code>
* @since 3.0
@@ -736,7 +736,6 @@ CompilationUnit reconcile(int astLevel, boolean forceProblemDetection, boolean e
* <li>the requested level of AST API is not supported</li>
* <li>the working copy was already consistent and problem detection is not forced</li>
* </ul>
- * </p>
*
* <p>
* If statements recovery is enabled by passing the {@link #ENABLE_STATEMENTS_RECOVERY} bit in the given reconcile flag
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaElementDelta.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaElementDelta.java
index 386196364..0ab4326b7 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaElementDelta.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaElementDelta.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2011 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -23,7 +23,7 @@ import org.eclipse.jdt.core.dom.CompilationUnit;
* <p>
* Deltas have a different status depending on the kind of change they represent.
* The list below summarizes each status (as returned by {@link #getKind})
- * and its meaning (see individual constants for a more detailled description):
+ * and its meaning (see individual constants for a more detailed description):
* <ul>
* <li>{@link #ADDED} - The element described by the delta has been added.</li>
* <li>{@link #REMOVED} - The element described by the delta has been removed.</li>
@@ -60,11 +60,10 @@ import org.eclipse.jdt.core.dom.CompilationUnit;
* <li>{@link #F_SOURCEDETACHED} - The source attachment path or the source attachment root path
* of a classpath entry corresponding to the element was removed. This flag is only valid if the element is an
* {@link IPackageFragmentRoot}.</li>
- * <li>{@link #F_SUPER_TYPES} - One of the supertypes of an {@link IType} has changed</li>.
+ * <li>{@link #F_SUPER_TYPES} - One of the supertypes of an {@link IType} has changed.</li>
* </ul>
* </li>
* </ul>
- * </p>
* <p>
* Move operations are indicated by other change flags, layered on top
* of the change flags described above. If element A is moved to become B,
@@ -369,7 +368,7 @@ public interface IJavaElementDelta {
/**
* Returns flags that describe how an element has changed.
- * Such flags should be tested using the <code>&</code> operand. For example:
+ * Such flags should be tested using the <code>&amp;</code> operand. For example:
* <pre>
* if ((delta.getFlags() & IJavaElementDelta.F_CONTENT) != 0) {
* // the delta indicates a content change
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaProject.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaProject.java
index d0e384d1f..9c9c818f6 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaProject.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IJavaProject.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -49,14 +49,13 @@ import org.eclipse.jdt.core.eval.IEvaluationContext;
* the corresponding generated class files from the required project's output
* location(s)). The classpath format is a sequence of classpath entries
* describing the location and contents of package fragment roots.
- * </p>
+ * <p>
* Java project elements need to be opened before they can be navigated or manipulated.
* The children of a Java project are the package fragment roots that are
* defined by the classpath and contained in this project (in other words, it
* does not include package fragment roots for other projects). The children
* (i.e. the package fragment roots) appear in the order they are defined by
* the classpath.
- * </p>
* <p>
* An instance of one of these handles can be created via
* <code>JavaCore.create(project)</code>.
@@ -172,7 +171,7 @@ public interface IJavaProject extends IParent, IJavaElement, IOpenable {
* variable}</li>
* <li>{@link IAnnotation} for a binding key from an
* {@link IAnnotationBinding}</li>
- * </ul></p>
+ * </ul>
* <p>Note: if two methods correspond to the binding key because their
* parameter types' simple names are the same, then the first one is returned.
* For example, if a class defines two methods <code>foo(p1.Y, String)</code>
@@ -649,7 +648,7 @@ public interface IJavaProject extends IParent, IJavaElement, IOpenable {
* </p>
* <p>
* Note that in case the project isn't yet opened, the classpath will
- * be read directly from the associated <tt>.classpath</tt> file.
+ * be read directly from the associated <code>.classpath</code> file.
* </p>
*
* @return the raw classpath for the project, as a list of classpath entries
@@ -1218,7 +1217,7 @@ public interface IJavaProject extends IParent, IJavaElement, IOpenable {
*
* @param path
* IPath
- * @return the classpath entry or <code>null</null>.
+ * @return the classpath entry or <code>null</code>.
* @throws JavaModelException
* @since 3.14
*/
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IModuleDescription.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IModuleDescription.java
index 602b1d275..ebda6d8ce 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IModuleDescription.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IModuleDescription.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2018 IBM Corporation.
+ * Copyright (c) 2017, 2019 IBM Corporation.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -38,6 +38,24 @@ public interface IModuleDescription extends IMember, IAnnotatable {
String[] getRequiredModuleNames() throws JavaModelException;
/**
+ * Get provided service names for this module.
+ *
+ * @return a non-null array of provided service names
+ * @throws JavaModelException
+ * @since 3.18
+ */
+ String[] getProvidedServiceNames() throws JavaModelException;
+
+ /**
+ * Get used service names for this module.
+ *
+ * @return a non-null array of used service names
+ * @throws JavaModelException
+ * @since 3.18
+ */
+ String[] getUsedServiceNames() throws JavaModelException;
+
+ /**
*
* @return true if automatic module, else false
* @since 3.14
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IType.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IType.java
index a0466b1b6..630f40cc7 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IType.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/IType.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -348,10 +348,11 @@ public interface IType extends IMember, IAnnotatable {
*
* <p>It is possible that a field with the same name already exists in this type.
* The value of the <code>force</code> parameter affects the resolution of
- * such a conflict:<ul>
+ * such a conflict:
+ * <ul>
* <li> <code>true</code> - in this case the field is created with the new contents</li>
* <li> <code>false</code> - in this case a <code>JavaModelException</code> is thrown</li>
- * </ul></p>
+ * </ul>
*
* @param contents the given contents
* @param sibling the given sibling
@@ -406,10 +407,11 @@ public interface IType extends IMember, IAnnotatable {
*
* <p>It is possible that a method with the same signature already exists in this type.
* The value of the <code>force</code> parameter affects the resolution of
- * such a conflict:<ul>
+ * such a conflict:
+ * <ul>
* <li> <code>true</code> - in this case the method is created with the new contents</li>
* <li> <code>false</code> - in this case a <code>JavaModelException</code> is thrown</li>
- * </ul></p>
+ * </ul>
*
* @param contents the given contents
* @param sibling the given sibling
@@ -440,10 +442,11 @@ public interface IType extends IMember, IAnnotatable {
*
* <p>It is possible that a type with the same name already exists in this type.
* The value of the <code>force</code> parameter affects the resolution of
- * such a conflict:<ul>
+ * such a conflict:
+ * <ul>
* <li> <code>true</code> - in this case the type is created with the new contents</li>
* <li> <code>false</code> - in this case a <code>JavaModelException</code> is thrown</li>
- * </ul></p>
+ * </ul>
*
* @param contents the given contents
* @param sibling the given sibling
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaConventions.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaConventions.java
index 6bda1aec7..b18211867 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaConventions.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/JavaConventions.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -122,7 +122,6 @@ public final class JavaConventions {
* <li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* </ul>
- * </p>
* @param name the name of a compilation unit
* @return a status object with code <code>IStatus.OK</code> if
* the given name is valid as a compilation unit name, otherwise a status
@@ -145,7 +144,6 @@ public final class JavaConventions {
* <li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* </ul>
- * </p>
* @param name the name of a compilation unit
* @param sourceLevel the source level
* @param complianceLevel the compliance level
@@ -196,7 +194,6 @@ public final class JavaConventions {
* <li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* </ul>
- * </p>
* @param name the name of a .class file
* @return a status object with code <code>IStatus.OK</code> if
* the given name is valid as a .class file name, otherwise a status
@@ -219,7 +216,6 @@ public final class JavaConventions {
* <li> it must not contain any characters or substrings that are not valid
* on the file system on which workspace root is located.
* </ul>
- * </p>
* @param name the name of a .class file
* @param sourceLevel the source level
* @param complianceLevel the compliance level
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/NamingConventions.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/NamingConventions.java
index a02a4a667..f2be556ad 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/NamingConventions.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/NamingConventions.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -42,7 +42,6 @@ import org.eclipse.jdt.internal.core.InternalNamingConventions;
* <li> {@link JavaCore#CODEASSIST_ARGUMENT_PREFIXES} : Define the Prefixes for Argument Name.</li>
* <li> {@link JavaCore#CODEASSIST_ARGUMENT_SUFFIXES} : Define the Suffixes for Argument Name.</li>
* </ul>
- * </p>
* <p>
* For a complete description of the configurable options, see {@link JavaCore#getDefaultOptions()}.
* To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)}.
@@ -518,7 +517,6 @@ public final class NamingConventions {
* <li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}</li>
* <li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}</li>
* </ul>
- * </p>
* <p>
* e.g.<br>
* If the variable is a {@link #VK_LOCAL}, the variable name is <code>preVariableNamesuf</code>, a possible prefix is <code>pre</code> and a possible suffix is <code>suf</code>
@@ -1083,7 +1081,6 @@ public final class NamingConventions {
* </ul></li>
* </ul>
* Some other kinds could be added in the future.
- * </p>
* <p>
* Each variable kind is affected by the following JavaCore options:
* <ul>
@@ -1093,7 +1090,6 @@ public final class NamingConventions {
* <li>{@link #VK_STATIC_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FIELD_SUFFIXES}</li>
* <li>{@link #VK_STATIC_FINAL_FIELD}: {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_PREFIXES} and {@link JavaCore#CODEASSIST_STATIC_FINAL_FIELD_SUFFIXES}</li>
* </ul>
- * </p>
* <p>
* For a complete description of these configurable options, see {@link JavaCore#getDefaultOptions()}.
* To programmatically change these options, see {@link JavaCore#setOptions(java.util.Hashtable)} and {@link IJavaProject#setOptions(java.util.Map)}
@@ -1107,7 +1103,6 @@ public final class NamingConventions {
* <li>Names with suffix. Longer names are proposed first</li>
* <li>Names without prefix and suffix. Longer names are proposed first</li>
* </ol>
- * </p>
*
* @param variableKind specifies what type the variable is: {@link #VK_LOCAL}, {@link #VK_PARAMETER}, {@link #VK_STATIC_FIELD},
* {@link #VK_INSTANCE_FIELD} or {@link #VK_STATIC_FINAL_FIELD}.
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Signature.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Signature.java
index 76801f2ea..4c6d2d123 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Signature.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/Signature.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -97,7 +97,6 @@ import org.eclipse.jdt.internal.compiler.util.Util;
* "&lt;" + FormalTypeParameterSignature+ + "&gt;"
* |
* </pre>
- * </p>
* <p>
* Examples:
* <ul>
@@ -107,10 +106,9 @@ import org.eclipse.jdt.internal.compiler.util.Util;
* <li><code>"Qjava.lang.String;"</code> denotes <code>java.lang.String</code> in source code</li>
* <li><code>"[QString;"</code> denotes <code>String[]</code> in source code</li>
* <li><code>"QMap&lt;QString;*&gt;;"</code> denotes <code>Map&lt;String,?&gt;</code> in source code</li>
- * <li><code>"Qjava.util.List&ltTV;&gt;;"</code> denotes <code>java.util.List&lt;V&gt;</code> in source code</li>
- * <li><code>"&ltE;&gt;Ljava.util.List;"</code> denotes <code>&lt;E&gt;java.util.List</code> in source code</li>
+ * <li><code>"Qjava.util.List&lt;V&gt;;"</code> denotes <code>java.util.List&lt;V&gt;</code> in source code</li>
+ * <li><code>"&lt;E&gt;Ljava.util.List;"</code> denotes <code>&lt;E&gt;java.util.List</code> in source code</li>
* </ul>
- * </p>
* <p>
* The syntax for a method signature is:
* <pre>
@@ -125,7 +123,6 @@ import org.eclipse.jdt.internal.compiler.util.Util;
* <li><code>"([Ljava.lang.String;)V"</code> denotes <code>void foo(java.lang.String[])</code> in compiled code</li>
* <li><code>"(QString;)QObject;"</code> denotes <code>Object foo(String)</code> in source code</li>
* </ul>
- * </p>
* <p>
* The syntax for a formal type parameter signature is:
* <pre>
@@ -145,7 +142,6 @@ import org.eclipse.jdt.internal.compiler.util.Util;
* <li><code>"X:QReader;"</code> denotes <code>X extends Reader</code> in source code</li>
* <li><code>"X:QReader;:QSerializable;"</code> denotes <code>X extends Reader & Serializable</code> in source code</li>
* </ul>
- * </p>
* <p>
* This class provides static methods and constants only.
* </p>
@@ -1342,7 +1338,6 @@ public static String createTypeSignature(char[] typeName, boolean isResolved) {
* createTypeSignature("int []", false) -> "[I"
* </code>
* </pre>
- * </p>
*
* @param typeName the possibly qualified type name
* @param isResolved <code>true</code> if the type name is to be considered
@@ -1603,7 +1598,6 @@ public static int getArrayCount(String typeSignature) throws IllegalArgumentExce
* getElementType({'[', '[', 'I'}) --> {'I'}.
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the type signature without arrays
@@ -1630,7 +1624,6 @@ public static char[] getElementType(char[] typeSignature) throws IllegalArgument
* getElementType("[[I") --> "I".
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the type signature without arrays
@@ -1842,7 +1835,6 @@ public static String[] getParameterTypes(String methodSignature) throws IllegalA
* getQualifier({'j', 'a', 'v', 'a', '.', 'u', 't', 'i', 'l', '.', 'L', 'i', 's', 't', '<', 'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'S', 't', 'r', 'i', 'n', 'g', '>'}) -> {'j', 'a', 'v', 'a', '.', 'u', 't', 'i', 'l'}
* </code>
* </pre>
- * </p>
*
* @param name the name
* @return the qualifier prefix, or the empty char array if the name contains no
@@ -1871,7 +1863,6 @@ public static char[] getQualifier(char[] name) {
* getQualifier("java.util.List&lt;java.lang.String&gt;") -&gt; "java.util"
* </code>
* </pre>
- * </p>
*
* @param name the name
* @return the qualifier prefix, or the empty string if the name contains no
@@ -1929,7 +1920,6 @@ public static String getReturnType(String methodSignature) throws IllegalArgumen
* getSignatureQualifier({'L', 'j', 'a', 'v', 'a', '.', 'u', 't', 'i', 'l', '.', 'M', 'a', 'p', '$', 'E', 'n', 't', 'r', 'y', ';'}) -> {'j', 'a', 'v', 'a', '.', 'u', 't', 'i', 'l'}
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the package fragment (separators are '.')
@@ -1975,7 +1965,6 @@ public static char[] getSignatureQualifier(char[] typeSignature) {
* getSignatureQualifier("Ljava.util.Map$Entry") -> "java.util"
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the package fragment (separators are '.')
@@ -1994,7 +1983,6 @@ public static String getSignatureQualifier(String typeSignature) {
* getSignatureSimpleName({'L', 'j', 'a', 'v', 'a', '.', 'u', 't', 'i', 'l', '.', 'M', 'a', 'p', '$', 'E', 'n', 't', 'r', 'y', ';'}) -> {'M', 'a', 'p', '.', 'E', 'n', 't', 'r', 'y'}
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the type fragment (separators are '.')
@@ -2049,7 +2037,6 @@ public static char[] getSignatureSimpleName(char[] typeSignature) {
* getSignatureSimpleName("Ljava.util.Map$Entry") -> "Map.Entry"
* </code>
* </pre>
- * </p>
*
* @param typeSignature the type signature
* @return the type fragment (separators are '.')
@@ -2068,7 +2055,6 @@ public static String getSignatureSimpleName(String typeSignature) {
* getSimpleName({'j', 'a', 'v', 'a', '.', 'l', 'a', 'n', 'g', '.', 'O', 'b', 'j', 'e', 'c', 't'}) -> {'O', 'b', 'j', 'e', 'c', 't'}
* </code>
* </pre>
- * </p>
*
* @param name the name
* @return the last segment of the qualified name
@@ -2126,7 +2112,6 @@ public static char[] getSimpleName(char[] name) {
* getSimpleName("java.util.Map&lt;java.lang.String, java.lang.Object&gt;") -&gt; "Map&lt;String,Object&gt;"
* </code>
* </pre>
- * </p>
*
* @param name the name
* @return the last segment of the qualified name
@@ -2715,7 +2700,6 @@ public static String getTypeVariable(String formalTypeParameterSignature) throws
* will return: "LTest&lt;+Ljava.lang.Throwable;&gt;;"
* </code>
* </pre>
- * </p>
*
* @param methodOrTypeSignature the signature which may have been captured
* @return a new signature without capture information or the signature itself
@@ -2740,7 +2724,6 @@ public static char[] removeCapture(char[] methodOrTypeSignature) {
* will return: "LTest&lt;+Ljava.lang.Throwable;&gt;;"
* </code>
* </pre>
- * </p>
*
* @param methodOrTypeSignature the signature which may have been captured
* @return a new signature without capture information or the signature itself
@@ -2768,7 +2751,6 @@ public static String removeCapture(String methodOrTypeSignature) {
* toString({'+', 'L', 'O', 'b', 'j', 'e', 'c', 't', ';'}) -> {'?', ' ', 'e', 'x', 't', 'e', 'n', 'd', 's', ' ', 'O', 'b', 'j', 'e', 'c', 't'}
* </code>
* </pre>
- * </p>
* <p>
* Note: This method assumes that a type signature containing a <code>'$'</code>
* is an inner type signature. While this is correct in most cases, someone could
@@ -2808,7 +2790,6 @@ public static char[] toCharArray(char[] signature) throws IllegalArgumentExcepti
* toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, true) -> "void main(String[] args)"
* </code>
* </pre>
- * </p>
*
* @param methodSignature the method signature to convert
* @param methodName the name of the method to insert in the result, or
@@ -2838,7 +2819,6 @@ public static char[] toCharArray(char[] methodSignature, char[] methodName, char
* toString("([Ljava.lang.String;)V", "main", new String[] {"args"}, false, true) -> "void main(String[] args)"
* </code>
* </pre>
- * </p>
*
* @param methodSignature the method signature to convert
* @param methodName the name of the method to insert in the result, or
@@ -2921,7 +2901,6 @@ public static char[] toCharArray(char[] methodSignature, char[] methodName, char
* toQualifiedName({{}}) -> {}
* </code>
* </pre>
- * </p>
*
* @param segments the list of name segments, possibly empty
* @return the dot-separated qualified name, or the empty string
@@ -2963,7 +2942,6 @@ public static char[] toQualifiedName(char[][] segments) {
* toQualifiedName(new String[0]) -> ""
* </code>
* </pre>
- * </p>
*
* @param segments the list of name segments, possibly empty
* @return the dot-separated qualified name, or the empty string
@@ -2989,7 +2967,6 @@ public static String toQualifiedName(String[] segments) {
* toString("+QObject;") -> "? extends Object"
* </code>
* </pre>
- * </p>
* <p>
* Note: This method assumes that a type signature containing a <code>'$'</code>
* is an inner type signature. While this is correct in most cases, someone could
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ToolFactory.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ToolFactory.java
index a9d4c7a0f..dfe106164 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ToolFactory.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/ToolFactory.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -411,8 +411,8 @@ public class ToolFactory {
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
- * <code>
* <pre>
+ * <code>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource("int i = 0;".toCharArray());
* while (true) {
@@ -420,8 +420,8 @@ public class ToolFactory {
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + " : " + new String(scanner.getCurrentTokenSource()));
* }
- * </pre>
* </code>
+ * </pre>
*
* <p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
* or 1.4 if running from outside of a headless eclipse.
@@ -465,8 +465,8 @@ public class ToolFactory {
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
- * <code>
* <pre>
+ * <code>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource("int i = 0;".toCharArray());
* while (true) {
@@ -474,8 +474,8 @@ public class ToolFactory {
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + " : " + new String(scanner.getCurrentTokenSource()));
* }
- * </pre>
* </code>
+ * </pre>
*
* <p>By default the compliance used to create the scanner is the workspace's compliance when running inside the IDE
* or 1.4 if running from outside of a headless eclipse.
@@ -522,8 +522,8 @@ public class ToolFactory {
* used to tokenize some source in a Java aware way.
* Here is a typical scanning loop:
*
- * <code>
* <pre>
+ * <code>
* IScanner scanner = ToolFactory.createScanner(false, false, false, false);
* scanner.setSource("int i = 0;".toCharArray());
* while (true) {
@@ -531,8 +531,8 @@ public class ToolFactory {
* if (token == ITerminalSymbols.TokenNameEOF) break;
* System.out.println(token + " : " + new String(scanner.getCurrentTokenSource()));
* }
- * </pre>
* </code>
+ * </pre>
*
* @param tokenizeComments if set to <code>false</code>, comments will be silently consumed
* @param tokenizeWhiteSpace if set to <code>false</code>, white spaces will be silently consumed,
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/WorkingCopyOwner.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/WorkingCopyOwner.java
index 9496e385a..ba7a912eb 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/WorkingCopyOwner.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/WorkingCopyOwner.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -136,7 +136,6 @@ public abstract class WorkingCopyOwner {
* CompilationUnit cu = (CompilationUnit) parser.createAST(null);
* assert cu.getProblems().length == 0;
* </pre>
- * </p>
*
* @param typeName the simple name of the type to lookup
* @param packageName the dot-separated name of the package of type
@@ -178,7 +177,7 @@ public abstract class WorkingCopyOwner {
* </p><p>
* A DOM AST created using this working copy will have bindings resolved using the given
* classpath, and problem are reported to the given problem requestor.
- * <p></p>
+ * </p><p>
* <code>JavaCore#getOptions()</code> is used to create the DOM AST as it is not
* possible to set the options on the non-existing Java project.
* </p><p>
@@ -231,7 +230,7 @@ public abstract class WorkingCopyOwner {
* If a DOM AST is created using this working copy, then given classpath will be used
* if bindings need to be resolved. Problems will be reported to the problem requestor
* of the current working copy owner problem if it is not <code>null</code>.
- * <p></p>
+ * </p><p>
* Options used to create the DOM AST are got from {@link JavaCore#getOptions()}
* as it is not possible to set the options on a non-existing Java project.
* </p><p>
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/compiler/CompilationParticipant.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/compiler/CompilationParticipant.java
index d4788a8e2..f996bc574 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/compiler/CompilationParticipant.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/compiler/CompilationParticipant.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2005, 2016 IBM Corporation and others.
+ * Copyright (c) 2005, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -109,7 +109,6 @@ public void cleanStarting(IJavaProject project) {
* <pre>
* javaProject.getProject().isOpen();
* </pre>
- * </p>
* @param project the project to participate in
* @return whether this participant is active for a given project
*/
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/ICodeSnippetRequestor.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/ICodeSnippetRequestor.java
index 435e2880f..9ae7369b5 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/ICodeSnippetRequestor.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/ICodeSnippetRequestor.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -153,7 +153,6 @@ public boolean acceptClassFiles(byte[][] classFileBytes, String[][] classFileCom
/**
* Notifies of an evaluation problem.
* Problems can arise for source of the following kinds:
- * <p>
* <ul>
* <li>global variable (<code>VARIABLE</code>) - fragment source is name of
* variable</li>
@@ -165,7 +164,6 @@ public boolean acceptClassFiles(byte[][] classFileBytes, String[][] classFileCom
* package declaration</li>
* <li>other (<code>INTERNAL</code>) - no fragment source is involved, internal error occurred.</li>
* </ul>
- * </p>
* @param problemMarker the problem marker (cannot be null)
* @param fragmentSource the fragment source
* @param fragmentKind the kind of source fragment; one of:
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/IEvaluationContext.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/IEvaluationContext.java
index a5f800144..4f14cd522 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/IEvaluationContext.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/eval/IEvaluationContext.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -26,6 +26,7 @@ import org.eclipse.jdt.core.JavaModelException;
* A code snippet is pretty much any valid piece of Java code that could be
* pasted into the body of a method and compiled. However, there are two
* areas where the rules are slightly more liberal.
+ * </p>
* <p>
* First, a code snippet can return heterogeneous types. Inside the same code
* snippet an <code>int</code> could be returned on one line, and a
@@ -42,7 +43,6 @@ import org.eclipse.jdt.core.JavaModelException;
* }
* </code>
* </pre>
- * </p>
* <p>
* Second, if the last statement is only an expression, the <code>return</code>
* keyword is implied. For example, the following returns <code>false</code>:
@@ -52,7 +52,6 @@ import org.eclipse.jdt.core.JavaModelException;
* i == 2
* </code>
* </pre>
- * </p>
* <p>
* Global variables are an additional feature of evaluation contexts. Within an
* evaluation context, global variables maintain their value across evaluations.
@@ -80,7 +79,6 @@ import org.eclipse.jdt.core.JavaModelException;
* context.evaluateCodeSnippet(codeSnippet, requestor, progressMonitor);
* </code>
* </pre>
- * </p>
* <p>
* <code>IJavaProject.newEvaluationContext</code> can be used to obtain an
* instance.
@@ -187,7 +185,6 @@ public interface IEvaluationContext {
* <p>
* Note that code completion does not involve evaluation.
* <p>
- * <p>
* If {@link IProgressMonitor} is not <code>null</code> then some proposals which
* can be very long to compute are proposed. To avoid that the code assist operation
* take too much time a {@link IProgressMonitor} which automatically cancel the code
@@ -275,7 +272,6 @@ public interface IEvaluationContext {
* <p>
* Note that code completion does not involve evaluation.
* <p>
- * <p>
* If {@link IProgressMonitor} is not <code>null</code> then some proposals which
* can be very long to compute are proposed. To avoid that the code assist operation
* take too much time a {@link IProgressMonitor} which automatically cancel the code
@@ -395,7 +391,6 @@ public interface IEvaluationContext {
* <li>retrieve the values of the local variables,
* <li>retrieve the returned value of the code snippet
* </ol>
- * </p>
* <p>
* This method is long-running; progress and cancellation are provided
* by the given progress monitor.
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMNode.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMNode.java
index 9ca9be23c..2bf5fa5dc 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMNode.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/jdom/IDOMNode.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2013 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -48,7 +48,6 @@ import org.eclipse.jdt.core.IJavaElement;
* <li>add/insert - this splices an un-parented DF (one that has been cloned, removed, or created stand-alone),
* into an existing DF such that the newly inserted DF is only dependent on its new host.</li>
* </ul>
- * </p>
* <p>
* Wherever types are specified in DOM APIs, type names must be specified as they would appear
* in source code. The DOM does not have a notion of type signatures, only raw text. Example type
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/CompilationUnitSorter.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/CompilationUnitSorter.java
index 23f801453..c4a942990 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/CompilationUnitSorter.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/CompilationUnitSorter.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2018 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -84,7 +84,6 @@ public final class CompilationUnitSorter {
* Integer i2 = (Integer) b2.getProperty(RELATIVE_ORDER);
* return i1.intValue() - i2.intValue(); // preserve original order
* </pre>
- * </p>
*
* @see #sort(ICompilationUnit, int[], Comparator, int, IProgressMonitor)
* @see org.eclipse.jdt.core.dom.BodyDeclaration
@@ -127,34 +126,35 @@ public final class CompilationUnitSorter {
* The body declarations passed as parameters to the comparator
* always carry at least the following minimal signature information:
* <br>
- * <table border="1" width="80%" cellpadding="5">
+ * <table border="1">
* <tr>
- * <td width="20%"><code>TypeDeclaration</code></td>
- * <td width="50%"><code>modifiers, isInterface, name, superclass,
+ * <td><code>TypeDeclaration</code></td>
+ * <td><code>modifiers, isInterface, name, superclass,
* superInterfaces<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>FieldDeclaration</code></td>
- * <td width="50%"><code>modifiers, type, fragments
+ * <td><code>FieldDeclaration</code></td>
+ * <td><code>modifiers, type, fragments
* (VariableDeclarationFragments
* with name only)<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>MethodDeclaration</code></td>
- * <td width="50%"><code>modifiers, isConstructor, returnType, name,
+ * <td><code>MethodDeclaration</code></td>
+ * <td><code>modifiers, isConstructor, returnType, name,
* parameters
* (SingleVariableDeclarations with name and type only),
* thrownExceptions<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>Initializer</code></td>
- * <td width="50%"><code>modifiers<br>
+ * <td><code>Initializer</code></td>
+ * <td><code>modifiers<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* </table>
+ * <p>
* Clients should not rely on the AST nodes being properly parented or on
* having source range information. (Future releases may provide options
* for requesting additional information like source positions, full ASTs,
@@ -242,51 +242,51 @@ public final class CompilationUnitSorter {
* The body declarations passed as parameters to the comparator
* always carry at least the following minimal signature information:
* <br>
- * <table border="1" width="80%" cellpadding="5">
+ * <table border="1">
* <tr>
- * <td width="20%"><code>TypeDeclaration</code></td>
- * <td width="50%"><code>modifiers, isInterface, name, superclass,
+ * <td><code>TypeDeclaration</code></td>
+ * <td><code>modifiers, isInterface, name, superclass,
* superInterfaces, typeParameters<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>FieldDeclaration</code></td>
- * <td width="50%"><code>modifiers, type, fragments
+ * <td><code>FieldDeclaration</code></td>
+ * <td><code>modifiers, type, fragments
* (VariableDeclarationFragments
* with name only)<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>MethodDeclaration</code></td>
- * <td width="50%"><code>modifiers, isConstructor, returnType, name,
+ * <td><code>MethodDeclaration</code></td>
+ * <td><code>modifiers, isConstructor, returnType, name,
* typeParameters, parameters
* (SingleVariableDeclarations with name, type, and modifiers only),
* thrownExceptions<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>Initializer</code></td>
- * <td width="50%"><code>modifiers<br>
+ * <td><code>Initializer</code></td>
+ * <td><code>modifiers<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>AnnotationTypeDeclaration</code></td>
- * <td width="50%"><code>modifiers, name<br>
+ * <td><code>AnnotationTypeDeclaration</code></td>
+ * <td><code>modifiers, name<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>AnnotationTypeMemberDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, type, default<br>
+ * <td><code>AnnotationTypeMemberDeclaration</code></td>
+ * <td><code>modifiers, name, type, default<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>EnumDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, superInterfaces<br>
+ * <td><code>EnumDeclaration</code></td>
+ * <td><code>modifiers, name, superInterfaces<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>EnumConstantDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, arguments<br>
+ * <td><code>EnumConstantDeclaration</code></td>
+ * <td><code>modifiers, name, arguments<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* </table>
@@ -294,7 +294,6 @@ public final class CompilationUnitSorter {
* having source range information. (Future releases may provide options
* for requesting additional information like source positions, full ASTs,
* non-recursive sorting, etc.)
- * </p>
*
* @param level the AST level; one of the <code>{@link AST}.JLS*</code> constants
* @param compilationUnit the given compilation unit, which must be a
@@ -371,55 +370,54 @@ public final class CompilationUnitSorter {
* <p>
* The body declarations passed as parameters to the comparator always carry
* at least the following minimal signature information: <br>
- * <table border="1" width="80%" cellpadding="5">
+ * <table border="1">
* <tr>
- * <td width="20%"><code>TypeDeclaration</code></td>
- * <td width="50%"><code>modifiers, isInterface, name, superclass,
+ * <td><code>TypeDeclaration</code></td>
+ * <td><code>modifiers, isInterface, name, superclass,
* superInterfaces, typeParameters<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>FieldDeclaration</code></td>
- * <td width="50%"><code>modifiers, type, fragments
+ * <td><code>FieldDeclaration</code></td>
+ * <td><code>modifiers, type, fragments
* (VariableDeclarationFragments
* with name only)<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>MethodDeclaration</code></td>
- * <td width="50%"><code>modifiers, isConstructor, returnType, name,
+ * <td><code>MethodDeclaration</code></td>
+ * <td><code>modifiers, isConstructor, returnType, name,
* typeParameters, parameters
* (SingleVariableDeclarations with name, type, and modifiers only),
* thrownExceptions<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>Initializer</code></td>
- * <td width="50%"><code>modifiers<br>
+ * <td><code>Initializer</code></td>
+ * <td><code>modifiers<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>AnnotationTypeDeclaration</code></td>
- * <td width="50%"><code>modifiers, name<br>
+ * <td><code>AnnotationTypeDeclaration</code></td>
+ * <td><code>modifiers, name<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>AnnotationTypeMemberDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, type, default<br>
+ * <td><code>AnnotationTypeMemberDeclaration</code></td>
+ * <td><code>modifiers, name, type, default<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>EnumDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, superInterfaces<br>
+ * <td><code>EnumDeclaration</code></td>
+ * <td><code>modifiers, name, superInterfaces<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* <tr>
- * <td width="20%"><code>EnumConstantDeclaration</code></td>
- * <td width="50%"><code>modifiers, name, arguments<br>
+ * <td><code>EnumConstantDeclaration</code></td>
+ * <td><code>modifiers, name, arguments<br>
* RELATIVE_ORDER property</code></td>
* </tr>
* </table>
- * </p>
*
* @param unit
* the CompilationUnit to sort
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/ExternalAnnotationUtil.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/ExternalAnnotationUtil.java
index 53d63ea1f..301b4e5bd 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/ExternalAnnotationUtil.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/ExternalAnnotationUtil.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2015, 2016 GK Software AG.
+ * Copyright (c) 2015, 2019 GK Software AG.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -612,7 +612,7 @@ public final class ExternalAnnotationUtil {
* <li>prefix up-to the changed type</li>
* <li>original type</li>
* <li>changed type</li>
- * <li>postfix after the changed type <em>(here: empty string)</li>
+ * <li>postfix after the changed type <em>(here: empty string)</em></li>
* </ul>
*/
public static String[] annotateType(String originalSignature, String annotatedType, MergeStrategy mergeStrategy)
@@ -639,7 +639,7 @@ public final class ExternalAnnotationUtil {
* <li>prefix up-to the changed type</li>
* <li>original type</li>
* <li>changed type</li>
- * <li>postfix after the changed type <em>(here: empty string)</li>
+ * <li>postfix after the changed type <em>(here: empty string)</em></li>
* </ul>
*/
public static String[] annotateReturnType(String originalSignature, String annotatedType, MergeStrategy mergeStrategy)
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IStackMapFrame.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IStackMapFrame.java
index e6033f684..0f2534c60 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IStackMapFrame.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/core/util/IStackMapFrame.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -26,8 +26,8 @@ public interface IStackMapFrame {
* Answer back the frame type for this entry.
* <table>
* <tr>
- * <th align="left">Type</th>
- * <th align="left">Range</th>
+ * <th>Type</th>
+ * <th>Range</th>
* </tr>
* <tr>
* <td>SAME</td>
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/AbstractModule.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/AbstractModule.java
index 61316949c..761778fc1 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/AbstractModule.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/AbstractModule.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2017, 2018 IBM Corporation and others.
+ * Copyright (c) 2017, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -13,6 +13,7 @@
*******************************************************************************/
package org.eclipse.jdt.internal.core;
+import java.util.ArrayList;
import java.util.Arrays;
import org.eclipse.jdt.core.IJavaElement;
@@ -88,9 +89,29 @@ public interface AbstractModule extends IModuleDescription {
default IService[] getProvidedServices() throws JavaModelException {
return getModuleInfo().provides();
}
+ @Override
+ default String[] getProvidedServiceNames() throws JavaModelException {
+ ArrayList<String> results = new ArrayList<>();
+ IService[] services = getProvidedServices();
+ for (IService service : services) {
+ results.add(new String(service.name()));
+ }
+ return results.toArray(new String[0]);
+
+ }
default char[][] getUsedServices() throws JavaModelException {
return getModuleInfo().uses();
}
+ @Override
+ default String[] getUsedServiceNames() throws JavaModelException {
+ ArrayList<String> results = new ArrayList<>();
+ char[][] services = getUsedServices();
+ for (int i = 0; i < services.length; ++i) {
+ char[] service = services[i];
+ results.add(new String(service));
+ }
+ return results.toArray(new String[0]);
+ }
default IPackageExport[] getOpenedPackages() throws JavaModelException {
return getModuleInfo().opens();
}
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
index c79788ebc..45f3ceed4 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaModelManager.java
@@ -2292,7 +2292,7 @@ public class JavaModelManager implements ISaveParticipant, IContentTypeChangeLis
monitor.subTask(Messages.bind(Messages.build_readStateProgress, project.getName()));
info.savedState = readState(project);
} catch (CoreException e) {
- e.printStackTrace();
+ Util.log(e, "Exception while reading last build state for: " + project); //$NON-NLS-1$
}
}
return info.savedState;
diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SearchableEnvironment.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SearchableEnvironment.java
index 4bc371272..0f7c5d756 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SearchableEnvironment.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/SearchableEnvironment.java
@@ -107,6 +107,15 @@ public class SearchableEnvironment
this.moduleUpdater.computeModuleUpdates(entry);
}
}
+
+ /**
+ * Note: this is required for (abandoned) Scala-IDE
+ */
+ @Deprecated
+ public SearchableEnvironment(JavaProject project, WorkingCopyOwner owner) throws JavaModelException {
+ this(project, owner, false);
+ }
+
/**
* Creates a SearchableEnvironment on the given project
*/
diff --git a/org.eclipse.jdt.core/pom.xml b/org.eclipse.jdt.core/pom.xml
index c73581eb2..01ba33758 100644
--- a/org.eclipse.jdt.core/pom.xml
+++ b/org.eclipse.jdt.core/pom.xml
@@ -18,7 +18,7 @@
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
- <version>3.17.100-SNAPSHOT</version>
+ <version>3.18.0-SNAPSHOT</version>
<packaging>eclipse-plugin</packaging>
<properties>
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/IJavaSearchConstants.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/IJavaSearchConstants.java
index 0751f7160..d7c0f9260 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/IJavaSearchConstants.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/IJavaSearchConstants.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -339,7 +339,7 @@ public interface IJavaSearchConstants {
*</pre>
* Searching references to the type <code>Test</code> using this flag in the
* above snippet will match only the reference in italic.
- * </p><p>
+ * <p>
* Note that array creations are not returned when using this flag.
* </p>
* @since 3.4
@@ -438,7 +438,6 @@ public interface IJavaSearchConstants {
* <li>for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
* matches will be returned.</li>
* </ul>
- *</p>
* @since 3.4
* @category limitTo
*/
@@ -455,7 +454,6 @@ public interface IJavaSearchConstants {
* <li>for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
* matches will be returned.</li>
* </ul>
- *</p>
* @since 3.4
* @category limitTo
*/
@@ -473,7 +471,6 @@ public interface IJavaSearchConstants {
* <li>for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
* matches will be returned.</li>
* </ul>
- *</p>
* @since 3.4
* @category limitTo
*/
@@ -490,7 +487,6 @@ public interface IJavaSearchConstants {
* <li>for the {@link #METHOD} nature, only {@link MethodReferenceMatch}
* matches will be returned.</li>
* </ul>
- *</p>
* @since 3.4
* @category limitTo
*/
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/ReferenceMatch.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/ReferenceMatch.java
index 7daaec238..951eba95f 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/ReferenceMatch.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/ReferenceMatch.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2009 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -87,7 +87,7 @@ public ReferenceMatch(IJavaElement enclosingElement, int accuracy, int offset, i
* is the {@link IAnnotation} '<code>Num</code>'.<br><br>
* </li>
* </ul>
- * </p><p>
+ * <p>
* A local element may also be a {@link ILocalVariable} whose type is the referenced
* type. For example,
* <ul>
@@ -112,10 +112,9 @@ public ReferenceMatch(IJavaElement enclosingElement, int accuracy, int offset, i
* will return one {@link TypeReferenceMatch} match whose local element
* is the {@link ITypeParameter} '<code>T</code>'.<br><br>
* </ul>
- * </p>
*
* @return the local element of this search match, or <code>null</code> if none.
- *
+ *
* @since 3.4
*/
final public IJavaElement getLocalElement() {
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchEngine.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchEngine.java
index 54e260189..19d37e3bd 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchEngine.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchEngine.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -1440,8 +1440,8 @@ public class SearchEngine {
* Reports the field declarations using the given requestor.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* int field1;
* }
@@ -1454,8 +1454,9 @@ public class SearchEngine {
* System.out.println(b.value + b.field1);
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of accessed fields in method
* <code>X.test()</code> would collect the fields
* <code>B.value</code> and <code>A.field1</code>.
@@ -1482,8 +1483,8 @@ public class SearchEngine {
* Reports the field declarations using the given collector.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* int field1;
* }
@@ -1496,8 +1497,9 @@ public class SearchEngine {
* System.out.println(b.value + b.field1);
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of accessed fields in method
* <code>X.test()</code> would collect the fields
* <code>B.value</code> and <code>A.field1</code>.
@@ -1524,8 +1526,8 @@ public class SearchEngine {
* Reports the type declarations using the given requestor.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* }
* class B extends A {
@@ -1539,8 +1541,9 @@ public class SearchEngine {
* this.foo(b, I.VALUE);
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of referenced types in method <code>X.test()</code>
* would collect the class <code>B</code> and the interface <code>I</code>.
* </p>
@@ -1566,8 +1569,8 @@ public class SearchEngine {
* Reports the type declarations using the given collector.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* }
* class B extends A {
@@ -1581,8 +1584,9 @@ public class SearchEngine {
* this.foo(b, I.VALUE);
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of referenced types in method <code>X.test()</code>
* would collect the class <code>B</code> and the interface <code>I</code>.
* </p>
@@ -1608,8 +1612,8 @@ public class SearchEngine {
* Reports the method declarations using the given requestor.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* void foo() {};
* void bar() {};
@@ -1625,8 +1629,9 @@ public class SearchEngine {
* b.bar();
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of sent messages in method
* <code>X.test()</code> would collect the methods
* <code>A.foo()</code>, <code>B.foo()</code>, and <code>A.bar()</code>.
@@ -1653,8 +1658,8 @@ public class SearchEngine {
* Reports the method declarations using the given collector.
* <p>
* Consider the following code:
- * <code>
* <pre>
+ * <code>
* class A {
* void foo() {};
* void bar() {};
@@ -1670,8 +1675,9 @@ public class SearchEngine {
* b.bar();
* };
* }
- * </pre>
* </code>
+ * </pre>
+ * <p>
* then searching for declarations of sent messages in method
* <code>X.test()</code> would collect the methods
* <code>A.foo()</code>, <code>B.foo()</code>, and <code>A.bar()</code>.
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
index 8888e449f..3a94c4e4b 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchParticipant.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2014 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -42,14 +42,14 @@ import org.eclipse.jdt.internal.core.search.indexing.IndexManager;
* <li>{@link #scheduleDocumentIndexing(SearchDocument, IPath)}</li>
* <li>{@link #indexDocument(SearchDocument, IPath)}</li>
* </ul>
+ * <p>
* During the search phase, a subclass will be called with the following requests in order:
* <ul>
* <li>{@link #selectIndexes(SearchPattern, IJavaSearchScope)}</li>
* <li>one or more {@link #getDocument(String)}</li>
* <li>{@link #locateMatches(SearchDocument[], SearchPattern, IJavaSearchScope, SearchRequestor, IProgressMonitor)}</li>
* </ul>
- * </p>
- *
+ *
* @since 3.0
*/
public abstract class SearchParticipant {
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java
index 037dbd2df..31df46500 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/core/search/SearchPattern.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2017 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -379,7 +379,6 @@ public SearchPattern currentPattern() {
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap',
* 'HatMapper' <b>and also</b> 'HashMapEntry'.
* <p>
- * <pre>
* Examples:
* <ol><li> pattern = "NPE"
* name = NullPointerException / NoPermissionException
@@ -399,7 +398,7 @@ public SearchPattern currentPattern() {
* <li> pattern = "HMap"
* name = "HatMapper"
* result => true</li>
- * </ol></pre>
+ * </ol>
*
* @see #camelCaseMatch(String, int, int, String, int, int, boolean) for algorithm
* implementation
@@ -449,7 +448,6 @@ public static final boolean camelCaseMatch(String pattern, String name) {
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
* 'HatMapper' <b>but not</b> 'HashMapEntry'.
* <p>
- * <pre>
* Examples:
* <ol><li> pattern = "NPE"
* name = NullPointerException / NoPermissionException
@@ -466,7 +464,7 @@ public static final boolean camelCaseMatch(String pattern, String name) {
* <li> pattern = "HM"
* name = "HashMapEntry"
* result => (samePartCount == false)</li>
- * </ol></pre>
+ * </ol>
*
* @see #camelCaseMatch(String, int, int, String, int, int, boolean) for algorithm
* implementation
@@ -529,8 +527,7 @@ public static final boolean camelCaseMatch(String pattern, String name, boolean
* pattern (see {@link #camelCaseMatch(String, int, int, String, int, int, boolean)}).<br>
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap',
* 'HatMapper' <b>and also</b> 'HashMapEntry'.
- * <p>
- * <pre>Examples:<ol>
+ * <ol>
* <li> pattern = "NPE"
* patternStart = 0
* patternEnd = 3
@@ -587,7 +584,7 @@ public static final boolean camelCaseMatch(String pattern, String name, boolean
* nameStart = 0
* nameEnd = 9
* result => true</li>
- * </ol></pre>
+ * </ol>
*
* @param pattern the given pattern
* @param patternStart the start index of the pattern, inclusive
@@ -636,7 +633,8 @@ public static final boolean camelCaseMatch(String pattern, int patternStart, int
* For instance, 'HM' , 'HaMa' and 'HMap' patterns will match 'HashMap' and
* 'HatMapper' <b>but not</b> 'HashMapEntry'.
* <p>
- * <pre>Examples:<ol>
+ * Examples:
+ * <ol>
* <li> pattern = "NPE"
* patternStart = 0
* patternEnd = 3
@@ -686,7 +684,7 @@ public static final boolean camelCaseMatch(String pattern, int patternStart, int
* nameStart = 0
* nameEnd = 12
* result => (samePartCount == false)</li>
- * </ol></pre>
+ * </ol>
*
* @see CharOperation#camelCaseMatch(char[], int, int, char[], int, int, boolean)
* from which algorithm implementation has been entirely copied.
@@ -716,7 +714,7 @@ public static final boolean camelCaseMatch(String pattern, int patternStart, int
/**
* Answers all the regions in a given name matching a given pattern using
* a specified match rule.
- * </p><p>
+ * <p>
* Each of these regions is made of its starting index and its length in the given
* name. They are all concatenated in a single array of <code>int</code>
* which therefore always has an even length.
@@ -739,7 +737,7 @@ public static final boolean camelCaseMatch(String pattern, int patternStart, int
* Each of these rules may be combined with the
* {@link #R_CASE_SENSITIVE case sensitive flag} if the match comparison
* should respect the case.
- * <pre>
+ * <p>
* Examples:
* <ol><li> pattern = "NPE"
* name = NullPointerException / NoPermissionException
@@ -765,7 +763,7 @@ public static final boolean camelCaseMatch(String pattern, int patternStart, int
* name = "HashMapEntry"
* matchRule = {@link #R_PATTERN_MATCH}
* result: { 0, 2, 4, 1, 7, 3 }</li>
- * </ol></pre>
+ * </ol>
*
* @see #camelCaseMatch(String, String, boolean) for more details on the
* camel case behavior
@@ -1550,10 +1548,10 @@ private static SearchPattern createPackagePattern(String patternString, int limi
* </li>
* <li>All other fine grain constants defined in the <b>limitTo</b> category
* of the {@link IJavaSearchConstants} are also accepted nature:
- * <table border=0>
+ * <table>
* <tr>
- * <th align=left>Fine grain constant
- * <th align=left>Meaning
+ * <th>Fine grain constant
+ * <th>Meaning
* <tr>
* <td>{@link IJavaSearchConstants#FIELD_DECLARATION_TYPE_REFERENCE FIELD_DECLARATION_TYPE_REFERENCE}
* <td>Return only type references used as the type of a field declaration.
@@ -1736,10 +1734,10 @@ public static SearchPattern createPattern(String stringPattern, int searchFor, i
* </li>
* <li>All other fine grain constants defined in the <b>limitTo</b> category
* of the {@link IJavaSearchConstants} are also accepted nature:
- * <table border=0>
+ * <table>
* <tr>
- * <th align=left>Fine grain constant
- * <th align=left>Meaning
+ * <th>Fine grain constant
+ * <th>Meaning
* <tr>
* <td>{@link IJavaSearchConstants#FIELD_DECLARATION_TYPE_REFERENCE FIELD_DECLARATION_TYPE_REFERENCE}
* <td>Return only type references used as the type of a field declaration.
@@ -1848,10 +1846,10 @@ public static SearchPattern createPattern(IJavaElement element, int limitTo) {
* </li>
* <li>All other fine grain constants defined in the <b>limitTo</b> category
* of the {@link IJavaSearchConstants} are also accepted nature:
- * <table border=0>
+ * <table>
* <tr>
- * <th align=left>Fine grain constant
- * <th align=left>Meaning
+ * <th>Fine grain constant
+ * <th>Meaning
* <tr>
* <td>{@link IJavaSearchConstants#FIELD_DECLARATION_TYPE_REFERENCE FIELD_DECLARATION_TYPE_REFERENCE}
* <td>Return only type references used as the type of a field declaration.
diff --git a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodLocator.java b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodLocator.java
index 7b6f2e20d..86e499da8 100644
--- a/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodLocator.java
+++ b/org.eclipse.jdt.core/search/org/eclipse/jdt/internal/core/search/matching/MethodLocator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2000, 2016 IBM Corporation and others.
+ * Copyright (c) 2000, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -226,7 +226,7 @@ protected ReferenceBinding checkMethodRef(MethodBinding method, ReferenceExpress
if (result) {
Expression lhs = referenceExpression.lhs;
if (lhs instanceof NameReference) {
- Binding binding = ((NameReference) lhs).binding;
+ Binding binding = ((NameReference) lhs).resolvedType;
if (binding instanceof ReferenceBinding)
return (ReferenceBinding) binding;
}

Back to the top