<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="IBM">
   <title>JDT/Core Release Notes</title>
   <link rel="stylesheet" href="jdt_core_style.css" charset="iso-8859-1" type="text/css">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<table border=0 cellspacing=5 cellpadding=2 width="100%" >
  <tr> 
    <td align="left" width="72%" class="title1">
      <font size="+3"><b>jdt core - build notes 3.1 stream</b></font>
    </td>
  </tr>
  <tr><td td align="left" width="72%" class="title2"><font size="-2">java development tooling core</font></td></tr>
  <tr><td>&nbsp;</td></tr>
  <tr>
  	<td class="title3">
	  <font size="-1">
	  Here are the build notes for the Eclipse JDT/Core plug-in project 
	  <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/jdt-core-home/main.html"><b>org.eclipse.jdt.core</b></a>, 
	  describing <a href="http://bugs.eclipse.org/bugs" target=new>bug</a> resolution and substantial changes in the <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core"><b>HEAD</b></a> branch. 
	  <!--
	  This present document covers all changes since Release 3.0 (also see a summary of <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/API_changes.html">API changes</a>).
	  Older changes which occurred up to Release 3.0 can be found in 
	  <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/R21_buildnotes_jdt-core.html">build notes R2.1</a>.
	  -->
	  This present document covers all changes since Release 3.0 (also see a summary of <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/API_changes.html">API changes</a>).
	  <br>Maintenance of previous releases of JDT/Core is performed in parallel branches: 
		  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=R3_0_maintenance">R3.0.x</a>,
		  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=R2_1_maintenance">R2.1.x</a>,
		  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=R2_0_1">R2.0.x</a>, 
		  <a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=ECLIPSE_1_0">R1.0.x</a>.
	  </font>
	</td>
  </tr>
</table>

<a name="v_558"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1RC1 - ?th May 2005
<br>Project org.eclipse.jdt.core v_558
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_558">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>The Code Assist option CODEASSIST_HIDE_RESTRICTED_REFERENCES is replaced by
CODEASSIST_FORBIDDEN_REFERENCE_CHECK and CODEASSIST_DISCOURAGED_REFERENCE_CHECK
(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94403">94403</a>).
</li>
<li> Code Assist suggest all member types when completion token is a single name.
<pre>
Y&lt;complete here&gt; // p.q.X.Y is proposed.
</pre>
As all member types are proposed, code assist does not propose types of the wrong kind.
Only classes are proposed inside an extends clause, only interfaces inside an implements clause
and only annotations in annotation reference (It was necessary before to be able to propose
a top level type which contains these types).<br>
Note: To re-enabled quickly the old behaviors, change the value of Completion.PROPOSE_MEMBER_TYPES.
</li>
<li>Added API <code>JavaCore#initializeAfterLoad(IProgressMonitor)</code> to allow
	 a client to force the initialization of internal structures.
</li>
<li>Default value for <code>COMPILER_PB_MISSING_JAVADOC_COMMENTS_OVERRIDING</code> and
	<code>COMPILER_PB_MISSING_JAVADOC_TAGS_OVERRIDING</code> JavaCore options have been changed from "enabled" to "disabled".<br>
	(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96270">96270</a>).
</li>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75816">bug 75816</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>
Duplicate names are not allowed in classpath entry extra attributes.<br>
Javadoc comment of each <code>JavaCore.new*Entry</code> method have been updated to clearly specify this behavior:
<pre>
 * The <code>extraAttributes</code> list contains name/value pairs that must be persisted with
 * this entry. If no extra attributes are provided, an empty array must be passed in.
 * Note that this list should not contain any duplicate name.
</pre>
<code>JavaConventions.validateClasspathEntry(IJavaProject,IClasspathEntry,boolean,boolean)</code> has been modified
to verify this point. It now returns an invalid status (<code>new IJavaStatus(IJavaModelStatusConstants.NAME_COLLISION,...)</code>)
when duplicate names are found in extra attributes.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96698">96698</a>
org.eclipse.jdt.core.dom.VariableBinding.getUnresolvedJavaElement produce ClassCastException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88364">88364</a>
compiler options
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94267">94267</a>
[1.5][select] Selecting type parameter in binary answer match on line 0
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96642">96642</a>
CCE in SourceMapper.computeAllRootPaths(..)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87362">87362</a>
BindingKey#internalToSignature() should return the field's type signature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94404">94404</a>
[model] Disallow classpath attributes with same key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92398">92398</a>
[compiler] Leverage access rule support in batch compiler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96588">96588</a>
Rename Signature#removeCaptureFromMethod(...) to removeCaptureFrom(..)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96410">96410</a>
Incorrect information in selection resolved key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75816">75816</a>
[search] Call Hierarchy does not find calls to the constructor of java.util.HashMap.Entry [call hierarchy]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95167">95167</a>
[content assist] Spurious "Access restriction" error during code assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95580">95580</a>
CreateField on IType doesn't work if the type is an enum type that has enum constants
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95963">95963</a>
(3.1M7) Compiler error when parameterizing with missing inner type.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96134">96134</a>
Internal error for odd (probably illegal) class declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96464">96464</a>
[assist] JavaCorePreferenceInitializer does not initialized CODEASSIST_DISCOURAGED_REFERENCE_CHECK
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96414">96414</a>
Javadoc of ASTParser#setCompilerOptions(..): mention that setProject(..) resets options
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95933">95933</a>
Refining a generic method causes AbstractMethodError
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94897">94897</a>
[1.5] Compiler does not reject class with two erasure-equivalent methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96213">96213</a>
Eclipse 3.1M7 - Field completion stack overflow
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96401">96401</a>
jdt.core tests pass, but fill the .log
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96439">96439</a>
Hierarchy not refreshed if adding a dependent project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82852">82852</a>
"Searching for errors in &lt;project&gt;" running unit tests from package
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95154">95154</a>
Missing package.html files for API packages
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96387">96387</a>
Schemas for extension points are inaccurate
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93249">93249</a>
Code assist doesn't propose full method stub
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94878">94878</a>
Configuration details is large, containing many prefs for PDE and JDT classpath containers
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96270">96270</a>
[javadoc] Missing Javadoc comment: 'check overriding..' should be 'off' by default
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96300">96300</a>
Use the line separator platform preference for new files
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94303">94303</a>
import static adds annoying semicolon
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83716">83716</a>
[search] refs to 2-arg constructor on Action found unexpected matches
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96071">96071</a>
Javadoc for IJavaProject.findType(String ) is not consistant
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94903">94903</a>
Error setting method breakpoint in 1.5 project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88395">88395</a>
[1.5][compiler] Binary compat problem with enum/switch codegen
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95727">95727</a>
ITypeBinding#getJavaElement() returns a ResolvedSourceField for an anonymous class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95909">95909</a>
Error with static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95794">95794</a>
[1.5][search] Search for all occurrences does not find references in static imports
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95911">95911</a>
[5.0][dom] Wrong node range for variable declaration fragment containing anonymous class declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93941">93941</a>
Classpath initialization on shutdown
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93731">93731</a>
JDT core job still running after shutdown.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89849">89849</a>
[1.5][assist] Completion in switch proposes already written enum constants
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91670">91670</a>
package-info.java is not being correctly compiled
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93880">93880</a>
[1.5][javadoc] Source range of PackageDeclaration does not include Javadoc child
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93254">93254</a>
[assist] ClassCastException when complete annotation type ref
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95760">95760</a>
[1.5][search] MatchLocator does not compile against 5.0 JRE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93668">93668</a>
Search indexes not rebuild
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95748">95748</a>
SourceMapper should not write timing info to stdout
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92555">92555</a>
Code assist in Annotations suggests non-annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92733">92733</a>
[assist] Classes suggested in implements clause
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94965">94965</a>
[assist] code assist should suggest inner types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92937">92937</a>
Need API: JavaCore#initializeAfterLoad()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90215">90215</a>
[1.5] Enums implementing generic interfaces can compile incorrectly.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95244">95244</a>
performance optimization in SourceMapper.computeAllRootPaths
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91615">91615</a>
Wrong class opened by debugger/"Open Type"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=39856">39856</a>
External jar's timestamps should be persisted accross sessions
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89632">89632</a>
Exception when trying to evaluate in Snippet Editor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95538">95538</a>
Operation not supported in JLS2 AST from resolving MethodBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95521">95521</a>
[1.5][javadoc] validation with @see tag not working for generic method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95286">95286</a>
[1.5][javadoc] package-info.java incorrectly flags "Missing comment for public declaration"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95388">95388</a>
[code manipulation] NPE sorting members
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94150">94150</a>
[1.5][javadoc][enum] javadoc is always null for EnumConstantDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94653">94653</a>
[1.5][select] Selection on invalid raw member type should still surface raw type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94092">94092</a>
ASTParser#createASTs(..) restores wrong bindings from capture keys
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88719">88719</a>
UserLibrary.serialize /createFromString need support for access restriction / attributes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89937">89937</a>
[1.5][compiler] Annotation attribute should not be able to reference field
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93891">93891</a>
Restricted UIPlugin is in my code assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93905">93905</a>
Batch compiler - add a timestamp to log files
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95262">95262</a>
ASTParser fails with K_CLASS_BODY_DECLARATIONS
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95211">95211</a>
[api] stale J2SE5 comment in IDOMImport
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95431">95431</a>
Code formatter fails to format this code
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95394">95394</a>
Problem resolving types for Assignment ("+=") on 3.1M7
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83034">83034</a>
[1.5][compiler] method on A&lt;D,?&gt; not applicable for argument &lt;?&gt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87550">87550</a>
[1.5] [compiler] The method in the type is not applicable for the arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95021">95021</a>
[1.5][compiler] incorrectly inferred method type parameters bug in 3.1M6?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91588">91588</a>
Delete CVS project and then add as source project leads to duplicate Open Type entries
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73969">73969</a>
Full build on startup
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80118">80118</a>
[search] OutOfMemoryError while searching for Test class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87749">87749</a>
different IMethodBindings of generic method have equal getKey()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94398">94398</a>
Error attempting to find References
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93408">93408</a>
ITypeBinding#isEqualTo(..) does not resolve type variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94389">94389</a>
[search] InvocationTargetException on Rename
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79990">79990</a>
[1.5][search] Search for method declaration doesn't find method with instantiated type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95066">95066</a>
[1.5][compiler] Wrong Cast Allowed


<a name="v_557"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 12th May 2005 - 3.1 MILESTONE 7 / 3.1 CANDIDATE RELEASE 0
<br>Project org.eclipse.jdt.core v_557
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_557">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94308">94308</a>
[1.5][compiler] @SuppressWarnings("deprecation") does not suppress warnings from javadoc


<a name="v_556"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 12th May 2005
<br>Project org.eclipse.jdt.core v_556
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_556">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> Enabled by default the optional compiler diagnosis to signal unhandled warning tokens in <code>@SuppressWarnings</code> annotations.
Note that this warning can itself be turned off using @SuppressWarnings("warningToken").
<pre>
* COMPILER / Reporting Unhandled Warning Token for @SuppressWarnings
*    When enabled, the compiler will issue an error or a warning when encountering a token
*    it cannot handle inside a @SuppressWarnings annotation.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.unhandledWarningToken"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94718">bug 94718</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94928">94928</a>
[1.5][compiler] NPE in ParameterizedGenericMethodBinding generated by making method generic
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93727">93727</a>
Code Formatter fails with Method Parameter Annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93075">93075</a>
Invalid source ranges for nested ParameterizedTypes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92360">92360</a>
type binding with isWildcardType() == true should not have isClass() == true
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94168">94168</a>
Java annotation is missing in EnumConstantDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94867">94867</a>
[1.5][compiler] Annotation method should tolerate empty array default value
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94747">94747</a>
[1.5][compiler] Error message is not optimal
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94718">94718</a>
[1.5][search][annot] Find references in workspace breaks on an annotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94644">94644</a>
[1.5][compiler] Non-static member type of raw type should be raw
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94206">94206</a>
CCE in BindingKeyResolver when restoring array type of method type parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94260">94260</a>
[Preferences] preference option missing in Compiler Settings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94262">94262</a>
[1.5] non static class must not be visible through static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93904">93904</a>
Batch compiler -log option broken for some values
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87627">87627</a>
[1.5][search] references to type variable yield non-existent elements in search view
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93588">93588</a>
[compiler] java.lang.VerifyError: Looks similar to 60040 but is happening on current release


<a name="v_555"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 9th May 2005
<br>Project org.eclipse.jdt.core v_555
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_555">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> Code Assist provide the enclosing type reference when cursor is inside a type argument
and the completion token is empty (in the same way as method calls).
<pre>
p.q.X&lt;&lt;complete here&gt;&gt; // p.q.X&lt;T,U&gt; is proposed.
p.q.X&lt;Object, &lt;complete here&gt;&gt; //p.q.X&lt;T,U&gt; is proposed
</pre>
</li>
<li> Code Assist provide the enclosing annotation reference when completion is inside an annotation argument
and the completion token is empty (in the same way as method calls).
<pre>
@Annot(&lt;complete here&gt;) // p.Annot is proposed.
@Annot(foo1=0, &lt;complete here&gt;) // p.Annot is proposed.
</pre>
</li>
<li> In 5.0 compliant mode, changed local inner type naming convention to reflect JLS 13.1 (3rd edition).
As a consequence, instead of generating a file named <code>X$1$A.class</code>, it will simply be <code>X$1A.class"</code>.
</li>
<li> Added optional compiler diagnosis to signal unhandled warning tokens in <code>@SuppressWarnings</code> annotations.
Note that this warning can itself be turned off using @SuppressWarnings("warningToken").
<pre>
* COMPILER / Reporting Unhandled Warning Token for @SuppressWarnings
*    When enabled, the compiler will issue an error or a warning when encountering a token
*    it cannot handle inside a @SuppressWarnings annotation.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.unhandledWarningToken"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"
</pre>
</li>
<li> Added compiler option to control whether @SuppressWarning annotations are active or not.
By disabling them, one can quickly revive all hidden warnings.
<pre>
* COMPILER / Determine whether @SuppressWarnings is effective
*    When enabled, the @SuppressWarnings annotation can be used to suppress some compiler warnings. 
*    When disabled, all @SupressWarnings annotations are ignored; i.e., warnings are reported.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.suppressWarnings"
*     - possible values:   { "enabled", "disabled" }
*     - default:           "enabled"
</pre>
</li>
<li> Added API on <code>CorrectionEngine</code> for computing the warning token corresponding to an optional warning ID.
<pre>
/**
 * Returns a token which can be used to suppress a given warning using 
 * <code>@SuppressWarnings</code> annotation, for a given problem ID 
 * ({@link IProblem }). If a particular problem is not suppressable, 
 * <code>null</code> will be returned. 
 * 
 * Note: <code>@SuppressWarnings</code> can only suppress warnings, 
 * which means that if some problems got promoted to ERROR using custom compiler 
 * settings ({@link IJavaProject#setOption(String, String)}), the 
 * <code>@SuppressWarnings</code> annotation will be ineffective.
 * 
 * Note: <code>@SuppressWarnings</code> can be argumented with 
 * <code>"all"</code> so as to suppress all possible warnings at once.
 * 
 * Note: The tokens returned are not necessarily standardized across Java 
 * compilers. If you were to use one of these tokens in an @SuppressWarnings 
 * annotation in the Java source code, the effects (if any) may vary from 
 * compiler to compiler.
 * 
 * @param problemID
 *         the ID of a given warning to suppress
 * @return a String which can be used in <code>@SuppressWarnings</code> annotation, 
 * or <code>null</code> if unable to suppress this warning.
 * @since 3.1
 */
public static String getWarningToken(int problemID)
</pre>
</li>
<li>More warning tokens are now recognized by <code>@SuppressWarnings</code>, see list below. Note that
these are subject to changing in the near future.
  <ul>
     <li>all : any warning</li>
     <li>assertIdentifier : ''assert'' used as identifier</li>
     <li>boxing : autoboxing conversion</li>
     <li>charConcat : char[] in String concat</li>
     <li>conditionAssign : possible accidental boolean assignment</li>
     <li>constructorName : method with constructor name</li>
     <li>dep-ann : missing @Deprecated annotation</li>
     <li>deprecation : deprecation outside deprecated code</li>
     <li>emptyBlock : undocumented empty block</li>
     <li>enumSwitch : incomplete enum switch</li>
     <li>fieldHiding : field hiding another variable</li>
     <li>finalBound : type parameter with final bound</li>
     <li>finally : finally block not completing normally</li>
     <li>indirectStatic : indirect reference to static member</li>
     <li>intfAnnotation : annotation type used as super interface</li>
     <li>intfNonInherited : interface non-inherited method compatibility</li>
     <li>javadoc : invalid javadoc</li>
     <li>localHiding : local variable hiding another variable</li>
     <li>maskedCatchBlock : hidden catch block</li>
     <li>nls : string literal lacking non-nls tag //$NON-NLS-&lt;n&gt;$</li>
     <li>noEffectAssign : assignment without effect</li>
     <li>over-ann : missing @Override annotation</li>
     <li>pkgDefaultMethod : attempt to override package-default method</li>
     <li>semicolon : unnecessary semicolon, empty statement</li>
     <li>serial : missing serialVersionUID</li>
     <li>unqualifiedField : unqualified reference to field</li>
     <li>unchecked : unchecked type operation</li>
     <li>unusedArgument : unread method parameter</li>
     <li>unusedImport : unused import declaration</li>
     <li>unusedLocal : unread local variable</li>
     <li>unusedPrivate : unused private member declaration</li>
     <li>unusedThrown : unused declared thrown exception</li>
     <li>unnecessaryElse : unnecessary else clause</li>
     <li>uselessTypeCheck : unnecessary cast/instanceof operation</li>
     <li>specialParamHiding : constructor or setter parameter hiding another field</li>
     <li>staticReceiver : non-static reference to static member</li>
     <li>syntheticAccess : synthetic access for innerclass</li>
     <li>typeHiding : type parameter hiding another type</li>
     <li>varargsCast : varargs argument need explicit cast</li>
     <li>warningToken : unhandled warning token</li>
  </ul>
</li>
<li>
SearchMatch now has a implicit field which shows whether the associated element is implicit or not
(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94062">94062</a>).<br>
Added new API methods to access this field:
<ul>
<li><code>SearchMatch#isImplicit()</code><br></li>
<li><code>SearchMatch#setImplicit(boolean)</code></li>
</ul>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94053">94053</a>
[javadoc] Unknown references are not warned for string or href in @see/@link tags
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94111">94111</a>
[assist] provide parameter hints for template instantiations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94062">94062</a>
[1.5][search][annot] search for annotation elements incorrect match range
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93392">93392</a>
[1.5][search] Reference to implicit annotation element "value" has wrong offset
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84968">84968</a>
[1.5][generics] Exception type handling broken in latest milestone
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75885">75885</a>
[1.5][compiler] Naming convention for local innerclasses
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89426">89426</a>
provide Java class file content type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93826">93826</a>
ArrayIndexOutOfBoundsException when opening type hierarchy
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83739">83739</a>
[1.5] support @SuppressWarnings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89850">89850</a>
Duplicate strings of VM path
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83750">83750</a>
[perf] Excessive File.isFile calls for clients of JavaModel.getTarget(...)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92210">92210</a>
[search] Search for method declaration in working set (source folder) searches in whole project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93913">93913</a>
wrong resolved type caused by a static import


<a name="v_554"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 6th May 2005
<br>Project org.eclipse.jdt.core v_554
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_554">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Code Assist doesn't propose anymore type completion when completion token is empty.<br>
Note: the code to propose completion when token is empty is not removed.
Change the value of Completion.NO_TYPE_COMPLETION_ON_EMPTY_TOKEN to re-enabled this behavior.
</li>
<li>@SuppressWarnings is now supported. Recognized warning names are: <code>"all"</code>, <code>"deprecation"</code>,
<code>"serial"</code>, <code>"unchecked"</code>, <code>"finally"</code>.
</li>
<li>Changed Code Assist options.<br>
    CODEASSIST_FORBIDDEN_REFERENCE_CHECK and CODEASSIST_DISCOURAGED_REFERENCE_CHECK are replaced by CODEASSIST_HIDE_RESTRICTED_REFERENCES.<br>
    <pre>
/*
 *  CODEASSIST / Hide Proposals for Restricted Completions
 *    When value is "never", never hide proposals for restricted completions.
 *    When value is "error", hide proposals for restricted completions if insertion of these completions would create a compile error.
 *    When value is "warning", hide proposals for restricted completions if insertion of these completions would create a compile error or warning.
 *    To configure the severity of restrictions, "org.eclipse.jdt.core.compiler.problem.forbiddenReference"
 *    option must be used for forbidden reference and "org.eclipse.jdt.core.compiler.problem.discouragedReference"
 *    option must be used for discouraged reference.
 *     - option id:         "org.eclipse.jdt.core.codeComplete.restrictionsCheck"
 *     - possible values:   { "never", "error", "warning" }
 *     - default:           "error"
 */
 public static final String CODEASSIST_HIDE_RESTRICTED_REFERENCES;
    </pre></li>
<li>Removed 3.1 APIs <code>BindingKey#getDeclaringTypeSignature()</code> and
    <code>BindingKey#toSignature()</code> as they were found error prone. See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93105">bug 93105</a>
    for details.</li>
<li>Added support for 'capture' inside Code Assist. Delaring type of a completion proposal is captured for qualified completion.</li>
<li>Added APIs to replace a range of moved nodes (<code>ListRewrite#createMoveTarget(first, last, replacingNode, editGroup)</code>). 
    See <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91938">bug 91938</a> for details.
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93854">93854</a>
IAE in Util.scanTypeSignature when scanning a signature retrieved from a binding key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93662">93662</a>
Singature#getTypeParameters returns strange signature string
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93113">93113</a>
Opening the Type Hierarchy of Object uses 400M of heap
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92071">92071</a>
Duplicate entry on classpath with -promiscuous mode
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93486">93486</a>
[compiler] Wrong compile errors reported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93487">93487</a>
IType#findMethods fails on vararg methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90186">90186</a>
resolved key of methods should contain parametrized types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88082">88082</a>
ASTParser#createASTs(..) does not use the given progress monitor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90612">90612</a>
Forbidden types must not be available in Code Assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93105">93105</a>
Remove unnecessary APIs on BindingKey
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93396">93396</a>
[1.5] problem with recovery and enum constant body
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92899">92899</a>
Empty extra attributes list should not appear in .classpath
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93275">93275</a>
Need ITypeBinding#getDeclaringClass() for capture types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93298">93298</a>
[1.5][compiler] nested statics and templates compilation error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92477">92477</a>
[1.5][compiler] Internal compiler error: NullPointerException in ReferenceBinding.findSuperTypeErasingTo
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83083">83083</a>
[1.5][compiler] NPE while checking bounds of type variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93204">93204</a>
[1.5][compiler] EnumSet.of within generic class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90775">90775</a>
[1.5][compiler] Missing unchecked warning
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88202">88202</a>
Javadoc: clarify ITypeBinding#getTypeBounds()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93093">93093</a>
[1.5][dom] Capture binding "? extends Number[]" has bound Object instead of Number[]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93102">93102</a>
[1.5] Cannot restore capture binding from binding key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93082">93082</a>
[1.5][compiler] Eclipse accepts assignment between captures with array-type bounds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91467">91467</a>
[1.5][compiler] Eclipse asks for and then complains about unnecessary cast
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92982">92982</a>
[1.5][compiler] Bounds and erasure of capture and type variable bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84690">84690</a>
[assist] CompletionProposal.getDeclarationSignature returns null for array types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92821">92821</a>
[javadoc] Organize Imports - M6 - incorrectly retains import when only referered to in javadoc
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91542">91542</a>
[1.5][search] JavaModelException on ResolvedSourceMethod during refactoring
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92981">92981</a>
Content Assist overrides wrong method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91619">91619</a>
Extraneous exported package
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92872">92872</a>
[api] API constants renamed in IProblem
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92888">92888</a>
ITypeBinding#isEqualTo(..) is wrong for capture bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84224">84224</a>
Need advice for finding duplicate Types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92944">92944</a>
[1.5][search] SearchEngine#searchAllTypeNames doesn't honor enum or annotation element kind
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91078">91078</a>
[search] Java search for package reference wrongly identifies inner class as package
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92005">92005</a>
AIOBE during content assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67139">67139</a>
[classpath] n^2 classpath computations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80063">80063</a>
code assist allows overriding super class' private method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82208">82208</a>
[search] BasicSearchEngine#searchAllTypeNames doc
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=3336">3336</a>
SearchEngine doesn't support CLASS and INTERFACE (1GIEPRK)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90160">90160</a>
[search] SearchEngine.createJavaSearchScope swallows problems
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88174">88174</a>
[1.5][search][enum] method declarations not found in anonymous enum
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91938">91938</a>
[ast rewrite] new API: move range of nodes and replace

<a name="v_553"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 26th April 2005
<br>Project org.eclipse.jdt.core v_553
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_553">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Removed the need to load <code>java.lang.RuntimeException</code> and <code>java.lang.Error</code> eagerly
during compilation when assessing unchecked exception diagnosis. This allows Java class library developpers to be 
more minimalistic.
</li>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83230">bug 83230</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>Added support for Javadoc in package-info.java. Compiler now verifies package comment tags
syntax and references for this compilation unit. See bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804">83804</a> for 
further details.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91761">91761</a>
[1.5][compiler] Return statements ignored in anonymous inner classes used as enum constant constructor parameters.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84049">84049</a>
[javadoc][dom] Extended ranges wrong for method name without return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82673">82673</a>
[search] Refactor->Rename on local class also renames references to different local classes with same name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81062">81062</a>
[builder] Build is aborted even when no errors are occuring (incomplete build path == warning)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83012">83012</a>
[1.5][search][annot] Search for annotations misses references in default and values constructs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92588">92588</a>
Full build in reaction to beginRule failure
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92451">92451</a>
code assist failure: new+cast+arrays
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92373">92373</a>
[1.5] Can't distinguish capture ITypeBindings by #getKey() or #isEqualTo()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92370">92370</a>
[1.5] IAE in Signature.getParameterCount(..) for method proposal on capture type receiver
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92361">92361</a>
[1.5] NPE in ITypeBinding#getJavaElement() for capture binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92315">92315</a>
[search] NPE in MethodLocator.matchReportReference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86380">86380</a>
[1.5][search][annot] Add support to find references inside annotations on a package declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83804">83804</a>
[1.5][javadoc] Missing Javadoc node for package declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83501">83501</a>
IBinding#getJavaElement needs better specification
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83230">83230</a>
[1.5][search][annot] search for annotation elements does not seem to be implemented yet
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89624">89624</a>
Open on selection proposes twice the same entry
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92237">92237</a>
IType resolved key: key.toSignature has wrong format
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91804">91804</a>
JavaProject.isOnClasspath(IJavaElement) should avoid resolving classpath
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92059">92059</a>
IVariableBinding#getJavaElement() thows NPE for array's 'length' field
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84551">84551</a>
[1.5][compiler] compiler must not allow implicit static reference to outer type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89440">89440</a>
[1.5][problems] Reference to member of parameterized type incorrectly marked as error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84973">84973</a>
[1.5] parameterized inner type is illegal without parameterized  outer type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90484">90484</a>
[1.5][compiler] Missing override annotation conflicts with Javac error checking
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81831">81831</a>
[1.5][compiler] JDT compiler tries to infer the wildcard type "too early" in case of recursive generic type-bounds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89274">89274</a>
[1.5][compiler] Enums in hierarchies with generics produces unnecessary warnings and errors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90137">90137</a>
[1.5][compiler] Collections.sort (List&lt;Comparable&gt;) compile error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90879">90879</a>
[1.5][compiler] Cannot sort a raw Comparable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85281">85281</a>
[1.5][compiler]  A&lt;++Element&gt; should not be assignable a  A&lt;+Element&gt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91091">91091</a>
[quick assist] Cannot rename type name in file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90881">90881</a>
[1.5][compiler] NPE in builder
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84496">84496</a>
[1.5][compiler] Capture Conversion not correctly implemented
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92086">92086</a>
[index] ClassCastException in DiskIndex.mergeCategory()

<a name="v_552"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 20th April 2005
<br>Project org.eclipse.jdt.core v_552
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_552">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91772">91772</a>
Exported plugin dependencies are missing from the classpath
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88769">88769</a>
IMethodBinding#getJavaElement() drops extra array dimensions and varargs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88892">88892</a>
[1.5] IMethodBinding#getJavaElement() returns nonexistent IMethods (wrong parameter types)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91445">91445</a>
IMethodBinding.getJavaElement() returns an "unopen" IMethod
	  	
<a name="v_551"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 19th April 2005
<br>Project org.eclipse.jdt.core v_551
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_551">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added performance instrumentation to track performance problem (use PerformanceStats from Core).<br>
To enabled this Jdtcore instrumentation, you must add some new entries inside .options.
<ul>
<li><code>org.eclipse.jdt.core/perf/completion=300</code>: add an entry to performance.log if CompletionEngine.complete() take more than 300ms</li>
<li><code>org.eclipse.jdt.core/perf/selection=300</code> add an entry to performance.log if SelectionEngine.select() take more than 300ms</li>
<li><code>org.eclipse.jdt.core/perf/javadeltalistener=500</code> add an entry to performance.log if the call to the listener take more than 500ms</li>
<li><code>org.eclipse.jdt.core/perf/variableinitializer=5000</code> add an entry to performance.log if the initialization take more than 5000ms</li>
<li><code>org.eclipse.jdt.core/perf/containerinitializer=5000</code> add an entry to performance.log if the initialization take more than 5000ms</li>
<li><code>org.eclipse.jdt.core/perf/reconcile=1000</code> add an entry to performance.log if ComplationUnit.reconcile() take more than 1000ms</li>
</ul>
Current default thresholds are not accurate and must be adjusted.
</li>
<li>Added support for completion inside single member annotation and annotation attribute value.
<pre>
@MyAnnotation(&lt;complete here&gt;
@MyAnnotation(foo=&lt;complete here&gt;
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91861">91861</a>
Deadlock on startup while computing namelookup
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89411">89411</a>
ICompilationUnit#becomeWorkingCopy takes 18% of startup
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91716">91716</a>
[prefs] Too many calls to EclipsePreference#get while scanning full workspace units
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90615">90615</a>
Proposal for boolean
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84877">84877</a>
Performance on startup
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91497">91497</a>
[prefs] JavaCore should not give access to default preferences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90414">90414</a>
[content assist] Content Assist fails when escape sequence present
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91438">91438</a>
Need definitive set of jdt-core tests checked into cvs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91498">91498</a>
Reconcile still sees old access rules
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91221">91221</a>
Code assist stopped working
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91371">91371</a>
[assist] Stack Overflow - Field completion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91098">91098</a>
The Mark Occurrences feature does not mark all occurrences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79288">79288</a>
Code assist offers types which are out of scope ==> compile errors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88298">88298</a>
[1.5][assist] no completion inside SingleMemberAnnotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91238">91238</a>
Malfunction of Format function
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91160">91160</a>
SourceField.getConstant() incorrect for char constants

<a name="v_550"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 12th April 2005
<br>Project org.eclipse.jdt.core v_550
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_550">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90431">bug 90431</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89096">89096</a>
Convert to new platform NLS support
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90302">90302</a>
[javadoc] {@inheritedDoc} should be inactive for non-overridden method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90779">90779</a>
[search] Constructor Declaration search with ignoring declaring and return type also ignores type name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90915">90915</a>
[1.5][search] NPE in PatternLocator
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90266">90266</a>
[select] Code select returns null when there's a string including a slash on same line
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90605">90605</a>
Severity is not severe enough
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89470">89470</a>
Generic Method override compatibility
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90446">90446</a>
Update CreateTypeMemberOperation for changes in Indents 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90431">90431</a>
Improve path lookup in scopes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90423">90423</a>
[1.5][compiler] Generic method overloading. Javac allows but eclipse doesn't
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90213">90213</a>
[Formatter] Redundant space in multidimensional array literals
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88263">88263</a>
[1.5][compiler] Autobox and extends


<a name="v_549"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 5th April 2005
<br>Project org.eclipse.jdt.core v_549
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_549">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89815">89815</a>
Types not found using Open Type and search for declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77809">77809</a>
[format] Line wrapping for enum constants
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=49896">49896</a>
Formatters should have option to use tabs only for leading indents.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89777">89777</a>
Improve doc formatting for IMethodBinding.getMethodDeclaration()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90111">90111</a>
[1.5][compiler] Compiler warning "tagged with @Override" not correct with static methods

<a name="v_548"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 1st April 2005
<br>Project org.eclipse.jdt.core v_548 - 3.1 MILESTONE 6
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_548">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
New Code Formatter built-in profile has been added: "Eclipse [built-in]".<br>
This new profile is based on "Java Conventions" but uses tab character (instead of space) and set tab size to 4 (instead of 8).<br>
JavaCore was using these values by default but they were wrongly showed as "Java Conventions" in Code Formatter
preference page. This problem is now fixed (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89739">89739</a>).<br>
Code formatter behavior is still fully compatible with previous milestones for users who have not modified Code Formatter
options in their workspace. However, users who have explicitely modified them and have troubles with use of tab character,
should open Code Formatter preference page and either select this new "Eclipse" profile or verify state of "Use of tab character"
check-box.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89982">89982</a>
[1.5][compiler] Internal failure during missing enum  case diagnosis
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89848">89848</a>
[search] does not find method references in anonymous class of imported jarred plugin
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89778">89778</a>
NPE in bindThrownExceptions
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89710">89710</a>
[compiler] local variable range is wrong.


<a name="v_547"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 31st March 2005
<br>Project org.eclipse.jdt.core v_547
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_547">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89739">89739</a>
[prefs] Default for formatter should be Tab characters, not spaces
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89448">89448</a>
Java Generics code throws a java.lang.NoClassDefFoundError


<a name="v_546"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 31st March 2005
<br>Project org.eclipse.jdt.core v_546
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_546">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>In order to fix bugs <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=49896">49896</a> and <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=77809">77809</a>, we added the following
two APIs:
<ul>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_USE_TABS_ONLY_FOR_LEADING_INDENTATIONS</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_ALIGNMENT_FOR_ENUM_CONSTANTS</code></li>
</ul>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89477">89477</a>
[1.5][select] ArrayStoreException in SelectionEngine
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73658">73658</a>
[1.5] Not all new 1.5 formatter options seem to work

<a name="v_545"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 29th March 2005
<br>Project org.eclipse.jdt.core v_545
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_545">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81497">81497</a>
[format] Wrong feeding after array-initialization

<a name="v_544"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 29th March 2005
<br>Project org.eclipse.jdt.core v_544
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_544">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>In order to fix <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73104">73104</a>, we have added the following new API:
<ul><li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_INDENTATION_SIZE</code></li>
<li>Added new API <code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#MIXED</code>. This new constant is used for the option:
<code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_TAB_CHAR</code>.</li>
</ul>
</li>
<li>Added new API on <code>org.eclipse.jdt.core.dom.ITypeBinding#getDeclaringMethod()</code>. See bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86580">86580</a> for details.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89312">89312</a>
API: BindingKey should probably be final
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89318">89318</a>
[formatter] Option FORMATTER_INSERT_SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENTS has no effect
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89302">89302</a>
[formatter] Insert space after comma in enum constants has no effect
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73104">73104</a>
[format] indentation amount tied to tab size
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84872">84872</a>
Improve string sharing in JavaModelCache
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68148">68148</a>
[model] Leaking persisted containers
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89110">89110</a>
Redundant information in SourceTypeElementInfo
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89092">89092</a>
Redundant information in ImportDeclarationElementInfo
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89090">89090</a>
Redundant information in SourceFieldElementInfo
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89014">89014</a>
IMethodBinding#isEqualTo(..) returns true for methods in different anonymous classes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86580">86580</a>
API on ITypeBinding for asking about the declaring node of type variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88575">88575</a>
[1.5] treatment of Object.getClass() not API compliant

<a name="v_543"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 24th March 2005
<br>Project org.eclipse.jdt.core v_543
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_543">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added new kinds for the code formatter:
<ul>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_SINGLE_LINE_COMMENT</code></li>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_MULTI_LINE_COMMENT</code></li>
<li><code>org.eclipse.jdt.core.formatter.CodeFormatter#K_JAVA_DOC</code></li>
</ul>
</li>
<li>Added new options to format comments:
<ul>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_CLEAR_BLANK_LINES</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_FORMAT_HEADER</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_FORMAT_HTML</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_FORMAT_SOURCE</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_FORMAT</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_INDENT_PARAMETER_DESCRIPTION</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_INDENT_ROOT_TAGS</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_INSERT_EMPTY_LINE_BEFORE_ROOT_TAGS</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_INSERT_NEW_LINE_FOR_PARAMETER</code></li>
<li><code>org.eclipse.jdt.core.formatter.DefaultCodeFormatterConstants#FORMATTER_COMMENT_LINE_LENGTH</code></li>
</ul>
</li>
<li>Added constant for the javadoc location attribute name: <code>IClasspathAttribute#JAVADOC_LOCATION_ATTRIBUTE_NAME</code>.</li>
<li>Added API to create an array type binding key from a type key and array dimension: <code>BindingKey#createArrayTypeBindingKey(String typeKey, int arrayDimension)</code></li>
<li>Added API to create a binding key from a type name: <code>BindingKey#createTypeBindingKey(String typeName)</code>.</li>
<li>Added API to create a parameterized or raw type binding key from a generic type binding key and argument type binding keys:
    <code>BindingKey#createParameterizedTypeBindingKey(String genericTypeKey, String[] argumentTypeKeys)</code>.</li>
<li>Added API to create a type variable binding key from a type variable name and a declaring key: <code>createTypeVariableBindingKey(String typeVariableName, String declaringKey)</code></li>
<li>Added API to create a wildcard binding key from a type key and wildcard kind: <code>BindingKey#createWildcardTypeBindingKey(String typeKey, char kind)</code></li>
<li>Added API to query whether a field is an enum constant: <code>IField#isEnumConstant()</code></li>
<li>Added API to code assist for access rule management.
<ul>
<li>Added JavaCore#CODEASSIST_FORBIDDEN_REFERENCE_CHECK and JavaCore#CODEASSIST_DISCOURAGED_REFERENCE_CHECK options</li>
<li>Removed JavaCore#CODEASSIST_RESTRICTIONS_CHECK (Replaced by CODEASSIST_FORBIDDEN_REFERENCE)</li>
<li>Added CompletionProposal#getAccessibility()</li>
</ul>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=89088">89088</a>
[performance] Scanner is sending 2 messages per identifier character
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83502">83502</a>
Need API to create binding keys.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88845">88845</a>
NPE in codeComplete for supertype that extends invisible type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70827">70827</a>
[Search] wrong reference match to private method of supertype
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88300">88300</a>
[search] Reference search result is changed by placement of private method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87173">87173</a>
Surface compiler information about boxing/unboxing in the DOM AST (implicit conversion)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88841">88841</a>
IAE while opening ASTView
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88548">88548</a>
Need to get constant value on expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88921">88921</a>
[Formatter] Adopt comment formatter from JDT/UI inside JDT/Core API
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88849">88849</a>
Infinite loop in scanner when using eof=Integer.MAX_VALUE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88859">88859</a>
Constant for the name of the Javadoc attribute
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71460">71460</a>
[model] Non *.java file association with Java contents.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88756">88756</a>
[codeassist] Code assist propose anonymous enum
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76863">76863</a>
[1.5][model] IField should offer a method isEnumConstant
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88757">88757</a>
[API] SwitchStatement.statements() returns list of SwitchGroups

<a name="v_542"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 22nd March 2005
<br>Project org.eclipse.jdt.core v_542
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_542">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>The internal build state format has changed and a full build is expected when restarting an existing workspace with this version of JDT Core.</li>
<li>Added the following APIs to control access rules severity:
     <ul>
     <li><code>org.eclipse.jdt.core.IAccessRule</code>
           <ul>
           <li><code>int K_ACCESSIBLE;</code></li>
           <li><code>int K_NON_ACCESSIBLE;</code></li>
           <li><code>int K_DISCOURAGED;</code></li>
           <li><code>IPath getPattern();</code></li>
           <li><code>int getKind();</code></li>
           </ul>
      </li>
      <li><code>org.eclipse.jdt.core.JavaCore</code>
           <ul>
           <li><code>String COMPILER_PB_DISCOURAGED_REFERENCE;</code></li>
           <li><code>IAccessRule newAccessRule(IPath pattern, int kind);</code></li>
           <li><code>IClasspathEntry newContainerEntry(
							IPath containerPath, 
							IAccessRule[] accessRules, 
							IClasspathAttribute[] extraAttributes,
							boolean isExported);</code></li>
           <li><code>IClasspathEntry newLibraryEntry(
							IPath path,
							IPath sourceAttachmentPath,
							IPath sourceAttachmentRootPath,
							IAccessRule[] accessRules, 
							IClasspathAttribute[] extraAttributes,
							boolean isExported);</code></li>
           <li><code>IClasspathEntry newProjectEntry(
							IPath path, 
							IAccessRule[] accessRules, 
							boolean combineAccessRules,
							IClasspathAttribute[] extraAttributes,
							boolean isExported);</code></li>
           <li><code>IClasspathEntry newVariableEntry(
							IPath variablePath,
							IPath variableSourceAttachmentPath,
							IPath variableSourceAttachmentRootPath,
							IAccessRule[] accessRules, 
							IClasspathAttribute[] extraAttributes,
							boolean isExported);</code></li>
           </ul>
      </li>
      <li><code>org.eclipse.jdt.core.IClasspathEntry</code>
            <ul>
           <li><code>boolean combineAccessRules();</code>
           <li><code>IAccessRule[] getAccessRules();</code>
           </ul>
      </li>
      </ul>
</li>
<li>Code select now works into Javadoc comment wherever a reference can be specified
(ie. @see, @link, @linkplain, @throws, @exception, @param or @value tags)<br>
(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54968">54968</a>).<br>
For example, hit F3 with cursor located in <code>MyClass</code>, in following Javadoc comment:
<pre>
/**
 * @see MyClass This is my class
 */
</pre>
will open editor on MyClass.java file.
</li>
<li>New CodeSelect feature: Code select return an element if the selection is an enum constant inside a switch label.
<pre>
Colors c;
swith(c) {
  case BLUE:
  case RED; // select RED
}
</pre>
</li>
<li>Added new kind of type signature: <code>Signature#WILDCARD_TYPE_SIGNATURE</code>.<br>
<code>Signature#getTypeSignatureKind(char[])</code> and <code>Signature#getTypeSignatureKind(String)</code>
now return <code>Signature#WILDCARD_TYPE_SIGNATURE</code> if the signature is a wildcard : * or +Ljava.lang.Object; or -Ljava.lang.Object;
</li>
<li>Added new completion API to describe context in which the completion occurs.<br>
Currently only the expected types of the potential completion proposals are proposed.
<pre>
 X x = zzz&lt;complete here&gt;
</pre>
In this example the expected type is <code>X</code>. It is not mandatory to a proposal
to respect this expectation and it is possible that there is no completion proposal.
<pre>
public class CompletionContext  {
  public char[][] getExpectedTypesSignatures() {...}
  public char[][] getExpectedTypesKeys() {...}
}
</pre>
Client must override <code>CompletionRequestor#acceptContext(..)</code> to know the context.
This method call ocurs after the call to <code>beginReporting()</code> and before the call to any
<code>accept(CompletionProposal)</code> method.
<pre>
public class CompletionRequestor {
  ...
  public void acceptContext(CompletionContext context) {..}
  ...   
}
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87644">87644</a>
Control access rules severity
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88625">88625</a>
[1.5][compiler] Invalid Enum comparing (Build id: I20050219-1500)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87998">87998</a>
[1.5][compiler] Enum constants generate warnings about synthetic constructor access
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88562">88562</a>
Internal compiler error when compiling GNU Classpath
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88295">88295</a>
[1.5][assist] too many completion on enum case label
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88446">88446</a>
[1.5] annotations declared inside generic classes are not visible at runtime
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=54968">54968</a>
[javadoc][select] ICodeAssist#codeSelect doesn't work for member references in javadoc
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85379">85379</a>
[1.5][select][enum] Code resolve on enum in switch
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88429">88429</a>
Redundant information in SourceMethodElementInfo
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88428">88428</a>
Class file reader's method info still hold on byte array
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88223">88223</a>
[1.5][compiler] Local enums are not reported as error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88224">88224</a>
[1.5][DOM] ASTRewriteAnalyzer blows up with local enums
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86971">86971</a>
[1.5][codeselect] F3 should perform if selecting '@Deprecated'
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85713">85713</a>
Signature.getTypeSignatureKind does not like wildcard types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87762">87762</a>
[model] suspicious huge amount of IPackageFragmentRoot[]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88252">88252</a>
Deleting a MemberValuePair with a NormalAnnotation child does not work
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87818">87818</a>
[compiler] local enums are illegal, but does this need to be a syntax error?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69657">69657</a>
[dom] deprecate JLS2 once JLS3 is fully supported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81797">81797</a>
NPE in SortElementBuilder
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80036">80036</a>
EmptyStackException in CompilationUnitSorter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88187">88187</a>
Unexpected deprecation warnings during full build
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88094">88094</a>
[1.5] compiler accepts two methods with same erasure
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86970">86970</a>
[codeassist] Add an API on completion proposal API to surface the expected type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=88124">88124</a>
More deprecated warnings than expected



<a name="v_541"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 15th March 2005
<br>Project org.eclipse.jdt.core v_541
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_541">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>

<li>Compiler now recognizes <code>@Deprecated</code> annotations, and treats them equivalent
to doc comment <code>/** @deprecated */</code>.
</li>
<li>Added optional compiler diagnosis to flag deprecated constructs missing a proper
<code>@Deprecated</code> annotation (to encourage using annotations instead of doc comment tag).
Corresponding problem IDs are: <code>IProblem.FieldMissingDeprecatedAnnotation</code>,
<code>IProblem.MethodMissingDeprecatedAnnotation</code>,
<code>IProblem.TypeMissingDeprecatedAnnotation</code>.
<pre>
* COMPILER / Reporting Missing @Deprecated Annotation
*    When enabled, the compiler will issue an error or a warning whenever encountering a declaration
*    carrying a @deprecated doc tag but has no corresponding @Deprecated annotation.
*     - option id:        "org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"     
</pre>
</li>
<li>JLS2 API have been deprecated (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69657">69657</a>).</li>
<li>Allowed javadoc reference to varargs methods (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87845">87845</a>).<br>
The 1.5 spec for the Javadoc tool does not mention the possibility
of a variable arity indicator in method references. However, the 1.5
Javadoc tool itself does indeed support it. Since it makes sense to have
a way to explicitly refer to variable arity methods, it seems more likely
that the Javadoc spec is wrong in this case.<br>
Following API methods were added to <code>MethodRefParameter</code>:
<pre>
/**
 * The "varargs" structural property of this node type (added in JLS3 API).
 * @since 3.1
 */
public static final SimplePropertyDescriptor VARARGS_PROPERTY;
/**
 * Returns whether this method reference parameter is for
 * the last parameter of a variable arity method (added in JLS3 API).
 * <p>
 * Note that the binding for the type <code>Foo</code>in the vararg method
 * reference <code>#fun(Foo...)</code> is always for the type as 
 * written; i.e., the type binding for <code>Foo</code>. However, if you
 * navigate from the MethodRef to its method binding to the
 * type binding for its last parameter, the type binding for the vararg
 * parameter is always an array type (i.e., <code>Foo[]</code>) reflecting
 * the way vararg methods get compiled.
 * </p>
 * 
 * @return <code>true</code> if this is a variable arity parameter,
 *    and <code>false</code> otherwise
 * @exception UnsupportedOperationException if this operation is used in
 * a JLS2 AST
 * @since 3.1
 */ 
public boolean isVarargs();
/**
 * Sets whether this method reference parameter is for the last parameter of
 * a variable arity method (added in JLS3 API).
 * 
 * @param variableArity <code>true</code> if this is a variable arity
 *    parameter, and <code>false</code> otherwise
 * @since 3.1
 */ 
public void setVarargs(boolean variableArity);
</pre>
</li>
<li>Added new flags on nature of match to specify that declaring or return type should be ignored during the search
(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80264">80264</a>).<br>
These flags are defined on <code>IJavaSearchConstants</code> interface:
<pre>
/**
 * Ignore declaring type while searching result.
 * Can be used in conjunction with any of the nature of match.
 * @since 3.1
 */
int IGNORE_DECLARING_TYPE = 0x10;
/**
 * Ignore return type while searching result.
 * Can be used in conjunction with any of the nature of match.
 * Note that:
 * 	- for fields search, pattern will ignore field type
 * 	- this flag will have no effect for types search
 * @since 3.1
 */
int IGNORE_RETURN_TYPE = 0x20;
</pre>
Note that these flags are active only for search of declarations (ie. <code>IJavaSearchConstants.DECLARATIONS</code> and <code>IJavaSearchConstants.ALL_OCCURRENCES</code>)
and while searching for IJavaElement (see doc of <code>SearchPattern.createPattern(IJavaElement, int)</code> API method).
</li>
<li>Improved API for type name requestor. Abstract class <code>TypeNameRequestor</code> replaces interface <code>ITypeNameRequestor</code> which is deprecated.<br>
There's now only a single method for type name requestor while accepting a type:
<pre>
/**
 * Accepts a top-level or a member type.
 *
 * The default implementation of this method does nothing.
 * Subclasses should override.
 *
 * @param modifiers the modifier flags of the type. Note that for source type,
 *	these flags may slightly differ from thoses get after resolution.
 *	For example an interface defined by <code>interface A {}</code>, although obviously public,
 *	will be returned false by <code>Flags.isPublic(modifiers)</code> due to the fact
 *	that its declaration does not explicitely define <code>public</code> flag.
 *	@see org.eclipse.jdt.core.Flags
 * @param packageName the dot-separated name of the package of the type
 * @param simpleTypeName the simple name of the type
 * @param enclosingTypeNames if the type is a member type, 
 *	the simple names of the enclosing types from the outer-most to the
 *	direct parent of the type (for example, if the class is x.y.A$B$C then
 *	the enclosing types are [A, B]. This is an empty array if the type
 *	is a top-level type.
 * @param path the full path to the resource containing the type. If the resource is a .class file
 *	or a .java file, this is the full path in the workspace to this resource. If the
 *	resource is an archive (that is, a .zip or .jar file), the path is composed of 2 paths separated
 *	by <code>IJavaSearchScope.JAR_FILE_ENTRY_SEPARATOR</code>: 
 *	the first path is the full OS path to the archive (if it is an external archive), 
 *	or the workspace relative <code>IPath</code> to the archive (if it is an internal archive), 
 *	the second path is the path to the resource inside the archive.
 */
public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName, char[][] enclosingTypeNames, String path)
</pre>
Clients can now distinguish Annotation, Enum, Interface and Class using <code>Flags</code> API methods on <code>modifiers</code> parameter.
</li>
<li>Added support for package-info.java. This allows to define annotations on the package declaration. See bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86167">86167</a> for 
further details.</li>
<li>Added API <code>JavaCore#newProjectEntry(IPath, IPath[], IPath[], boolean, IClasspathAttribute[], boolean)</code>
      that take a 'combineAccessRestrictions' flag to control whether access restrictions of exported libraries of the project
      should be combined with the access restrictions of this project entry.
</li>
<li>Added API method <code>AST#newName(String qualifiedName)</code> for creating 
<code>SimpleName</code> or <code>QualifiedName</code>
nodes depending on the form of the given name string.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83643">83643</a>
[1.5] @Deprecated members not 'slashed'
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86291">86291</a>
[1.5][compiler] Annotation attribute see members of the annotated type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69657">69657</a>
[dom] deprecate JLS2 once JLS3 is fully supported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77349">77349</a>
[compiler] ClassFormatError when accessing clone() or finalize() methods from an interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87956">87956</a>
compiling error on jdk1.5 collection generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87900">87900</a>
Error 'Requesting Java AST from selection': Bug in the Java AST parser
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87754">87754</a>
[1.5][javadoc][dom] Type of ArrayType component type inside MethodRef has no binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87845">87845</a>
[1.5][dom][javadoc] allow javadoc references to vararg methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87778">87778</a>
[search] doesn't find all declarations of method with covariant return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80264">80264</a>
[search] Search for method declarations in workspace, disregarding declaring type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85924">85924</a>
[1.5][compiler[ code generation error in M5 w/regard to generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87849">87849</a>
[AST] SimpleName.setIdentifier() not detecting bogus identifiers
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86779">86779</a>
AST#resolveWellKnownType(..) should support primitive type wrappers
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85900">85900</a>
[1.5] [compiler] internal compiler reports name clash
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87777">87777</a>
Bindings.isEqualTo returns false for equal bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86902">86902</a>
[1.5][compiler] Raw field access is not flagged as unsafe type operation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81498">81498</a>
[search] ITypeNameRequestor should support enums and annotations as well
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87490">87490</a>
Internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85491">85491</a>
[1.5] Compiler rejects autoboxing-calls to overloaded varargs methods as ambiguous
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87613">87613</a>
Access restrictions should only apply to project's own package fragment roots
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86167">86167</a>
[1.5] Add support for package-info.java
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87350">87350</a>
IllegalArgumentException when converting AST with invalid enum body declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85262">85262</a>
[1.5] Bound mismatch: type R is not a valid substitute for the bounded parameter...
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87498">87498</a>
StackOverflowError when marking occurrences of Comparable in Collections.min(..)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87481">87481</a>
[1.5] type reference in CastExpression is generic type instead of parameterized
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87463">87463</a>
The built-in Eclipse compiler behaves differently than IBM or Sun JDK
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85226">85226</a>
[1.5] EnumConstantDeclaration should declare resolveConstructorBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36938">36938</a>
[plan item][1.5] Add early support for J2SE 1.5 features
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87404">87404</a>
[javadoc] Unexpected not defined warning on constructor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85811">85811</a>
BindingKey.toSignature should return method signature for methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87411">87411</a>
[dom] API: ast.newName(String qualifiedName)
	  	
<a name="v_540"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 8th March 2005
<br>Project org.eclipse.jdt.core v_540
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_540">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83693">83693</a>
[search][javadoc] References to methods/constructors: range does not include parameter lists
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87273">87273</a>
[1.5][compiler] Code with generics compiles, but throws a NoSuchMethodError when executed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87050">87050</a>
ASTParser#createASTs(..) cannot resolve method type parameter binding from key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83002">83002</a>
[1.5] Compiler generates incorrect signature for throws clause.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87318">87318</a>
[1.5][compiler] Array.asList(int[]) should be accepted
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87171">87171</a>
Find declaring node doesn't work for methods/fields using type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86908">86908</a>
Code formatter fails to format when this code is present
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86967">86967</a>
[1.5][dom] NPE in BindingKeyResolver for multi-level parameterized type binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86898">86898</a>
[1.5][compiler] compiler should flag unchecked cast
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87267">87267</a>
[1.5][compiler] cast from Integer[] to int[] should fail
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82830">82830</a>
AST: String concatenation represented as single node
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83393">83393</a>
[1.5][javadoc] reference to vararg method also considers non-array type as correct
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83285">83285</a>
[javadoc] Javadoc reference to constructor of secondary type has no binding / not found by search
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=87042">87042</a>
Passing null as first vararg makes parameter null (3.1M4)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86906">86906</a>
[1.5][dom] SourceType#createField fails for enums
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86878">86878</a>
Parameterized varargs causes Java formatter to fail
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80221">80221</a>
[dom][javadoc] No Javadoc comment node when return type missing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86901">86901</a>
[1.5][search] Static import method references not found in unused import

<a name="v_539"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 1st March 2005
<br>Project org.eclipse.jdt.core v_539
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_539">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83319">bug 83319</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>Added optional compiler diagnosis to flag incomplete enum switch statements.
Corresponding problem ID is: <code>IProblem.MissingEnumConstantCase</code>
<pre>
* COMPILER / Reporting Incomplete Enum Switch
*    When enabled, the compiler will issue an error or a warning whenever an enum constant has
*    no corresponding case label in an enum switch statement
*    type has no case label matching an enum constant.
*     - option id:        "org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"
</pre>
</li>
<li>Added API <code>org.eclipse.jdt.core.dom.CompilationUnit#getJavaElement()</code> to retrieve the compilation unit
     or class file the compilation unit node was created from.
</li>
<li>Added API <code>IMethodBinding#isSubsignature(IMethodBinding)</code> to find out if a method's signature 
     is a subsignature of another method.
</li>
<li>Added optional compiler diagnosis to flag method overriding a superclass method, but missing 
proper <code>@Override</code> annotation.
Corresponding problem ID is: <code>IProblem.MissingOverrideAnnotation</code>

<pre>
* COMPILER / Reporting Missing @Override Annotation
*    When enabled, the compiler will issue an error or a warning whenever encountering a method
*    declaration which overrides a superclass method but has no @Override annotation.
*     - option id:        "org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"                               
</pre>
</li>
<li>New CodeAssist feature: Enum constant are proposed inside switch label if the expression is an enum.
<pre>
Colors c;
swith(c) {
  case BLUE:
  case RED&lt;complete here&gt;
}
</pre>
</li>
<li>New CodeAssist feature: Annotation's attribute name are proposed.
<pre>
@Annot(attr&lt;complete here&gt;=value)
</pre>
To propose this new completion kind a new API has been added: CompletionProposal.ANNOTATION_ATTRIBUTE_REF.<br>
<pre>
/**
 * Completion is a reference to annotation's attribute.
 * This kind of completion might occur in a context like
 * &lt;code&gt;"@Annot(attr^=value)"&lt;/code&gt; and complete it to
 * &lt;code&gt;"@Annot(attribute^=value)"&lt;/code&gt;.
 * &lt;p&gt;
 * The following additional context information is available
 * for this kind of completion proposal at little extra cost:
 * &lt;ul&gt;
 * &lt;li&gt;{@link #getDeclarationSignature()} -
 * the type signature of the annotation that declares the attribute that is referenced
 * &lt;/li&gt;
 * &lt;li&gt;{@link #getFlags()} -
 * the modifiers flags of the attribute that is referenced
 * &lt;/li&gt;
 * &lt;li&gt;{@link #getName()} -
 * the simple name of the attribute that is referenced
 * &lt;/li&gt;
 * &lt;li&gt;{@link #getSignature()} -
 * the type signature of the attribute's type (as opposed to the
 * signature of the type in which the referenced attribute
 * is declared)
 * &lt;/li&gt;
 * &lt;/ul&gt;
 * &lt;/p&gt;
 * 
 * @see #getKind()
 */
 public static final int ANNOTATION_ATTRIBUTE_REF = 13;
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83319">83319</a>
[1.5][search] Search does not find references to statically imported methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86838">86838</a>
[1.5] [compiler] Eclipse compiles parameterized code that javac says is "is not within its bound"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84121">84121</a>
[1.5][search][varargs] reference to type reported as inaccurate in vararg
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83388">83388</a>
[search] SearchRequestor reports 'null' as match
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86775">86775</a>
[1.5][compiler] Infer Generic Types Arguments throws NPE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86596">86596</a>
[search] Search for type finds segments in import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79378">79378</a>
[search] IOOBE when inlining a method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68825">68825</a>
[compiler][1.5] detect not-exhaustive enum switches
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81377">81377</a>
[1.5][search] Semantics of search for methods with generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84944">84944</a>
[1.5][builder] Parameterized return type is sometimes not visible.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83770">83770</a>
[1.5] ITypeBinding getQualifiedName doesn't cover the case of parameterized member type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84140">84140</a>
The type binding of a vararg should be an array not a simple type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83100">83100</a>
[5.0] need IVariableBinding.isGeneric/Parametrized, getGeneric..
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86663">86663</a>
[DOM] AbortCompilation should not abort the creation of the tree
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86463">86463</a>
[1.5][compiler] Compiler-Bug using generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85815">85815</a>
[1.5] warn when raw iterator is used
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86611">86611</a>
[1.4] 1.5 power double causes compiler internal failure
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86531">86531</a>
Javadoc: class AST has several parameterless methods claiming to throw IllegalArgumentException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86217">86217</a>
NPE resolving bounds of Type Variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84554">84554</a>
[1.5] code assist in enum switch statements
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75702">75702</a>
[dom] Need a way to get back from an AST to the originating ICompilationUnit
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86410">86410</a>
formatting generics type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86487">86487</a>
[1.5] infinite loop in enhanced for statement when the current element is optimized out
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73676">73676</a>
[dom] Need API on bindings for overriding and assignment rules
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72258">72258</a>
[model] Should be able to dynamicaly set the size of Java model cache
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84562">84562</a>
[DCR][1.5][options] Optional warning/error to avoid accidental overrides with JDK 5.0
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85538">85538</a>
[1.5] compiler does not reject cyclic annotation element types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86141">86141</a>
[recovery] ClassCastException with annotation of parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=86179">86179</a>
[1.5] Type parameters lost with nested inheritance and generics

<a name="v_538"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M6 - 22nd February 2005
<br>Project org.eclipse.jdt.core v_538
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_538">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Inclusion/exclusion filters used as import restrictions have been renamed into 'accessible files' and 'non accessible files' patterns.
     The following APIs have been added on <code>IClasspathEntry</code>: <code>getAccessibleFiles()</code> and <code>getNonAccessibleFiles()</code>.
     These are valid only for library, project, container and variable entries. <code>getInclusionPatterns()</code> and <code>getExclusionPatterns()</code> 
     temporary return the accessible files and non accessible files patterns for these entries.
</li>
<li>Added ability to associate classpath attributes to a classpath entry (see <code>IClasspathAttribute</code>). A classpath attribute
     is created using <code>JavaCore#newClasspathAttribute(String, String)</code>. Then one can associate this attribute with 
     a classpath entry using one of:
     <ul>
     <li><code>JavaCore#newContainerEntry(IPath containerPath, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, IClasspathAttribute[] extraAttributes, boolean isExported)</code></li>
     <li><code>JavaCore#newLibraryEntry(IPath path, IPath sourceAttachmentPath, IPath sourceAttachmentRootPath, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, IClasspathAttribute[] extraAttributes, boolean isExported)</code></li>
     <li><code>JavaCore#newProjectEntry(IPath path, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, IClasspathAttribute[] extraAttributes, boolean isExported)</code></li>
     <li><code>JavaCore#newSourceEntry(IPath path, IPath[] inclusionPatterns, IPath[] exclusionPatterns, IPath specificOutputLocation, IClasspathAttribute[] extraAttributes)</code></li>
     <li><code>JavaCore#newVariableEntry(IPath variablePath, IPath variableSourceAttachmentPath, IPath variableSourceAttachmentRootPath, IPath[] accessibleFiles, IPath[] nonAccessibleFiles, IClasspathAttribute[] extraAttributes, boolean isExported)</code></li>
     </ul>
</li>
<li>Added optional compiler diagnosis when a type parameter declaration is hiding another type.
Corresponding problem ID is: <code>IProblem.TypeParameterHidingType</code>
<pre>
* COMPILER / Reporting Type Parameter Declaration Hiding another Type
*    When enabled, the compiler will issue an error or a warning whenever a type parameter
*    declaration is hiding some type.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.typeParameterHiding"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
<li>The predicates <code>isInterface()</code> on Java element and DOM AST are now answering <code>true</code>
for annotation types. Indeed, annotation types are allowed to be implemented just like regular interfaces.
</li>
<li>Added optional compiler diagnosis signalling usage of an annotation type as a super interface.
Corresponding problem ID is: <code>IProblem.AnnotationTypeUsedAsSuperInterface</code>
<pre>
* COMPILER / Reporting Use of Annotation Type as Super Interface
*    When enabled, the compiler will issue an error or a warning whenever an annotation type is used
*    as a super-interface. Though legal, this is discouraged.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.annotationSuperInterface"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72704">72704</a>
[compiler][1.5] unexpected IBindings and class files with conflicting method argument types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85397">85397</a>
[1.5][enum] erroneous strictfp keyword on enum type produces error on constructor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83321">83321</a>
[1.5][assist][enum] no override completion proposals in type when followed by a package visible enum
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85402">85402</a>
[1.5][assist] NPE while trying to complete on empty annotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85290">85290</a>
[1.5] Code assist for annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85810">85810</a>
[1.5][search] Missed type parameter reference in implements clause
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85421">85421</a>
[1.5][search] NPE while searching type parameter reference in workspace
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85432">85432</a>
Make jdtcore.jar an executable jar
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85933">85933</a>
Type parameters in anonymous type is missing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82429">82429</a>
[1.5] Need emulation of Unicode 4 using 1.4 libraries
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85062">85062</a>
[compiler] Implicit static method invocation should target the receiver type not the declaring class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84355">84355</a>
[1.5] Generics bounds overzealous when converting to Object
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85477">85477</a>
[1.5] certain unchecked conversion not reported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85303">85303</a>
[1.5] wrong declaring class for invokevirtual call


<a name="v_537"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 15th February 2005 - 3.1 MILESTONE 5
<br>Project org.eclipse.jdt.core v_537
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_537">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85203">85203</a>
VerifyError running o.e.pdu.ui from workspace
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85160">85160</a>
[compiler] java.lang.Object.finalize() method cannot be invoked on an array type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85157">85157</a>
[compiler] Integer[] is not compatible with String[] in conditional expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85215">85215</a>
[DOM][1.5] Annotation type getModifiers() always returns 0
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85115">85115</a>
[1.5] AST annotation.isTopLevel() doesn't work
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84724">84724</a>
[5.0][search] fails to find call sites for varargs constructors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85125">85125</a>
When bracket is placed after MethodDeclarator, build fails.

<a name="v_536"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 14th February 2005
<br>Project org.eclipse.jdt.core v_536
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_536">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78906">78906</a>
[1.5][compiler] this$0 is not allowed as a field in a member class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79396">79396</a>
[compiler] Static receiver for a static method invocation should be generated to cover side-effects
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84801">84801</a>
Bad code generated for Java 5.0
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83902">83902</a>
[1.5] AbstractMethodError when using covariant returns
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83901">83901</a>
[1.5] AbstractMethodError: Compiler fails to catch missing methods of implemented interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82461">82461</a>
[5.0] Unconventional formatting of annotations in ASTRewrite
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81244">81244</a>
error range for generic vararg argument
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84743">84743</a>
[1.5][compiler] Cast between two interfaces doesn't need to check compatibility of method return types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84869">84869</a>
Missing constant for "org.eclipse.jdt.core.compiler.problem.autoboxing"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84770">84770</a>
Formatter fails in specific case (.class in code)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84778">84778</a>
NaiveASTFlattener should add spaces around extendedOperands in InfixExpression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84791">84791</a>
[1.5][compiler] eclipse doesn't allow types to be derived from annotation types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83600">83600</a>
[code assist] METHOD_REF proposals have non-standard signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80630">80630</a>
[1.5] Conditional expression unboxing  should handle this case
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84717">84717</a>
Typo in javadoc of Signature.C_GENERIC_END
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84528">84528</a>
Not visiting line comments in compilation unit?
	  	
<a name="v_535"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 8th February 2005
<br>Project org.eclipse.jdt.core v_535
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_535">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> Tuned generic method type argument inference (JLS 15.12.2.7&amp;8).
</li>
<li> Optional diagnosis for assignment with no effect now also detects: "var = var++;" scenario.
<li>Added APIs <code>IType#getKey()</code>, <code>IField#getKey()</code>, <code>IMethod#getKey()</code>
    that return a binding key for these Java elements.
</li>
<li>Added APIs <code>IType#isResolved()</code>, <code>IField#isResolved()</code>, 
    <code>IMethod#isResolved()</code> that return whether these Java elements are resolved elements
    and thus whether their key (see above) contains resolved information.
</li>
<li>Added API class <code>org.eclipse.jdt.core.BindingKey</code> to decode a binding key
    obtained from <code>IBinding#getKey()</code> or one of the <code>getKey()</code> methods above.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84717">84717</a>
Typo in javadoc of Signature.C_GENERIC_START
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84669">84669</a>
[5.0] VerifyError: Expecting to find object/array on stack
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84593">84593</a>
[1.5][compiler] NPE during problem detection with raw reference to parameterized inner class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84558">84558</a>
Strange error message when using keywords "const" and "goto" as variable names
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83648">83648</a>
[1.5] Enum constructor cannot be public or protected
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83379">83379</a>
[1.5] compiler does not warn when overriding methods with parameters as array and vararg
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84345">84345</a>
[1.5][compiler] Widening reference is possible when boxing in a cast expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83615">83615</a>
[1.5][compiler] lenient subclass checking with interdependent type variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84480">84480</a>
Warning for "no effect assignment" j = j++
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83500">83500</a>
Can't restore a secondary top level from key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84416">84416</a>
Stepping into message send without receiver should highlight message before sending message
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76773">76773</a>
Stepping through conditional looks like it evaluates both halves
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84504">84504</a>
[Format] Extra empty line before class in default package when imports are specified
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83383">83383</a>
IllegalArgumentException in Signature.getParameterCount
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83218">83218</a>
[1.5] Covariant return type &amp; generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83499">83499</a>
NPE when restoring ITypeBinding from key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83611">83611</a>
compiler reports error but there is no error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84055">84055</a>
[1.5] Unnecessary cast  wrongly reported with boxing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83965">83965</a>
[1.5][compiler] Widening conversion is possible when unboxing in a cast expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81544">81544</a>
[dom] java.util.List&lt;URL&gt; sometimes has a binding, sometimes not
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82647">82647</a>
[compiler][1.5] Erroneous error with autoboxing and conditional operand
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79696">79696</a>
[dom] Wrong type binding in qualified name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84215">84215</a>
ArrayIndexOutOfBoundsException, internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84181">84181</a>
[1.5] ITypeBinding.isFromSource incorrect on raw bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83376">83376</a>
[1.5] compiler should error on ambiguous method invocation due to duplicate static imports
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78934">78934</a>
[1.5][dom] ParameterizedType for nested generic types has missing bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83162">83162</a>
Eclipse reports no name clash with equivalent bridge methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81332">81332</a>
[1.5][compiler] Is this a name clash?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80626">80626</a>
[1.5] enum types cannot define a compareTo(Object o) method


<a name="v_534"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 1st February 2005
<br>Project org.eclipse.jdt.core v_534
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_534">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Add CompletionProposal#getDeclaringKey() and CompletionProposal#getKey() API
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84064">84064</a>
AST: Wrong source ranges for superconstructorinv with type args
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83939">83939</a>
[1.5][compiler] null is allowed as a legal element value in annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83817">83817</a>
IBinding#isEqualTo(..) returns true for methods of different parameterized types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82349">82349</a>
[compiler][1.5] Problems deriving from generic class that uses inner classes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83904">83904</a>
[compiler][1.5] Y&lt;T&gt; should be uniquely defined in the same signature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83646">83646</a>
NPE renaming package
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83398">83398</a>
[compiler][1.5] compiler allows adding Object to List<? super Number>
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83219">83219</a>
NPE in ProblemReporter with duplicate abstract enum methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83860">83860</a>
[1.5] java.lang.VerifyError with Enums
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83847">83847</a>
[compiler][1.5] can create annonymous class of an enum
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83236">83236</a>
ClassCastException using code assist in a javadoc comment
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83822">83822</a>
Classes at root of project not found in Open Type dialog
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83593">83593</a>
Rename of enum type does not update constructor / throws ClassCastException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83225">83225</a>
[1.5] incorrect(?) compiler errors with type inference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83127">83127</a>
[1.5][javadoc][dom] Wrong / strange bindings for references in javadoc to methods with type variables as parameter types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80257">80257</a>
[1.5][javadoc][dom] Type references in javadocs should have generic binding, not raw
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83713">83713</a>
[search] IAE while searching reference to parameterized type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83684">83684</a>
[formatting] Formatting codes like A extends B.C&lt;Object&gt; has no effect.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83599">83599</a>
CU dirty after move refactoring


<a name="v_533"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 25th January 2005
<br>Project org.eclipse.jdt.core v_533
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_533">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Search engine is now able to find references and declarations to ITypeParameter.<br>
To perform this kind of search, clients need to create a pattern using <code>SearchPattern.createPattern(IJavaElement,int,int)</code>
providing searched ITypeParameter for IJavaElement parameter.
</li>
<li><code>TypeParameter#resolveBinding()</code> now returns an <code>ITypeBinding</code> instead of
     an <code>IBinding</code></li>
<li>Java model operations have been ported off the deprecated JDOM. They now use AST rewrite. This enables
     these operations on local and anonymous types, enumerations and annotation types.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83489">83489</a>
[select] Code select returns IType instead of ITypeParameter on method parameters types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83536">83536</a>
"Incompatible argument to function" at vararg function
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83300">83300</a>
[1.5] ClassCastException in #getJavaElement() on binding of annotation element
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81190">81190</a>
[1.5][search] no search for type parameters - SearchPattern is null
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82671">82671</a>
[compiler][1.5]Protected field not visible to subclass in different package when having a class parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83210">83210</a>
Unidentical ITypeBindings for same type from same AST from reconcile
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80800">80800</a>
getErasure() of ITypeBinding and IMethodBinding don't match the JLS
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83304">83304</a>
[1.5][search] Erasure match doesn't work for binary parameterized types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83078">83078</a>
Auto formating multiple classes has errors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=25800">25800</a>
Class file editor uses non-standard modifier order
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82859">82859</a>
[1.5] void.class is incompatible with Void.TYPE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83297">83297</a>
[1.5] Annotation bindings don't provide their declared elements/methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43483">43483</a>
[model] Can not add method to local type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77894">77894</a>
[model] Remove dependency to old JDOM in JavaModel implementation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83161">83161</a>
Can't access public field from private subclass
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78151">78151</a>
'Insert single proposals automatically' should not insert without prefix
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83096">83096</a>
[1.5][compiler] NPE for class with duplicate type parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82547">82547</a>
[1.5][compiler] NullPointerException compiling invalid source
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83098">83098</a>
IBinding#isEqualTo(..) does not compare occurrence count of local variables


<a name="v_532"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 18th January 2005
<br>Project org.eclipse.jdt.core v_532
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_532">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Support for generic methods/constructors search has been added to SearchEngine (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75642">75642</a>).<br>
User can now search for declaration and/or references to generic methods/constructors or parameterized methods/constructors (like <code>public &lt;U&gt; void foo(U u){}</code> or <code>&lt;String&gt;foo("")</code> for example).
This search can be done either selecting a JavaElement or using Java Search dialog.
</li>
<li>Added new API <code>JavaConventions#validateTypeVariableName(String)</code>.</li>
<li>Added new API <code>JavaCore#newTypeHierarchy(IRegion,WorkingCopyOwner,IProgressMonitor)</code> that creates a hierarchy
     independently of a project.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83032">83032</a>
VerifyError for anonymous declaration using variable arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75642">75642</a>
[1.5][search] Methods and constructor search does not work with generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83013">83013</a>
[5.0] TypeDeclaration after AnnotationTypeDeclaration has wrong source range
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82985">82985</a>
Static imports can't resolve bindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=83011">83011</a>
[5.0] TypeName of an Annotation has no binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79144">79144</a>
[1.5][compiler] generic type checking not performed for method return array types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82844">82844</a>
[1.5] Array type as type variable bound gives internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81590">81590</a>
[1.5][compiler] Iteration over nested arrays is broken
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82439">82439</a>
[compiler] [1.5] internal compiler reports type mismatch
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80945">80945</a>
[1.5] Code assist does not offer static fields and methods from static imports
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82590">82590</a>
[compiler] [1.5]  internal compiler reports method not implemented
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81721">81721</a>
[compiler][1.5] Correct use of generic interfaces give compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82754">82754</a>
[1.5] too many methods allowed by static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80745">80745</a>
[1.5][compiler] Two interfaces with methods with compatible return types are compatible
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80736">80736</a>
[1.5] Compiler doesn't check that bounds have methods with same return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73535">73535</a>
[1.5][model] Method to validate type parameter names missing in JavaConventions
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82740">82740</a>
[assist] NPE inside CompletionEngine with 1.5 code if compliance source level is 1.4
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80098">80098</a>
newTypeHierarchy(IRegion,...) should not be constrained to an IJavaProject
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82510">82510</a>
[compiler] Util.bind(...) methods should use MessageFormat
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81706">81706</a>
[1.5] Static import of static method produces compile error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82670">82670</a>
[5.0] wrong source range for VariableDeclarationFragment with ArrayCreation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80743">80743</a>
[compiler] Interface cannot define a method from Object with a different return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82616">82616</a>
CharacterLiteral.charValue fails for '\000'
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77283">77283</a>
Incremental and full builds produce different problem markers for same duplicate type error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74394">74394</a>
[compiler] Provide XML output option for Eclipse compiler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81719">81719</a>
[compiler][1.5] Correct use of generic abstract classes give compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81945">81945</a>
[compiler] Enum and Duplicate case error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82542">82542</a>
Internal error during AST creation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82558">82558</a>
[select] Text selection fail on constructor when parameters are parameterized types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78232">78232</a>
[1.5][generics]Erroneous warning implementing generic method from interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82504">82504</a>
[compiler][1.5] ClassCastException when parsing a CastExpression between an array type and a type variable


<a name="v_531"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 11th January 2005
<br>Project org.eclipse.jdt.core v_531
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_531">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added API <code>ASTParser#createBindings(IJavaElement[],IProgressMonitor)</code> to create the DOM bindings for the given 
     Java elements.</li>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82004">bug 82004</a> required the index version to be incremented. 
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>Merged problem <code>IProblem.UnnecessaryArgumentCast</code> with <code>IProblem.UnnecessaryCast</code> since it provided little additional value,
and was rather perceived as confusing. From now on, only <code>IProblem.UnnecessaryCast</code> is reported.
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82514">82514</a>
[1.5][javadoc] Problem with generics in javadoc
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82382">82382</a>
IMethodBinding#getJavaElement() for method m(T t) in parameterized type Gen&lt;T&gt; is null
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81923">81923</a>
In certain cases generics seens to be applied before autoboxing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82250">82250</a>
[5.0] don't allow duplicate interface bounds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82432">82432</a>
[1.5] VerifyError with Autoboxing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82187">82187</a>
[compiler] [1.5] internal compiler reports bound mismatch
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82159">82159</a>
[compiler][1.5] Eclipse vs. javac: Differences when creating generic inner types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81535">81535</a>
[compiler] compliance 1.5 should work with source 1.4 on 1.5 libraries
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82137">82137</a>
[select] Code resolve doesn't work on static imports [5.0]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82102">82102</a>
Should not compile related methods with different signatures but same erasures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76761">76761</a>
[model] ImportContainer.hasChildren() should not return true
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79334">79334</a>
[classpath] Build path info not updated properly
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82217">82217</a>
[compiler][5.0] switch on enum allows non enum constants
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73081">73081</a>
Inconsistant type cast warning.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81856">81856</a>
quote problems in property files (JDT)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68823">68823</a>
[dom] Ctrl+C command fails when "assert" is enabled
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81824">81824</a>
A generic interface is allowed to be implemented more than once - contrary to Java language specification
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81571">81571</a>
Autoboxing ambiguousy
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81568">81568</a>
[1.5][compiler] Covariant return types fails when an interface extends another interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82216">82216</a>
IVariableBinding: Need to know if it is enum constant or normal var
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78520">78520</a>
[model] IType#getSuperInterfaceTypeSignatures() doesn't include type arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82253">82253</a>
[5.0] Signature#getSimpleName(String) inserts superfluous whitespace characters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78698">78698</a>
[format] Space before ? should default to false
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81063">81063</a>
[model] Clarify the problem requestor paramter in becomeWorkingCopy
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82004">82004</a>
[model][5.0] 3.1M4 type hierarchy for generic interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82141">82141</a>
AST: Missing Bindings on annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82140">82140</a>
AST: Annotation node not in AST
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82136">82136</a>
Interface with own Annotations not accessible when used as a library
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81727">81727</a>
[1.5] Redundant warning of parameterized return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81762">81762</a>
[model] AIOOB in breakpoints view

<a name="v_530"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M5 - 4th January 2005
<br>Project org.eclipse.jdt.core v_530
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_530">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> Added optional compiler diagnosis reporting when boxing/unboxing conversion is performed. Corresponding problem IDs are:
<code>IProblem.BoxingConversion</code> and <code>IProblem.UnboxingConversion</code>.
<pre>
* COMPILER / Reporting Boxing/Unboxing Conversion
*    When enabled, the compiler will issue an error or a warning whenever a boxing or an unboxing
*    conversion is performed.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.autoboxing"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"
</pre>
</li>	 
<li> Renamed unsafe type operation optional problem into unchecked type operation, to better match notion of
"unchecked" warning from JLS 3rd edition.
<pre>
* COMPILER / Reporting Unchecked Type Operation
*    When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
*    invalidates type safety since involving raw types (e.g. invoking #foo(X&lt;String&gt;) with arguments  (X)).
*     - option id:         "org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81556">81556</a>
[search] correct results are missing in java search
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81825">81825</a>
[1.5][compiler] Internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71195">71195</a>
[model] NullPointerException @ org.eclipse.jdt.internal.core.Buffer.removeBufferChangedListener
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79883">79883</a>
[prefs] -pluginCustomization doesn't pick up compiler preferences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81718">81718</a>
[1.5] "Static import never used" warning disappears when variable of same name is declared
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81971">81971</a>
[1.5][compiler] compiler allows use of void type as method arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82053">82053</a>
generic semantics have some problems
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82088">82088</a>
[search][javadoc] Method parameter types references not found in @see/@link tags
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79766">79766</a>
[model] NPE in CancelableNameEnvironment
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81417">81417</a>
[dom] getJavaElement() throws a NPE for WildcardBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81724">81724</a>
[1.5] NullPointerException in FieldBinding.canBeSeenBy when using static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80223">80223</a>
[search] Declaration search doesn't consider visibility to determine overriding methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81084">81084</a>
[1.5][search]Rename field fails on field based on parameterized type with member type parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80890">80890</a>
[search] Strange search engine behaviour
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81376">81376</a>
[search] Clarify effects of R_ERASURE_MATCH for searches other than TYPE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81618">81618</a>
[1.5][compiler] unsafe type operation warning
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78122">78122</a>
[compiler] Detect and visually indicate auto-boxing in Jdk1.5 code
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78592">78592</a>
[1.5][compiler] missing unchecked cast warning
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78591">78591</a>
[1.5][compiler] missing unchecked cast warning


<a name="v_529"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 16th December 2004 - 3.1 MILESTONE 4
<br>Project org.eclipse.jdt.core v_529
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_529">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81258">81258</a>
IMethodBinding#getJavaElement() is null with inferred method parameterization
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80765">80765</a>
[1.5][generics] Invalid class files generated, compiler strange behaviour 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81317">81317</a>
ClasspathTests.java and GenericTypeTest.java could not be read (illegal characters)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81262">81262</a>
[Java 5] Verification error when creating anonymous enum subtypes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80964">80964</a>
[1.5] Annotations with RetentionPolicy.RUNTIME are lost after a rebuild
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80028">80028</a>
Ambiguous method error where javac succeeds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80739">80739</a>
[1.5] Two methods ends up with the same signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81134">81134</a>
[dom] [5.0] NPE when creating AST
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81023">81023</a>
[1.5] Wrong position for class instance creation with type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=81141">81141</a>
CCE in ProblemBinding when using annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80544">80544</a>
[1.5][annot]error on @Override of abstract methods


<a name="v_528"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 14th December 2004
<br>Project org.eclipse.jdt.core v_528
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_528">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80957">80957</a>
NPE using code assist for unresolved type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80960">80960</a>
[dom] NPE in ASTConverter#convert(...)

<a name="v_527"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 14th December 2004
<br>Project org.eclipse.jdt.core v_527
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_527">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80918">80918</a>
[1.5][search] ClassCastException when searching for references to binary type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80914">80914</a>
[1.5][search] SearchPattern R_EQUIVALENT_MATCH matchRule does not work properly
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80910">80910</a>
[javadoc] Invalid missing reference warning on @see or @link tags

<a name="v_526"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 13th December 2004
<br>Project org.eclipse.jdt.core v_526
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_526">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
Initial support for search on annotations has been implemented. Declarations or references to annotation types are now found by search engine.<br>
However, it is not currently able to find annotation member (fields or methods). This should be done for next milestone.
</li>
<li>
SearchPattern now accept two new flags for match rule: R_ERASURE_MATCH and R_EQUIVALENT_MATCH (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79790">79790</a>).<br>
<pre>
	/**
	 * Match rule: The search pattern matches search results as raw types or parameterized types with same erasure.
	 * Example:
	 *	- pattern: List&lt;Exception&gt;
	 *	- match: List&lt;Object&gt;
	 * Can be combined to all other match rules, e.g. {@link #R_CASE_SENSITIVE} | {@link #R_ERASURE_MATCH}
	 * This rule is not activated by default, so raw types or parameterized types with same erasure will not be found
	 * for pattern List&lt;String&gt;,
	 * Note that with this pattern, the match selection will be only on the erasure even for parameterized types.
	 * @since 3.1
	 */
	public static final int R_ERASURE_MATCH = 16;
	/**
	 * Match rule: The search pattern matches search results as raw types or parameterized types with equivalent type parameters.
	 * Example:
	 *	- pattern: List&lt;Exception&gt;
	 *	- match:
	 * 		+ List&lt;? extends Throwable&gt;
	 * 		+ List&lt;? super RuntimeException&gt;
	 * 		+ List&lt;?&gt;
	 * Can be combined to all other match rules, e.g. {@link #R_CASE_SENSITIVE} | {@link #R_EQUIVALENT_MATCH}
	 * This rule is not activated by default, so raw types or equivalent parameterized types will not be found
	 * for pattern List&lt;String&gt;,
	 * This mode is overridden by {@link  #R_ERASURE_MATCH} as erasure matches obviously include equivalent ones.
	 * That means that pattern with rule set to {@link #R_EQUIVALENT_MATCH} | {@link  #R_ERASURE_MATCH}
	 * will return same results than rule only set with {@link  #R_ERASURE_MATCH}.
	 * @since 3.1
	 */
	public static final int R_EQUIVALENT_MATCH = 32;
</pre>
Added new API method to make this flag settable even while creating pattern using a IJavaElement:
<ul>
<li><code>SearchPattern#createPattern(IJavaElement element, int limitTo, int matchRule)</code></li>
</ul>
</li>
<li>
SearchMatch now has a rule field which shows the rule used while reporting the match (initial implementation for bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79866">79866</a>).<br>
Added new API methods to access this field:
<ul>
<li><code>SearchMatch#getRule()</code><br></li>
<li><code>SearchMatch#setRule(int)</code></li>
</ul>
</li>
<li>Added API IType#getFullyQualifiedParameterizedName() that shows the type parameter/arguments if the type is generic/parameterized.</li>
<li>Added support in Java model for annotation types and annotations.</li>
<li>Support for indexing annotation types required the index version to be incremented. 
      Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).</li>
<li>Added compiler support for autoboxing </li>
<li>Code Assist now works for annotations. When performing a completion inside an annotation name,
 proposals are possibles types and annotations types are more relevant than other types</li>
<li>Code Select now works for annotations and annotation methods in correct code.</li>
<li>Recovery now works for annotation type declaration and annotation method declaration</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80338">80338</a>
getReturnType() throws a NullArgumentException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80788">80788</a>
Interface and annotation member types are implicitiely static
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80780">80780</a>
IncompatibleClassChangeError for Annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80714">80714</a>
Strange syntax diagnosis with incorrect annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80699">80699</a>
Code Select does not work for annotations inside class file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79790">79790</a>
[1.5][search] Need to distinguish between raw and restricted search in the case of instantiated types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80672">80672</a>
[1.5] Annotation change does not trigger recompilation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80466">80466</a>
ITypeBinding#getJavaElement() is null for declaration of java.util.List&lt;E&gt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80083">80083</a>
VerifyError on String-Operator += when using generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77430">77430</a>
[1.5] case statements with enum values not correctly supported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80597">80597</a>
[compiler] NPE while reporting array empty dimensions problem
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80126">80126</a>
[assist] CompletionRequestor.setIgnored should allow POTENTIAL_METHOD_DECLARATION
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80602">80602</a>
Javadoc of ASTNode#getStartPosition() contains dangling reference to ASTParser 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80455">80455</a>
[5.0] ITypeBinding.canAssign not aware of type boxing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80579">80579</a>
NPE is ITypeBinding.isCastCompatible
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80328">80328</a>
[annotation] annotation problem type should implements java,lang.annotation.Annotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79953">79953</a>
AST Creation Error while editing Java file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78849">78849</a>
[1.5][compiler] Java 1.5 Boxing and Character?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79641">79641</a>
boolean autoboxing does not work with Object varargs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80384">80384</a>
Cannot decode package signature from CompletionProposal
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79254">79254</a>
autoboxing does not work in combination with downcasting
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80045">80045</a>
NPE in MethodBinding.signature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80378">80378</a>
Javadoc of CompletionProposal#getFlags() needs polish
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80208">80208</a>
[1.5][compiler] NPE trying to resolve single static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79803">79803</a>
[1.5][search] Search for references to type A reports match for type variable A
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79860">79860</a>
[1.5][search] Search doesn't find type reference in type parameter bound

<a name="v_525"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 7th December 2004
<br>Project org.eclipse.jdt.core v_525
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_525">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> Compiler now checks annotation location according to @Target meta-annotation</li>
<li> Compiler now checks method overriding according to @Override annotation</li>
<!--
<li> Added compiler support to flag inconsistent null checks (using interprocedural flow analysis)
<pre>
* COMPILER / Reporting Inconsistent null Checks
*    When enabled, the compiler will issue an error or a warning whenever assumption were made on a variable
*    with respect to holding null/non-null values, but the assumption is not followed in a consistent manner.
*    Situations include:
*         - if variable was assumed to be null and further used to access field or methods
*         - if variable was assumed to be null or non-null and further tested for null cases.
*         
*     - option id:         "org.eclipse.jdt.core.compiler.problem.inconsistentNullCheck"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
-->
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79891">79891</a>
[GENERICS] Array of Inner Class creation works on eclipse, but fails to compile with sun jdk
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79809">79809</a>
[1.5][dom][javadoc] Need better support for type parameter Javadoc tags
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79904">79904</a>
[1.5][dom][javadoc] TagElement range not complete for type parameter tags
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80144">80144</a>
[1.5] Mutually-recursive type bounds interfere with inheritance of generic type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76751">76751</a>
[1.5][annot] Can't use annotation classes as argument to generic methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80014">80014</a>
@Retention(RetentionPolicy.RUNTIME) is ignored for annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80114">80114</a>
[1.5][Regression] Annotation type cannot have constructors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80021">80021</a>
[1.5] CCE in VariableBinding.getJavaElement()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80041">80041</a>
IVariableBinding#isEqualTo(..) doesn't tell parameters from different methods apart
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77463">77463</a>
[1.5][annot] Wrong error marker text for type annotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79967">79967</a>
NPE in WildcardBinding.signature with Mark Occurrences in Collections.class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79974">79974</a>
[1.5] Wrong javadoc for TypeDeclarationStatement 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79795">79795</a>
Code formatter doesn't handle enums well.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79673">79673</a>
[1.5] Wrong method binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79797">79797</a>
[1.5] Inconsistent classfile - moving code around
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79847">79847</a>
[1.5][annot] Array type cannot have two or more dimensions
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79844">79844</a>
[1.5][annot] when int value can be contained in a short, the cast is not required
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79848">79848</a>
[1.5][annot] Array of java.lang.Class is a legal value for the type of an annotation type member declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79779">79779</a>
Code Formatter fails with static imports
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79668">79668</a>
[1.5][annot] implicit wrapping in array type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78915">78915</a>
[1.5][compiler] enum cannot be explicitly abstract
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78916">78916</a>
[1.5][compiler] abstract methods in an enum declaration must be implemented for each constant
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79690">79690</a>
Find declaring node doesn't work for type variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79775">79775</a>
[dom]ClassCastException inside ASTConverter when opening a java file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79752">79752</a>
Need access to type binding of anonymous enumerations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79772">79772</a>
Internal compiler error with I20041123/24/30
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79136">79136</a>
API clarification for *Binding#getErasure(): why not a "general back-link"?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76318">76318</a>
[tests] Cannot run ASTModelBridgeTests if workspace path segment count is 1
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78914">78914</a>
[1.5][compiler] super() cannot be called in the constructor of an enum declaration

<a name="v_524"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 30th November 2004
<br>Project org.eclipse.jdt.core v_524
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_524">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Support for generic types search has been added to SearchEngine (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75641">75641</a>).<br>
User can now search for declaration and/or references to generic types or parameterized types (like <code>public class List&lt;T&gt; {}</code> or <code>List&lt;String&gt;</code> for example).
This search can of course be done either selecting a JavaElement (see following point) or using Java Search dialog.
</li>
<li>Support for generic types and generic methods selection has been added inside CodeSelect.
When the result is a parameterized type reference, the returned JavaElement is a 
<code>ParameterizedSourceType</code> or <code>ParameterizedBinaryType</code>.
When the result is a parameterized method invocation, the returned JavaElement is a 
<code>ParameterizedSourceMethod</code> or <code>ParameterizedBinaryMethod</code>.
When the result is a field access to a generic type's field, the returned JavaElement is a 
<code>ParameterizedSourceField</code> or <code>ParameterizedBinaryField</code>.
</li>
<li>The internal Java model cache now adapts to the number of elements in the workspace. For example if a project
      has 1000 package fragment roots, the space limit of the cache of roots will increase to 1000. This size is reset to
      its default when the project is closed.
</li>
<li>Added the following compatibility rules APIs:
     <ul>
     <li><code>ITypeBinding#isAssignmentCompatible(ITypeBinding)</code></li>
     <li><code>ITypeBinding#isCastCompatible(ITypeBinding)</code></li>
     <li><code>ITypeBinding#isSubTypeCompatible(ITypeBinding)</code></li>
     <li><code>IMethodBinding#overrides(IMethodBinding)</code></li>
     </ul>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79349">79349</a>
[1.5] Annotation with default value
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79756">79756</a>
Erroneous compile error "The local variable may not have been initialized"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79635">79635</a>
NPE when asking an IMethodBinding whether it overrides itself
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79667">79667</a>
[1.5][annot] value in member pair value must be a constant expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79666">79666</a>
[1.5][annot] Default value of annotation type member declaration must be assignment compatible with return type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79663">79663</a>
[1.5][annot] Modifiers for field declaration must be public  in an annotation type declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79665">79665</a>
[1.5][annot] Field declarations inside annotation type declaration must be constant
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79512">79512</a>
[1.5] Extract Method must not generate return type with type variable [refactoring][1.5]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79609">79609</a>
ITypeBinding#isEqualTo(..) thinks independent method type parameters are equal
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79610">79610</a>
IVariableBinding#getJavaElement() returns null for local variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75641">75641</a>
[1.5][search] Types search does not work with generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79612">79612</a>
ClassCastException on referenceTypeBinding.isEqualTo(primitiveTypeBinding)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79545">79545</a>
Eclipse vs Sun JDK: different class files from the same source code
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78293">78293</a>
[1.5][compiler] Should flag implementing twice generic interface with different arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79544">79544</a>
ITypeBinding#isEqualTo(..) does not compare type arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79570">79570</a>
[1.5][DOM] v4 type binding should not be parameterized
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78087">78087</a>
[dom] TypeBinding#getJavaElement() throws IllegalArgumentException for parameterized or raw reference to binary type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78183">78183</a>
TypeBinding#getQualifiedName() does not honor Javadocs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79109">79109</a>
[1.5][DOM] AnnotationTypeMemberDeclaration.resolveBinding() might return a IMethodBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79395">79395</a>
IllegalArgumentException in CompilationUnitResolver.parse (line 323)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77283">77283</a>
Incremental and full builds produce different problem markers for same duplicate type error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79263">79263</a>
ClassCastException in SourceElementParser
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79460">79460</a>
IMethodBinding of non-generic method says isRawMethod()==true
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79390">79390</a>
[1.5][compiler] ClassCastException creating a generic local class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77806">77806</a>
[1.5][dom] SimpleType AST node of List in List&lt;String&gt; has no type binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79362">79362</a>
IllegalArgumentException during "Java AST creation"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75785">75785</a>
Missing binding on non-visible type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79163">79163</a>
[compiler] Dependency on indirectly referenced types not correctly computed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77272">77272</a>
[builder] Delta compilation fails to notice errors when removing an interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79271">79271</a>
ITypeBinding#isEqualTo(..) returns true when comparing ArrayList&lt;Integer&gt; to its erasure
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77388">77388</a>
[compiler] Reference to constructor includes space after closing parenthesis
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78931">78931</a>
[select] cannot select qualified type name without the qualified package name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79267">79267</a>
[search] Refactoring of static generic member fails partially
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72258">72258</a>
[model] Should be able to dynamicaly set the size of Java model cache

<a name="v_523"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 23rd November 2004
<br>Project org.eclipse.jdt.core v_523
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_523">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Compiler is now able to parse 1.5 syntax in Javadoc comments (see bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70891">70891</a>
and <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70892">70892</a>).<br>
Note: these changes only apply to <a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/javadoc.html#@param">@param</a> and
<a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/javadoc.html#{@value}">{@value}</a> tags.
</li>
<li>Batch AST creation API was finalized. See <code>ASTParser#createASTs(ICompilationUnit[],String[],ASTRequestor,IProgressMonitor)</code>
     and <code>ASTRequestor</code>.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79110">79110</a>
[1.5] Missing attribute for local and anonymous classes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78057">78057</a>
[dom] Can IBinding#getKey() return null?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78757">78757</a>
MethodBinding.getJavaElement() returns null
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78930">78930</a>
ITypeBinding#getJavaElement() throws NPE for type variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73675">73675</a>
[dom] Need AST creation pipeline
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73971">73971</a>
[1.5] Ambiguous method error with overloaded parameterized methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78581">78581</a>
[search] NPE while searching
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79108">79108</a>
[1.5][DOM] enumConstantDeclaration.resolveBinding() always returns null
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77645">77645</a>
[1.5][dom] navigate from local var binding to declaring method binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79098">79098</a>
[dom] [1.5] EnhancedForStatement#resolveBinding() is superfluous
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77562">77562</a>
[1.5] overriding methods with more specific generic return types causes compile errors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79091">79091</a>
[compiler] Should report invalid type only on the name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77093">77093</a>
[search] No references found to method with member type argument
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77184">77184</a>
[1.5][select] Code select does not select enum declarations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78801">78801</a>
[assist] NPE attempting to code assist for parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78128">78128</a>
Error deleting project with jar file referenced by other project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78275">78275</a>
[recovery] NPE in GoToNextPreviousMemberAction with syntax error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70891">70891</a>
[1.5][javadoc] Compiler should accept new 1.5 syntax for @param
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78858">78858</a>
[1.5] Internal compiler error: java.lang.NullPointerException at ParameterizedTypeBinding.getMethods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78905">78905</a>
[1.5][compiler] Wrong hex decimal floating point literal is not rejected
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77630">77630</a>
[compiler] no error when importing package inside static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78075">78075</a>
normal and static import of the same class doesn't work correctly
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78056">78056</a>
[1.5] static import of a static member of a non static member type must be allowed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77955">77955</a>
[1.5] member classes of super class are not allowed inside static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78082">78082</a>
[1.5][search] FieldReferenceMatch in static import should not include qualifier
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78714">78714</a>
"Convert local to field" should know about prefixes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75814">75814</a>
Inconsistent results when adding a breakpoint to class file with src attached
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78190">78190</a>
[dom] Add ast creation performance tests
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78189">78189</a>
[model] Add hierarchy performance tests
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78188">78188</a>
[search] Add search performance test
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78740">78740</a>
IDOMType.getFlags() fails to represent interface flags correctly.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78735">78735</a>
IBinding#isEqualTo(..) fails with a field that hides another
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78232">78232</a>
[1.5][generics]Erroneous warning implementing generic method from interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78140">78140</a>
[1.5][compiler] Unchecked conversion warning when overriding a generic method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77861">77861</a>
[1.5] Illegal class file generated with duplicate methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77785">77785</a>
[1.5][compiler] Generics: missing name clash error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77496">77496</a>
[1.5] compiler doesn't detect illegal method overriding due to non-matching return type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74936">74936</a>
[1.5] Compiler does not warn for missing implementation of Map.putAll abstract method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74594">74594</a>
[1.5] ClassFormat error when running this example


<a name="v_522"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 16th November 2004
<br>Project org.eclipse.jdt.core v_522
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_522">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>In 1.5 compliant mode, T[].clone() invocations are considered to be of type T[], as opposed to Object
previously. </li>

<li>New ComletionProposal kind <code>METHOD_NAME_REFERENCE</code>.
This completion is a reference to a method name.
<br>This kind of completion might occur in a context like
<code>"import java.lang.Math.co^"</code> and complete it to
<code>"import java.lang.Math.cos;"</code>.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77808">77808</a>
[1.5][dom] type bindings for raw List and List&lt;E&gt; have same key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78704">78704</a>
[1.5][compiler]Internal compiler error in org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78663">78663</a>
[1.5][compiler] Generics, assign error with equal types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78649">78649</a>
[1.5] ITypeBinding.isUpperBound wrong
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77398">77398</a>
[1.5] Organize imports does not honor enum types [code manipulation]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78464">78464</a>
[1.5][compiler] bad args_size attribute value for Enum constructor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78104">78104</a>
[1.5][compiler] java.lang.Object.clone() implicitely needs an implicit cast to receiver type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78321">78321</a>
Problem with Enum.values in static initializer.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78310">78310</a>
[dom] [1.5] improve tests for IBindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78015">78015</a>
[1.5][compiler] AbstractMethodError
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78266">78266</a>
[dom] [1.5] API of ITypeBinding: no isGenericType() query
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64310">64310</a>
[1.5][model] Signature implementation does not fully support generic parameterized type names
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77968">77968</a>
[compiler] ArrayIndexOutOfBoundsException from parser when using Java editor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77573">77573</a>
[1.5][assist] Code assist does not propose static fields
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78008">78008</a>
[1.5][compiler] java.lang.VerifyError on shortcut if-else
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78018">78018</a>
[1.5][javadoc] Missing Javadoc comments Problem for enums
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73784">73784</a>
[search] java search internal error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77644">77644</a>
[dom] AST node extended positions may be wrong while moving
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78160">78160</a>
Invalid classfile for problem type

<a name="v_521"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M4 - 9th November 2004
<br>Project org.eclipse.jdt.core v_521
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_521">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li><code>ICompletionRequestor</code> was deprecated. Use <code>CompletionRequestor</code> instead.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77359">77359</a>
[1.5][dom] Pull up of type declaration facilities
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76132">76132</a>
[1.5][wildcards] Bound mismatch incorrectly diagnosed with type variable quantification
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78139">78139</a>
[1.5][compiler] spurious type mismatch problems with generics.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77602">77602</a>
[javadoc] "Only consider members as visible as" is does not work for syntax error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77510">77510</a>
[javadoc] compiler wrongly report deprecation when option "process javadoc comments" is not set
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78027">78027</a>
[1.5] Generics, bound mismatch
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78089">78089</a>
[1.5] [compiler] Annotations are not accepted inside interfaces
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74119">74119</a>
[1.5] Unexpected compile error with bound types with Eclipse 3.1M1.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=78049">78049</a>
[1.5][compiler] Missed error for generic array creation.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73970">73970</a>
[1.5][dom] overloaded parameterized methods have same method binding key
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77422">77422</a>
[1.5][compiler] ArrayIndexOutOfBoundsException with vararg constructor of generic superclass

<a name="v_520"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 4th November 2004 - 3.1 MILESTONE 3
<br>Project org.eclipse.jdt.core v_520
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_520">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77244">77244</a>
[1.5][enum] final enum class crashes the compiler

<a name="v_519"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 4th November 2004
<br>Project org.eclipse.jdt.core v_519
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_519">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76780">76780</a>
[model] return type not recognized correctly on some generic methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77772">77772</a>
[1.5] some enums failing to parse; internal error dialog pops up while typin
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77538">77538</a>
[dom] AST rewrite fails to generate the modified code


<a name="v_518"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 2nd November 2004
<br>Project org.eclipse.jdt.core v_518
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_518">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added API that allows to batch the creation of DOM ASTs: <code>ASTParser#createASTs(ICompilationUnit[] compilationUnits, String[] bindingKeys, ASTRequestor requestor, IProgressMonitor monitor)</code>.
      Note this API is still under development and subject to change without notice.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70056">70056</a>
[1.5] Please support varargs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77327">77327</a>
[1.5] Contravariance of generic Type raises Error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71612">71612</a>
[1.5] ClassFormatError when running simple example
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76434">76434</a>
[1.5]  Generics, assign error despite equal types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76720">76720</a>
[1.5] Implementing generic bounded subinterface causes Bound mismatch error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76219">76219</a>
[1.5][wildcards] Not-necessarily-unbounded wildcards in method formal parameter types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76601">76601</a>
[1.5] parameterized types: eclipse incorrectly reports errors

<a name="v_517"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 2nd November 2004
<br>Project org.eclipse.jdt.core v_517
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_517">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Search engine is now able to find declarations and references to varargs methods. This required the index version to be incremented.
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>Default severity for access restriction violations got raised to "warning".
<pre>
* COMPILER / Reporting Forbidden Reference to Type with Restricted Access
*    When enabled, the compiler will issue an error or a warning when referring to a type with restricted access, as defined according
*    to the access restriction specifications.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.forbiddenReference"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77273">77273</a>
[model] ArrayIndexOutOfBoundsException when creating type hierarchy with duplicate types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76359">76359</a>
[1.5] Unsafe operation not reported while using member type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77235">77235</a>
ArrayIndexOutOfBounds in Parser in reconciler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68710">68710</a>
Open Declaration opens wrong target
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77249">77249</a>
Annotation on class cancels "public" modifier
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77212">77212</a>
[1.5][enum] declared enum type .valueOf(String) throws ArrayIndexOutOfBoundsException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75400">75400</a>
[1.5] Wrong type mismatch error reported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75156">75156</a>
[1.5] wrong diagnosis for method override
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70695">70695</a>
[1.5] warning for easily detectible incorrect bounds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72643">72643</a>
[1.5] parser doesn't recognize when generic methods aren't used
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77051">77051</a>
[1.5] Type mismatch involving super
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77175">77175</a>
[1.5] DefaultBindingResolver#resolveType(EnumDeclaration) always returns null
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75328">75328</a>
[1.5][wildcards] Bound Mismatch for ? type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72886">72886</a>
[search] references to endVisit(MethodInvocation) reports refs to endVisit(SuperMethodInvocation)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75329">75329</a>
[classpath] Restrict visibility of Java Project content
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74285">74285</a>
Code assist doesn't  suggest parameter names for methods of generic types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74588">74588</a>
[1.5] missing enclosing instance is wrongly reported when accessing an enclosing instance variable.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76313">76313</a>
[1.5] Error while using parametrized static factory
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77151">77151</a>
[1.5] Enum constant cannot be qualified when used as a case label
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77118">77118</a>
[1.5] Covariance: cannot override method returning Object with method returning an interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=77052">77052</a>
[1.5] Type mismatch on embedded type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76620">76620</a>
Selection bug (Open Declaration)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76874">76874</a>
[1.5] Out of memory reconciling some invalid enum source
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76682">76682</a>
Certain code prevents saving and copy operations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74669">74669</a>
[1.5] NullPointerException during save and compile
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74032">74032</a>
[1.5] Generics: bad method referenced when a type variable extends two types

<a name="v_516"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 26th October 2004
<br>Project org.eclipse.jdt.core v_516
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_516">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Support for search on enum has been implemented. Declarations or references to enum type, fields, constructors and methods are correctly found by search engine.
</li>
<li>Support to compute type hierarchies on enum required the index version to be incremented.
     Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>Added support inside CompletionEngine to not propose completion when an access restriction is violated.
Currently access restrictions are applied only to top level types.
</li>
<li>Added code assist option to not propose completion when an access restriction is violated.
<pre>
	 * CODEASSIST / Activate Access Restrictions Sensitive Completion
	 *    When active, completion doesn't show that is access restricted.
	 *     - option id:         "org.eclipse.jdt.core.codeComplete.restrictionsCheck"
	 *     - possible values:   { "enabled", "disabled" }
	 *     - default:           "disabled"
</pre>
</li>
<li>Added first-cut of enumeration support into compiler. Requires some more work to properly
diagnose error situations, and be leveraged in various JDT/Core functionalities.
</li>
<li>Improved problem descriptions to show ellipsis in varargs method signatures
</li>
<li>Added <code>org.eclipse.jdt.core.util.ClassFileBytesDisassembler#SYSTEM</code> field to support an extra-detailed output from the
disassembler. It can show constant pool contents.
</li>
<li>In order to fix bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76440">76440</a>, two APIs on <code>org.eclipse.jdt.core.Signature</code> have been added to handle var args in the signature decoding.
<ul>
<li><code>Signature#toCharArray(char[],char[],char[][],boolean,boolean,boolean)</code>
</li>
<li><code>Signature#toString(String,String,String[],boolean,boolean,boolean)</code>
</li>
</ul>
</li>
<li>Added compiler option to diagnose need for cast of varargs argument. Matching problem IDs are 
<code>IProblem.MethodVarargsArgumentNeedCast</code> &amp; <code>IProblem.ConstructorVarargsArgumentNeedCast</code>
<pre>
* COMPILER / Reporting Varargs Argument Needing a Cast in Method/Constructor Invocation
*    When enabled, the compiler will issue an error or a warning whenever a varargs arguments should be cast
*    when passed to a method/constructor invocation. (e.g. Class.getMethod(String name, Class ... args )  
*    invoked with arguments ("foo", null)).
*     - option id:         "org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74851">74851</a>
[1.5] enum errors in 3.1M1
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75134">75134</a>
[1.5] Type mismatch error generated
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76880">76880</a>
Unable to resolve enum type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76766">76766</a>
[1.5] Option to format empty enum declaration or empty enum constant body has no effect
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76642">76642</a>
Inner Enum Declarations not formatted
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76093">76093</a>
Varargs support should define a subtype of ArrayTypeReference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76472">76472</a>
Duplicate entries in the constant pool for some methods
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76440">76440</a>
[1.5] Disassembler doesn't render 1.5 constructs correctly
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76524">76524</a>
need a isVarargs() method on IMethodBinding
	 
<a name="v_515"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 19th October 2004
<br>Project org.eclipse.jdt.core v_515
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_515">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Code assist use static imports to propose completions.
</li>
<li>2 new Javadoc compiler options have been added (see bugs <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53977">53977</a>
and <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75701">75701</a>).<br>
While reporting problems on invalid Javadoc tags, user can now decide not to report deprecation and/or visibility warnings on references used in @see, @link or @values tags.
<br>
Here's the description of these new options:
<pre>
	 * COMPILER / Reporting Invalid Javadoc Tags with Deprecated References
	 *    Specify whether the compiler will report deprecated references used in Javadoc tags.
	 *    Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility".
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef"
	 *     - possible values:   { "enabled", "disabled" }
	 *     - default:           "enabled"
	 * 
	 * COMPILER / Reporting Invalid Javadoc Tags with Not Visible References
	 *    Specify whether the compiler will report non-visible references used in Javadoc tags.
	 *    Note that this diagnosis can be enabled based on the visibility of the construct associated with the Javadoc;
	 *    also see the setting "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility".
	 *     - option id:         "org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef"
	 *     - possible values:   { "enabled", "disabled" }
	 *     - default:           "enabled"
	 * 
</pre>
</li>
<li>Changed build state format to record access restrictions. As a consequence, a full rebuild will be
required when reusing existing workspaces.
</li>
<li>Added tracing (org.eclipse.jdt.core/debug/resolution) to show the number of packages, roots and working copies used during name resolution.</li>
<li>New API <code>org.eclipse.jdt.core.dom.EnumDeclaration#enumConstants()</code>. The enum constants are now in a separate list
from the body declarations. The  <code>org.eclipse.jdt.core.dom.EnumDeclaration#getEnumConstants()</code> method has been deprecated and
will be removed after M3. See bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76190">76190</a> for further details.
</li>
<li>New requestor API <code>CompletionRequestor</code> is implemented inside code assist engine.
</li>
<li>Added missing API to <code>IType</code> for new completion requestor support:
<ul>
  <li><code>IType#codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor,WorkingCopyOwner)</code></li>
  <li><code>IType#codeComplete(char[],int,int,char[][],char[][],int[],boolean,CompletionRequestor)</code></li>
</ul>
</li>
<li>Added missing API to <code>IEvaluationContext</code> for new completion requestor support:
<ul>
  <li><code>IEvaluationContext#codeComplete(String,int,CompletionRequestor, WorkingCopyOwner)</code></li>
  <li><code>IEvaluationContext#codeComplete(String,int,CompletionRequestor)</code></li>
</ul>
</li>
<li>Added new API inside <code>Signature</code> to extract package name part or type name part of a type signature:
<ul>
  <li><code>Signature#getSignatureQualifier(char[])</code></li>
  <li><code>Signature#getSignatureQualifier(String)</code></li>
  <li><code>Signature#getSignatureSimpleName(char[])</code></li>
  <li><code>Signature#getSignatureSimpleName(String)</code></li>
</ul>
</li>
<li>Added support in Java model for varargs methods:
     <ul>
     <li><code>Flags.isVarargs(method.getFlags())</code> now returns whether the method is a varargs method.</li>
     <li>Operations that resolve (like reconcile, search, etc.) now convert varargs source methods into varargs MethodDeclarations.</li>
     </ul>
</li>
<li> Introduced access restrictions so as to better enforce API contracts across components.
<p>
<i>Problem:</i> Libraries are usually packaged to contain both API for compile-time and implementation for runtime;
and thus expose a superset of the API contract to client programs, allowing them to make forbidden
assumptions on internals (a typical restriction for Eclipse developpers is to not use internal classes 
from prerequisite plug-ins). 
One solution for solving this issue is to separate the API from its implementation into 2 distinct libraries 
(compile-time/runtime) and then use the classpath rules to only include the API portion on the classpath
for compiling. However, this usually proves to be unrealistic, since the API is often mixed with some implementation
aspects (not officially part of the API) which are carrying references to its internals 
(supertype hierarchy, field or method signatures). When it happens, then the compiler needs the implementation
also to be on the classpath in order to resolve all signatures appropriately; which goes back to the original
problem of exposing too much to unaware clients.
<p>
Instead, we allowed classpath rules to be associated with some import restrictions so as to select portions 
of prerequisite projects or libraries which are legal to use inside this project. 
Access restrictions are expressed as inclusion/exclusion rules on classpath entries (using Ant fileset notation
for discriminating on package and/or file names, e.g. <code>excluding='**/internal/'</code> would exclude 
all types defined any <code>internal</code> package),
and can be associated to project, library, classpath variable or classpath container classpath entries. 
Note that restrictions are automatically combined along a classpath chain. For instance, if a classpath container entry is
associated with some restrictions, then when resolved to a set of entries, these will automatically inherit the
container restrictions (and could still provide further custom restrictions on a per entry basis).
<p>
When a forbidden reference to a restricted type is detected, the compiler will issue a problem which severity
can be controlled by JavaCore preference "org.eclipse.jdt.core.compiler.problem.forbiddenReference". 
Corresponding problem marker ID is <code>IProblem.ForbiddenReference</code>.
<pre>
* COMPILER / Reporting Forbidden Reference to Type with Restricted Access
*    When enabled, the compiler will issue an error or a warning when referring to a type with restricted access, as defined according
*    to the access restriction specifications.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.forbiddenReference"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"
</pre>

<p>
In order to challenge this new functionality before leveraged in UI or PDE, Eclipse developpers need to perform
the following two actions:
<ol>
<li> edit some .classpath file to exclude all types located in "**/internal/" packages from prerequisites;
i.e. replace line
<pre>
	&lt;classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/&gt;
</pre>
with
<pre>
	&lt;classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins" excluding="**/internal/"/&gt;
</pre>
</li>
<li> enable compiler warning for forbidden references, i.e. add the following line to the workspace 
default preferences located in: <code>&lt;workspace&gt;\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.jdt.core.prefs</code>
<pre>
	org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
</pre>
Note: alternatively, it could be specified on a per project basis, by adding line to <code>&lt;project&gt;/.settings/org.eclipse.jdt.core.prefs</code>.
</li>
</ol>
</li>
<li>Static imports are now supported:
<pre>
<b><font color="#0000ff">import static</font></b> <i><font color="#A0A0A0">type</font></i>.*;
<b><font color="#0000ff">import static</font></b> <i><font color="#A0A0A0">type</font></i>.<i><font color="#A0A0A0">identifier</font></i>;
</pre>
Java Search is also able to find referenced type, field and/or member in static imports but required the index version to be incremented.<br>
Indexes will be automatically regenerated upon subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76324">76324</a>
[Javadoc] Wrongly reports invalid link format in @see and @link
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74369">74369</a>
[Javadoc] incorrect javadoc in local class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75701">75701</a>
[Javadoc] References in Javadoc to deprecated members
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53977">53977</a>
[DCR] [Javadoc] Add a Javadoc option not to report errors on non-visible references
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76360">76360</a>
[1.5] NPE when using static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76174">76174</a>
[1.5] missing error when using static import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76159">76159</a>
Missing type in hierarchy
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76328">76328</a>
Using latest, NPE in codeassist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66296">66296</a>
Slow closing editor after startup
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76277">76277</a>
IllegalArgumentException: Invalid string literal : &gt;("i" + "ib2")&lt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76190">76190</a>
DCR AST: EnumDeclaration: Separate field and body statement lists
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76244">76244</a>
[1.5] No error on invalid static import declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76181">76181</a>
Formatter fails on EnumDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74776">74776</a>
[Search] Wrong search results for almost identical method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=29865">29865</a>
Source visibility in project dependency
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76181">76181</a>
Formatter fails on EnumDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76100">76100</a>
AST: Javadoc node not available on AnnotationTypeDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76103">76103</a>
[1.5] Inner AnnotationTypeDeclaration not parsed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76027">76027</a>
Optimization of code assist in debugger
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75090">75090</a>
source positions calculated wrongly


<a name="v_514"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 12th October 2004
<br>Project org.eclipse.jdt.core v_514
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_514">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Type search works with generic (only for string pattern, see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75641#c4">75641</a>).<br>
For example, user can enter <i><code>List&lt;String&gt;</code></i> in Java Search text and search for type references.<br>
Match(es) will be found if this parameterized type is used in the search scope.<br>
Note that some API changes still need to be done to make generic type search work while selecting a parameterized type from Java editor.
</li>
<li>Field search works with generic (see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73277">73277</a>).<br>
For example, user can search for references to a field declared as <pre>List&lt;String&gt; ls;</pre>
Match(es) will be found if this field is used in the search scope.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75649">75649</a>
[1.5] completion inside a wildcard does not work
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52379">52379</a>
JavaElement.getElementInfo no longer works
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74753">74753</a>
[1.5] codeassist failing on type parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73277">73277</a>
[1.5][Search] Fields search does not work with generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73671">73671</a>
[1.5] Signature.getTypeArguments should also tolerate normal types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73078">73078</a>
ISourceManipulation.delete() tries to run in WorkspaceRoot scheduling rule
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75561">75561</a>
Rename package results in I/O exception
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75644">75644</a>
Array index out of bounds doing code assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74286">74286</a>
IllegalArgumentException during codeselect
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75720">75720</a>
[1.5] Formatter cannot format code that contains varargs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75112">75112</a>
[Search] Cannot find reference to a member type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75632">75632</a>
Infinite loop in DefaultCommentMapper#storeLeadingComments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75658">75658</a>
[1.5] SourceElementParser do not compute correctly bounds of type parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75488">75488</a>
Incorrect code formatting
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70602">70602</a>
Why is equals(..) method of IBindings not implemented?

<a name="v_513"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 5th October 2004
<br>Project org.eclipse.jdt.core v_513
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_513">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>The batch compiler now support 5 as a valid version number for -target and -source options.
5 is equivalent to 1.5.</li>
<li>Added support for static imports. Can now import all static members of a type, such as <code>java.lang.Math</code>.</li>
<li>Added new API <code>IBinding#getJavaElement()</code> to get the Java element corresponding to a 
     <code>org.eclipse.jdt.core.dom.IBinding</code>.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75466">75466</a>
[1.5] IAE in JavaElement.exists() for Collection&lt;E&gt;#containsAll(Collection&lt;?&gt;)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75455">75455</a>
[1.5] IAE on Content Assist for variable of type List&lt;? extends Number&gt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75489">75489</a>
Batch compiler should support -target 5 or -source 5
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73963">73963</a>
[1.5] Wrong errors in widening reference conversion to parameterized class type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=75221">75221</a>
Failure in test for build I200409281200 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74126">74126</a>
Compiler should support new hexadecimal floating-point literals

<a name="v_512"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M3 - 28th September 2004
<br>Project org.eclipse.jdt.core v_512
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_512">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74761">74761</a>
[1.5] Invalid compiler binding for qualified raw type reference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68927">68927</a>
'non-static access to static member' problem not reported for super field access
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74938">74938</a>
Syntax error for annotation in 1.4 has unknown source range

<a name="v_511"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 24th September 2004 - 3.1 MILESTONE 2
<br>Project org.eclipse.jdt.core v_511
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_511">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74934">74934</a>
ArrayIndexOutOfBoundsException with float literal

<a name="v_510"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 23rd September 2004
<br>Project org.eclipse.jdt.core v_510
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_510">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Support for hexadecimal floating-point literals has been added. This is available in 1.5 mode only.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72583">72583</a>
[1.5] NPE in Scope.minimalErasedCandidate
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74096">74096</a>
[1.5] visibility check ignores type bounds?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74592">74592</a>
[1.5] Invalid cycle diagnosis
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74420">74420</a>
[1.5] Unexpected "Illegal forward reference to type parameter T"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74519">74519</a>
Can declare @interface in 1.4
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74544">74544</a>
[1.5] Invalid compiler binding for parameterized qualified type reference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74514">74514</a>
NPE in AST creation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74014">74014</a>
prefix path for source attachements - automatic detection does not seem to work 

<a name="v_509"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 21st September 2004
<br>Project org.eclipse.jdt.core v_509
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_509">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74355">74355</a>
-source 1.4 and -1.5 leads to an error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74320">74320</a>
[1.5] Unused private member diagnosis fooled by generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74289">74289</a>
AIOOB Exception in WeakHashSet.cleanupGarbageCollectedValues 


<a name="v_508"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 20th September 2004
<br>Project org.eclipse.jdt.core v_508
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_508">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73740">73740</a>
Diagnosis for serialization should not render j2me development impossible
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=74244">74244</a>
[1.5] boolean.class == Boolean.TYPE should be true
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73995">73995</a>
[Javadoc] Wrong warning for missing return type description for @return {@inheritDoc}
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72644">72644</a>
[1.5] Problems with generic maps
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73356">73356</a>
Index not updated after adding a source folder 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73961">73961</a>
IPackageBinding#getName() should return "" for default package
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73933">73933</a>
Clarifications of the DOM/AST API for VariableDeclarationExpression and VariableDeclarationStatement
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73891">73891</a>
Should not use String#intern() 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73837">73837</a>
Java 1.5 generics problem (Eclipse 3.1M1)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73336">73336</a>
[1.5][search] Search Engine does not find type references of actual generic type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73762">73762</a>
Line ends not reset when setting a different source 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73884">73884</a>
[1.5] Unexpected error for class implementing generic interface
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73896">73896</a>
StackOverflowError resolving bindings of java.util.Collections
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73678">73678</a>
[1.5] NPE when saving an editor which contains genric type

<a name="v_507"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 14th September 2004
<br>Project org.eclipse.jdt.core v_507
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_507">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72683">72683</a>
Slow code assist in Display view 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73696">73696</a>
searching only works for IJavaSearchConstants.TYPE, but not CLASS or INTERFACE
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73479">73479</a>
[Javadoc] Improve error message for invalid link in @see tags
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73551">73551</a>
[Search] NPE while searching package declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73112">73112</a>
[Search] SearchEngine doesn't find all fields multiple field declarations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71267">71267</a>
[Search][Javadoc] SearchMatch in class javadoc reported with element of type IImportDeclaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73348">73348</a>
[Javadoc] Missing description for return tag is not always warned
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73573">73573</a>
[1.5] - CodeAssist - ArrayIndexOutOfBoundsException with genric type completion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67976">67976</a>
Exceptions in log when Opening type while checking out 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72684">72684</a>
MemberElementInfo#name should be removed 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73530">73530</a>
[1.5] VerifyError using generics and direct array access
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73286">73286</a>
NPE on save
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73497 ">73497</a>
Problem methods don't point to the right position in source
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73561">73561</a>
AST: Enum constant source range too small
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71279">71279</a>
[Search] NPE in TypeReferenceLocator when moving CU with unresolved type reference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67981">67981</a>
Add Java Exception Breakpoint is broken 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72859">72859</a>
NPE in ASTConverter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72214">72214</a>
[Prefs] IllegalStateException when importing preferences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62472">62472</a>
[1.5] Suspicious syntax errors for missing semicolon
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72889">72889</a>
same key different types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68555">68555</a>
SearchEngine errors when package and class named the same
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72891">72891</a>
missing type parameters for IMethodBindings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72882">72882</a>
ITypeBinding.getQualifiedName for type variables wrong
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73371">73371</a>
[1.5] Code formatter doesn't seem to accept enum declarations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73048">73048</a>
Stackoverflow on AST creation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69002">69002</a>
CompilationUnit#destroy contains e.printStackTrace 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70787">70787</a>
Compilation warning for IndexManager 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73245">73245</a>
Error source range of 'class cannot be superinterface'

<a name="v_506"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 7th September 2004
<br>Project org.eclipse.jdt.core v_506
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_506">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li><code>ITypeParameter</code>s are no longer children of their <code>IType</code> or <code>IMethod</code>.
     To get the type parameters of a type or a method use <code>IType/IMethod#getTypeParameters()</code>.</li>
<li>The temporary field <code>TypeParameter#ENABLED</code> has been removed.</li>
<li>Code select (<code>ICodeAssist#codeSelect()</code>) return a <code>ITypeParameter</code> when a type
    parameter is selected.</li>
<li>Added optional compiler diagnosis for usage of 'enum' as an identifier.
Corresponding problem ID is IProblem.UseEnumAsAnIdentifier.
</li>
<li>
<pre>
* COMPILER / Reporting Usage of 'enum' Identifier
*    When enabled, the compiler will issue an error or a warning whenever 'enum' is 
*    used as an identifier (reserved keyword in 1.5)
*     - option id:         "org.eclipse.jdt.core.compiler.problem.enumIdentifier"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66533">66533</a>
[1.5] add a warning for 'enum' used as identifier
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70892">70892</a>
[1.5][Javadoc] Compiler should parse reference for inline tag @value
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=73255">73255</a>
[1.5][reconciling] ClassCastException in SourceTypeElementInfo#getTypeParameterBounds 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72946">72946</a>
Refactoring context menu does not show inline action on local variables [refactoring] [inline temp]

<a name="v_505"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 31st August 2004
<br>Project org.eclipse.jdt.core v_505
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_505">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added empty "performance" target to test.xml files.
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72772">72772</a>
[1.5][Search Engine] ClassCastException: org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding

<a name="v_504"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 31st August 2004
<br>Project org.eclipse.jdt.core v_504
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_504">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Added new Java element <code>ITypeParameter</code> that represents a formal type parameter in a generic type or method.
     Note types and methods should have type parameters as children, but this is currently disabled as JDT UI doesn't support
     this kind of element yet.
     To enable set <code>org.eclipse.jdt.internal.core.TypeParameter#ENABLED</code> to <code>true</code>.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72942">72942</a>
[1.5] 'AT' is visible inside syntax error messages 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68343">68343</a>
IDOMType.setSuperInterfaces() with empty array has no impact on Interfaces 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72083">72083</a>
[1.5] NPE while compiling FindBugs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71080">71080</a>
[1.5] Type parameter bound &lt;E extends Enum&lt;E&gt;&gt; should be allowed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62070">62070</a>
Should revisit reference recording
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=36397">36397</a>
Compiling source which indirectly references unavailable classes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62822">62822</a>
[1.5] Bound mismatch: The type X is not a valid substitute for the bounded parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72094">72094</a>
NPE inside qualified type reference resolution
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72468">72468</a>
"hierarchy of ... type is inconsistent" error message
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59082">59082</a>
[1.5] Should not offer argument completion for non generic type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72501">72501</a>
[1.5] CodeAssist - ArrayIndexOutOfBoundsException with ParameterizedQualifiedTypeReference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72640">72640</a>
Codestream target level is initialized with source level
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72560">72560</a>
[1.5] VerifyError in nested generics loop

<a name="v_503"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M2 - 24th August 2004
<br>Project org.eclipse.jdt.core v_503
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_503">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>All resource change listeners/builder now react to new encoding change notification.</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70193">70193</a>
DBCS - The GB18030 character cannot be correctly generated into ".classpath" file when new a source folder named with GB18030 character. 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70997">70997</a>
Debugger doesn't stop in finally block
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=47074">47074</a>
inability to detect invalid cast between interfaces
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71910">71910</a>
Weird exception handlers ranges with any exception handlers
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72352">72352</a>
"No completion available" after cast to "String[]"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71702">71702</a>
code completion doesn't work anymore after Array cast. 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68847">68847</a>
[1.5] DCR Signature: API to separate raw type and type parameters 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72348">72348</a>
[1.5][Type Hierarchy] Super type hierarchy of class extending generic type is empty 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72105">72105</a>
[1.5] NPE in SelectionEngine.selectFrom 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72230">72230</a>
[1.5][Type Signature] IAE in createCharArrayTypeSignature 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68506">68506</a>
Java code formatter strips newline, leaving final line unterminated!
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59052">59052</a>
[1.5][reconciling] DOM conversion incomplete for generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72248">72248</a>
[1.5] StackOverflowError caused by methods type variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72233">72233</a>
IAE creating AST for java.lang.SuppressWarnings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57585">57585</a>
memory optimization in JavaModelCache 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=72238">72238</a>
[1.5] CodeAssist - Wrong completion inside parameterized type 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68585">68585</a>
index is out of date after encoding change 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68594">68594</a>
[1.5] NPE after code assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70995">70995</a>
[1.5] Add 1.5 constructs in the code formatter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68842">68842</a>
[1.5] AST: parameter type binding: getKey seems wrong
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71852">71852</a>
ClassCastException in HandleFactory.createElement(...)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69066">69066</a>
[1.5] getTypeArguments incorrect (?) when type argument is a type variable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68838">68838</a>
[1.5] AST: Missing bindings in type parameters
	  	
<a name="v_502"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M1 - 10th August 2004 - 3.1 MILESTONE 1
<br>Project org.eclipse.jdt.core v_502
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_502">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66908">66908</a>
Code assist javadoc confused by duplicate java.lang.String
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66570">66570</a>
Code assist fails due to capitalization
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71705">71705</a>
[1.5] CodeAssist failure with simple test case
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69598">69598</a>
[1.5] Auto Completion not available in new for-loop
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71672">71672</a>
[1.5] MethodInvocation has no type arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67790">67790</a>
[1.5] AST: ConstructorInvocation type arguments not in source range
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70292">70292</a>
[1.5] enum makes Copy, Cut commands fail
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71241">71241</a>
[1.5] different methods with same erasure should not override
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69901">69901</a>
[1.5] Interface / Generic: unchecked conversion should throw a warning
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71467">71467</a>
JavaConventions.ValidatePackageName() does not return ERROR
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71113">71113</a>
[1.5] improve DOM/AST specs for bindings for JLS3 constructs
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71079">71079</a>
[1.5] ClassCastException resolving Javadoc
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70969">70969</a>
[1.5] compile error with conditional operator and wildcards
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70611">70611</a>
[1.5] Specific generic class declaration breaks save and load
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69931">69931</a>
JDTCompilerAdapter prevents use of Cheetah
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=71007">71007</a>
[1.5] Qualified name not supported as member value
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70984">70984</a>
[1.5] Invalid syntax error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70986">70986</a>
[Prefs] Old Java project prefs are not all stored while migrating to new API
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70975">70975</a>
[1.5] Type mismatch when compiling against binary generic method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70656">70656</a>
[1.5] StackOverflow when resolving Enum&lt;FormattedFloatingDecimal$Form&gt; 


<a name="v_501"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M1 - 27th July 2004 - Codename "Cheetah"
<br>Project org.eclipse.jdt.core v_501
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_501">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>Plugin version ID got incremented to 3.1.0. </li>
<li>Added support for method return type covariance</li>
<li>Added optional compiler diagnosis for serializabe classes missing a declaration of serialVersionUID field.
Corresponding problem ID is IProblem.MissingSerialVersion.
</li>
<pre>
* COMPILER / Reporting Missing Declaration of serialVersionUID Field on Serializable Class
*    When enabled, the compiler will issue an error or a warning whenever a serializable class is missing a local declaration 
*    of a serialVersionUID field. This field must be declared as static final and be of type long.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.missingSerialVersion"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
</pre>
<li>Added <code>isConstructor()</code> and <code>isSynthetic()</code> getters to MethodReferenceMatch.
<br>
When a search requestor (<code>SearchRequestor</code>) accepts this kind of match,
it can now distinguish between method and constructor reference matches. It can also know
if a constructor reference match is a default constructor or use an implicit super call.
<br>
Note that synthetic method reference match is not supported yet.
</li>
<li>Once 1.5 source compliance is enabled, the typecheck rules for conditional operator (a ? b : c) 
allows scenario where 'b' and 'c' have a common supertype (i.e. it is no longer required for
one to be assignable to the other as in the past). This is required by JLS 3rd edition.
</li>
<li>Fix for bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69028">69028</a>
     requires the index version to be incremented. Indexes will be automatically regenerated upon
     subsequent search queries (accounting for indexing notification in search progress dialogs).
</li>
<li>The spec for MethodDeclaration.typeParameters was changed to remove the
clause that said that type parameters were not meaningful for
constructors. According to the latest JLS3, both constructors and methods
are allowed to have type parameters.
(bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70665">70665</a>).
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=48336">48336</a>
[Search] Participants should surface in search progress
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70598">70598</a>
[Encoding] ArrayIndexOutOfBoundsException while testing BOM on *.txt files
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70767">70767</a>
[1.5] NPE compiling code with explicit constructor invocation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70717">70717</a>
Batch compiler should report compilation errors to console
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70665">70665</a>
[DOM/AST] missing type parameters for constructor declaration in JLS3
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70618">70618</a>
[1.5] Variable T should be allowed as argument of supertype
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70616">70616</a>
[1.5] Unable to bind type variable in binary from Enum&lt;E&gt;
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70609">70609</a>
[1.5] NPE compiling Container
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70606">70606</a>
[1.5] ClassCastException compiling DefaultTreeCellEditor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69351">69351</a>
[1.5] Error should be issued if generic type is extending Throwable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62822">62822</a>
[1.5] Bound mismatch: The type X is not a valid substitute for the bounded parameter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69626">69626</a>
[1.5] The return type is incompatible
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=41018">41018</a>
Method reference with member type parameter(s) not found
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70053">70053</a>
[1.5] VerifyError - incompatible argument to function
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69942">69942</a>
compiler warning for serializable classes that do not explicitly declare serialVersionUID
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70398">70398</a>
Java AST creation error due to NullPointerException in IF statement test block.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=43587">43587</a>
Searching for references to default constructors reports questionable results
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70243">70243</a>
[1.5] no warning for unsafe cast
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69799">69799</a>
[1.5] NPE when saving File with forEach loop
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69320">69320</a>
[1.5] generic parameter type compiles by eclipse, not by javac
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69800">69800</a>
[1.5] eclipse fails to report incompatible types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70295">70295</a>
[1.5] method(Class<?>) is not applicable for Class<? extends Object>
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=70247">70247</a>
[1.5] NPE in TypeVariableBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68726">68726</a>
[Javadoc] Target attribute in @see link triggers warning
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68993">68993</a>
IllegalArgumentException when opening project preferences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69806">69806</a>
formatter doesn't handle strictfp correctly.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69776">69776</a>
[1.5] VerifyError: Incompatible object argument for function call
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69713">69713</a>
[1.5] Cannot save java document, throws nullpointer
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69542">69542</a>
[1.5] ByteCode differs from javac ByteCode in behaviour
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69554">69554</a>
Eclipse Java compiler is not completely compliant to Javac
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69658">69658</a>
typo in javadoc of ClassInstanceCreation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69308">69308</a>
All ASTNodes that deal with modifiers should offer a method setModifiers(List modifiers)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69302">69302</a>
[Javadoc] Invalid reference warning inconsistent with javadoc tool
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69275">69275</a>
[Javadoc] Invalid warning on @see link
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69272">69272</a>
[Javadoc] Invalid malformed reference (missing separator)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68087">68087</a>
[Javadoc] '-' character should be accepted in tag names
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68025">68025</a>
Javadoc processing does not detect some wrong links
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68017">68017</a>
Javadoc processing does not detect missing argument to @return
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69573">69573</a>
[1.5] Missing Message for Compiler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69028">69028</a>
Anonymous type in argument of super() is not in type hierarchy 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69375">69375</a>
[1.5] wildcards: no error for incorrect assignment
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68698">68698</a>
Bug in inner class emulation:compiler doesn't reject illegal code.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69359">69359</a>
[1.5] Trouble with "unnecassary cast" warnings
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69271">69271</a>
decimal integer literals should not consist of FULL WIDTH Unicode digits
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69349">69349</a>
[DOM/AST] Wrong end position for method declaration
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69152">69152</a>
[NPE] An internal error occurred during: "Override indicator installation job". 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68010">68010</a>
[1.5] Return type of bridge method is not correct inside outliner 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69170">69170</a>
[1.5] no error for new T[0]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69353">69353</a>
[1.5] Should reject usage of type parameter in catch block
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69288">69288</a>
[1.5] Unsafe type operations should be reported against individual expressions
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64305">64305</a>
[1.5] Bad "return type is incompatible" error for array values
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69251">69251</a>
[1.5] can't instantiate bounded wildcard
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69141">69141</a>
[1.5] Wildcards with lower bound do not work
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=69276">69276</a>
[1.5] NPE in ReturnStatement
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64154">64154</a>
[1.5] incorrect 'constructor not visible'
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65943">65943</a>
Closing/opening a project doesn't have the correct delta 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68998">68998</a>
[1.5] NPE in java compiler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68146">68146</a>
Search should not populate Java model cache 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67789">67789</a>
Java element delta from refresh contains excluded package 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68845">68845</a>
[1.5] AST: AbstractTypeDeclaration should have resolveBinding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66512">66512</a>
Invalid classpath entry not rejected 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=67643">67643</a>
[1.5] Incompatible conditional operand types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68981">68981</a>
[1.5] NPE in code assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68891">68891</a>
[1.5] TypeVariableBinding does not know his declaring type or method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68862">68862</a>
[1.5] ClassCastException when moving a a java file 

<a name="v_500"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M1 - 29th June 2004 - Codename "Cheetah"
<br>Project org.eclipse.jdt.core v_500 (Cheetah06)
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_500">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>From target 1.5 on, the JSR bytecode instruction is no longer generated. As a consequence, the 
    corresponding compiler option status will be ignored as soon as -target 1.5 is specified.
</li>
<li>Batch compiler defaults to 1.5 source and target, when toggled in 1.5 compliant mode ("-1.5").
</li>
<li>Added support for generics to JavaModel, thus enabling editor problem reconciling, outliner, type hierarchies. </li>
<li>Improved codeassist and codeselect handling of generics </li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68837">68837</a>
[1.5] AST: Missing source range in parameterized type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68133">68133</a>
[1.5] VerifyError: Code segment has wrong length in class file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68863">68863</a>
Missing entry in local variable attribute
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68440">68440</a>
[1.5] VerifyError with new for loop
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64159">64159</a>
[1.5] call to addAll(Collection<? extends T>) incorrectly dissalowed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68602">68602</a>
[1.5] AST converter fails on local types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=66424">66424</a>
[1.5] Collections in new style for loop
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64417">64417</a>
[1.5] NPE in SourceTypeBinding.resolveTypesFor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68730">68730</a>
[1.5] No completion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65953">65953</a>
[1.5] Internal Compiler Error: ArrayIndexOutOfBoundsException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58470">58470</a>
[1.5] Source mapper fooled by generics 
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64336">64336</a>
[1.5] Signature does allow to create parameterized type signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68557">68557</a>
[1.5] ArrayIndexOutOfBoundsException in SourceTypeConverter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=68006">68006</a>
[1.5] Invalid modifier after parse
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65503">65503</a>
[1.5] "new" for-loop inside "old" for-loop gives error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65870">65870</a>
[1.5] AST creation fails when created with comments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=64301">64301</a>
[1.5] Cast required where no cast should be required
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=63556">63556</a>
[1.5] Error when creating generic classes specializing distant generic parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=63590">63590</a>
[1.5] Cheetah allows generic throws clause
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=63555">63555</a>
[1.5] Cannot put generic type fields inside static inner class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58722">58722</a>
[1.5] cannot extend interfaces


<a name="v_429_Cheetah05"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse Platform Build Notes&nbsp;<br>
Eclipse SDK 3.1M1 - 15th May 2004
<br>Project org.eclipse.jdt.core v_429_Cheetah05
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_429_Cheetah05">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
Cast/instanceof operations are now fully supported, along with extra diagnosis for unsafe type operations.
</li>
<li>
Explicit parameterizations of message sends and constructor calls are also supported.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62416">62416</a>
[1.5] An error has occurred when creating this (Java) editor
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=62292">62292</a>
[1.5] Missing receiver in parameterized message send
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=61507">61507</a>
[1.5] NPE in computeCompatibleMethod
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=60681">60681</a>
[1.5] Return type not strict enough
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=60563">60563</a>
[1.5] VerifyError when using generics and arrays
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59258">59258</a>
Possibility to share compiler preferences for a shared project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=60556">60556</a>
[1.5] Collections.unmodifiableList(List&lt;A&gt;)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58978">58978</a>
[1.5] Generic method needs better error reporting
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59983">59983</a>
[1.5] Internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58903">58903</a>
[1.5] Implementing inherited generic methods


<a name="v_422_Cheetah04"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse Platform Build Notes&nbsp;<br>
Eclipse SDK 3.1M1 - 23th April 2004
<br>Project org.eclipse.jdt.core v_422_Cheetah04
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_422_Cheetah04">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
Wildcard type compatibilities got reworked quite significantly. In
particular, it now diagnoses
usage of methods which parameters are of wildcard type (see 59641).
</li>
<li>
Covariance is still not supported, but the Cheetah can now issue synthetic
bridge methods for allowing overriding to parameterized methods.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59723">59723</a>
[1.5] Compiler rejects usage of ArrayList.toArray(char[][])
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59628">59628</a>
[1.5] Erroneous diagnosis for missing abstract method implementation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59641">59641</a>
[1.5] Compiler should refuse usage of wildcard argument values
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=59147">59147</a>
[1.5] Compiler rejects correct code with wildcards and raw types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58979">58979</a>
[1.5] NullPointerException in compiler


<a name="v_421_Cheetah03"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse Platform Build Notes&nbsp;<br>
Eclipse SDK 3.1M1 - 16th April 2004
<br>Project org.eclipse.jdt.core v_421_Cheetah03
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_421_Cheetah03">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
The Cheetah is now able to digest generic methods and perform type inference.
It also recognizes the Object.getClass() method and perform adequate
substitutions (see <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57784">57784</a>).
</li>
<li>
Generic types completion is available and type parameters are proposed
as possible completions.
Currently type parameter proposals are given by
ICompletionRequestor#acceptClass().
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58715">58715</a>
[1.5] The return type is incompatible
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58631">58631</a>
[1.5] Cycle in hierarchy no longer detected
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58666">58666</a>
[1.5] Object.getClass() need to be treated special ?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57784">57784</a>
[1.5] Errors using Arrays.asList(T [])
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=58461">58461</a>
[1.5] java.lang.VerifyError from enhanced for loop


<a name="v_421_Cheetah02"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse Platform Build Notes&nbsp;<br>
Eclipse SDK 3.1M1 - 13th April 2004
<br>Project org.eclipse.jdt.core v_421_Cheetah02
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_421_Cheetah02">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>
Properly decode signatures of parameterized member types which are flourishing in 1.5 class libs,
 and were reported as bogus inconsistencies with Cheetah01.
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=53036">53036</a>
Incorrect highlighting for type problem in qualified type name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57716">57716</a>
[1.5] NPE compiling SelectionParser in source 1.5
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=57397">57397</a>
[1.5] Unable to save unit

<a name="v_420_Cheetah01"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse Platform Build Notes&nbsp;<br>
Eclipse SDK 3.1M1 - 4th April 2004
<br>Project org.eclipse.jdt.core v_420_Cheetah01
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_420_Cheetah01">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li> JDK 1.5 support.
<li> JavaCore 1.5 specific options. Either augmented to consider 1.5 or added.
<pre>
* COMPILER / Setting Compliance Level
*    Select the compliance level for the compiler. In "1.3" mode, source and target settings
*    should not go beyond "1.3" level.
*     - option id:         "org.eclipse.jdt.core.compiler.compliance"
*     - possible values:   { "1.3", "1.4", "1.5" }
*     - default:           "1.4"
* 
* COMPILER / Setting Source Compatibility Mode
*    Specify whether which source level compatibility is used. From 1.4 on, 'assert' is a keyword
*    reserved for assertion support. Also note, than when toggling to 1.4 mode, the target VM
*   level should be set to "1.4" and the compliance mode should be "1.4".
*   Source level 1.5 is necessary to enable generics, autoboxing, covariance, annotations, enumerations
*   enhanced for loop, static imports and varargs. Once toggled, the target VM level should be set to "1.5"
*   and the compliance mode should be "1.5".
*     - option id:         "org.eclipse.jdt.core.compiler.source"
*     - possible values:   { "1.3", "1.4", "1.5" }
*     - default:           "1.3"
* 
* COMPILER / Defining Target Java Platform
*    For binary compatibility reason, .class files can be tagged to with certain VM versions and later.
*    Note that "1.4" target require to toggle compliance mode to "1.4" too. Similarily, "1.5" target require
*    to toggle compliance mode to "1.5".
*     - option id:         "org.eclipse.jdt.core.compiler.codegen.targetPlatform"
*     - possible values:   { "1.1", "1.2", "1.3", "1.4", "1.5" }
*     - default:           "1.2"
* 
* COMPILER / Reporting Unsafe Type Operation
*    When enabled, the compiler will issue an error or a warning whenever an operation involves generic types, and potentially
*    invalidates type safety since involving raw types (e.g. invoking #foo(X&lt;String&gt;) with arguments  (X)).
*     - option id:         "org.eclipse.jdt.core.compiler.problem.unsafeTypeOperation"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "warning"
*
* COMPILER / Reporting final Bound for Type Parameter
*    When enabled, the compiler will issue an error or a warning whenever a generic type parameter is associated with a 
*    bound corresponding to a final type; since final types cannot be further extended, the parameter is pretty useless.
*     - option id:         "org.eclipse.jdt.core.compiler.problem.finalParameterBound"
*     - possible values:   { "error", "warning", "ignore" }
*     - default:           "ignore"
</pre>
</li>
</ul>

<h3>Problem Reports Fixed</h3>
<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=56731">56731</a>
[1.5] NPE inside ClassFileStruct when compiling with jre 1.5.0
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=51262">51262</a>
[1.5] Handling of additional bounds in type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52673">52673</a>
[1.5] ArrayStoreException in 1.5 parser


<p><hr>
For earlier build notes, also see <a href="http://dev.eclipse.org/viewcvs/index.cgi/%7Echeckout%7E/org.eclipse.jdt.core/notes/R30_buildnotes_jdt-core.html">build notes up to Release 3.0</a>.

<br>&nbsp;
</body>
</html>
