<!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 align="left" width="72%" class="title2"><font size="-2">Java development tools 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>R3.1</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/R30_buildnotes_jdt-core.html">build notes R3.0</a>.
	  </font>
	</td>
  </tr>
</table>

<a name="v_570"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC4 - 27th June 2005 - 3.1 RELEASE (R3_1)
<br>Project org.eclipse.jdt.core v_570
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_570">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=101453">101453</a>
java.lang.UnsupportedOperationException: Operation only supported in JLS2 AST
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=101794">101794</a>
[1.5][compiler] Compiling Classpath classes results in bad class file


<a name="v_569"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC4 - 24th June 2005 - 3.1 RELEASE CANDIDATE 4
<br>Project org.eclipse.jdt.core v_569
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_569">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=101613">101613</a>
Performance regressions in Open Type Hierarchy performance test
	  	
<a name="v_568"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC4 - 23rd June 2005
<br>Project org.eclipse.jdt.core v_568
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_568">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=101426">101426</a>
[search] Search doesn't work with imported plugin
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=101120">101120</a>
Cannot generate an executable of the batch compiler using gcj 3.4.4
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100631">100631</a>
Internal compiler error in 3.1RC2
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=101230">101230</a>
[compiler] Internal compiler error when labeled statement processing
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=101022">101022</a>
[search] JUnit Test Runner on folder runs tests outside directory
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=101019">101019</a>
RC3: Type Hierarchy does not find implementers/extenders of inner class/interface in other project 	
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100009">100009</a>
[assist] Content assist uses generic parameter name arg0 instead of real name
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100584">100584</a>
[1.5][dom] NPE when selecting a faulty member type following a generic type reference

<a name="v_567"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC3 - 17th June 2005 - 3.1 RELEASE CANDIDATE 3
<br>Project org.eclipse.jdt.core v_567
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_567">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=100519">100519</a>
[1.5][compiler] generic parameter and qualified access seems to confuse each other


<a name="v_566"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC3 - 16th June 2005
<br>Project org.eclipse.jdt.core v_566
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_566">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=100421">100421</a>
[1.5][compiler] chain of generics-extends confuse compiler


<a name="v_565"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC3 - 16th June 2005
<br>Project org.eclipse.jdt.core v_565
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_565">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=99654">99654</a>
[5.0] JavaModel returns both IClassFile and ICompilationUnit for package-info.java
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100393">100393</a>
Defaults for compiler errors/warnings settings

<a name="v_564"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC3 - 16th June 2005
<br>Project org.eclipse.jdt.core v_564
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_564">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=99606">bug 99606</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=100302">100302</a>
StackOverflowError during completion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99606">99606</a>
Subtype not found if parameterized on inner class
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100293">100293</a>
1.5 compiler - Methods using non-generic inner types of concreted generic classes generate wrong signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98322">98322</a>
[compiler] ParameterizedTypeBinding should not have AccGenericSignature set when no type arguments
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99978">99978</a>
MalformedTreeException on Inline Method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100128">100128</a>
[1.5][compiler] StackOverflow compiling GNU Classpath generics branch
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100142">100142</a>
CCE when calling ITypeBinding#getJavaElement() on char[][]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100147">100147</a>
[1.5][compiler] NPE when reporting an error on an unsafe type conversion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100062">100062</a>
[formatting] Code formatter is broken on test case from bug 99999
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100162">100162</a>
java.lang.VerifyError is produced by Eclipse Java compiler
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99428">99428</a>
[1.5][compiler] enum classes created without final accessFlag
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99999">99999</a>
[1.5][compiler] AIOOBE with generics + nested classes + arrays
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99686">99686</a>
IAE in Util#scanTypeBoundSignature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100149">100149</a>
[1.5][compiler] Raw type upper bounds should be raw types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99927">99927</a>
NPE in ParameterizedTypeBinding.initialize
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100138">100138</a>
[doc] Confusing documentation in Project Configuration tutorial
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99915">99915</a>
[search] Open Type: not yet saved types not found if case-sensitve name is entered
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=100007">100007</a>
[1.5][compiler] ClassCastException using array object as generic type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99600">99600</a>
[search] Java model exception on "Move to new file" on inner type with inner type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99982">99982</a>
[DOM] Wrong positions for boolean[] type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99811">99811</a>
NPE during content assist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99629">99629</a>
Error while entering expression in change variable value dialog
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99922">99922</a>
[1.5][compiler] NPE in compiler for Arrays.asList(3, 3.1);
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98378">98378</a>
[search] Can't find declarations in hierarchy of interface.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97614">97614</a>
[1.5][search] Refactoring: renaming of field of a (complex) parametrized type does not replace all occurrences
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97547">97547</a>
[search] Package search does not find references in member types import clause
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96950">96950</a>
[search] Code assist proposes non accessible types into completion
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99510">99510</a>
isCastCompatible seems to need capture bindings now to answer correct results
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99608">99608</a>
IMethodBinding#overrides returns false on overridden method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99901">99901</a>
[select]  AIOOBE when selecting package reference in import statement
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99282">99282</a>
[1.5][compiler] Enum / Switch method is not initialized in a thread safe way
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=52921">52921</a>
[formatting] Javadoc formatting: extra newline with [pre]
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99507">99507</a>
[javadoc] Infinit loop in DocCommentParser
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99397">99397</a>
Typo in CompletionProposal#isConstructor()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99553">99553</a>
[1.5][compiler] Parameterized class nested statically inside another parameterized type causes compile errors when used in method signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99355">99355</a>
extract method trips up with generics and final variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99469">99469</a>
[1.5][compiler] NPE compiling code with unknown annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99375">99375</a>
Compiler error using Annotations

<a name="v_563"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC2 - 10th June 2005 - 3.1 RELEASE CANDIDATE 2
<br>Project org.eclipse.jdt.core v_563
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_563">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=99260">99260</a>
[1.5][compiler] Bad bytecode generated with varargs + generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98331">98331</a>
[1.5][compiler] Casting Conversion needs to check all supertypes for conflicts
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99106">99106</a>
[1.5][compiler] Ambiguous method error because methods don't override in eclipse


<a name="v_562"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC2 - 9th June 2005
<br>Project org.eclipse.jdt.core v_562
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_562">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=97487">97487</a>
[call hierarchy] Call Hierarchy Fails in mounted classes with attached src files
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97524">97524</a>
[prefs] Importing preferences with user library doesn't recreate jar entries
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99142">99142</a>
Exception when shutting down quickly after starting

<a name="v_561"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC2 - 9th June 2005
<br>Project org.eclipse.jdt.core v_561
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_561">cvs</a>).
<h2>
What's new in this drop</h2>
<ul>
<li>The build state version number has changed. A full build of all projects in the workspace will be triggered upon
      startup if autobuild is on, or on the next build if autobuild is off.</li>
<li>The new list of supported warning tokens for the @SuppressWarnings annotation is:
<ul>
<li><b><font color="red">all</font></b> : any warning</li>
<li><b>boxing</b> : autoboxing conversion</li>
<li><b><font color="red">dep-ann</font></b> : missing @Deprecated annotation</li>
<li><b><font color="red">deprecation</font></b> : deprecation outside deprecated code</li>
<li><b>incomplete-switch</b> : incomplete enum switch (<i>enumSwitch</i>)</li>
<li><b>hiding</b> : 
<ol><li>field hiding another variable (<i>fieldHiding</i>)</li>
<li>local variable hiding another variable (<i>localHiding</i>)</li>
<li>type parameter hiding another type (<i>typeHiding</i>)</li>
<li>hidden catch block (<i>maskedCatchBlock</i>)</li>
</ol>
</li>
<li><b><font color="red">finally</font></b> : finally block not completing normally</li>
<li><b>static-access</b> :
<ol>
<li>indirect reference to static member (<i>indirectStatic</i>)</li>
<li>non-static reference to static member (<i>staticReceiver</i>)</li>
</ol>
</li>
<li><b>nls</b> : string literal lacking non-nls tag //$NON-NLS-&lt;n&gt;$</li>
<li><b><font color="red">serial</font></b> : missing serialVersionUID</li>
<li><b>unqualified-field-access </b>: unqualified reference to field (<i>unQualifiedField</i>)</li>
<li><b><font color="red">unchecked</font></b> : unchecked type operation</li>
<li><b>unused</b> :
<ol>
<li>unread method parameter (<i>unusedArgument</i>)</li>
<li>unread local variable (<i>unusedLocal</i>)</li>
<li>unused private member declaration (<i>unusedPrivate</i>)</li>
<li>unused declared thrown exception (<i>unusedThrown</i>)</li>
</ol>
</li>
<li><b>synthetic-access</b> : synthetic access for innerclass (<i>syntheticAccess</i>)</li>
</ul>
<p>NOTE:</p><blockquote>All other warning tokens are not longer supported by @SuppressWarnings;
considering that for some diagnosis, it is simpler to just fix the code than silence some warning.
In <i>Italic</i> the old warning token is specified.
<br>Warning tokens also supported by javac are in <font color="red">red</font> (also see <a href="http://www.javac.info/doc?n=JavaCompiler.WarningTokens">declared warning tokens</a>).
</blockquote>
</li>
<li>CodeAssist: added a new API CompletionProposal#isConstructor() to distinguish method and constructor proposal</li>
<li>Access rules file patterns have been changed to ignore the file extension. This allow easy switching from a source project
     to a binary project. Thus <code>"com/test/X.java"</code> is now an invalid access rule pattern, and 
     <code>"com/test/X"</code> is a valid access rule pattern.</li>
<li>
Following batch compiler options default value have been changed from "ignore" to "warning":
<ul>
<li>unusedLocal (unread local variable)</li>
<li>unusedPrivate (unused private member declaration)</li>
<li>fieldHiding (field hiding another variable)</li>
<li>localHiding (local variable hiding another variable)</li>
</ul>
(see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76530">76530</a>)
</li>
<li>Compiler optional diagnosis for unused private members got generalized to also flag unused
members of local types.
</li>
<li>Compiler no longer reports as unchecked the situation where a method of a raw type is invoked,
and only the return type got altered by raw conversion (also see bug <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85815">85815</a>). 
This change is motivated to better match the language spec 3rd edition.</li>
<li>Fix for <a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97087">bug 97087</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=99138">99138</a>
NPE in RawTypeBinding.computeUniqueKey(..) for raw type inside anonymous parameterized type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93975">93975</a>
[1.5][syntax] Poor recovery when extra semicolon in annotation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93208">93208</a>
[dom] CompilationUnit.rewrite throws AssertionFailedException with legal AST (bug in recoding ast modifications)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97440">97440</a>
[1.5][compiler] StackOverflow compiling heavily generic code
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99104">99104</a>
Startup job displayed as "Initializing the Java d...ent tooling"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=99084">99084</a>
Formatter error when generic method has an argument
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98892">98892</a>
[compiler] Eclipse compiler generates code that calls the finally block twice
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98969">98969</a>
Builder didn't find state for prereq project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96586">96586</a>
[1.5][compiler] Invalid cycle detected
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98954">98954</a>
Javadoc of ITypeBinding#getErasure() is wrong for array types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98504">98504</a>
[1.5][compiler] Compiler difference between javac and jdt?
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96763">96763</a>
[1.5][search] Search for method declarations does not find overridden method with different signature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96761">96761</a>
[1.5][search] Search for declarations of generic method finds non-overriding method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98228">98228</a>
[1.5][compiler] regression - incorrect handling of generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98720">98720</a>
[preferences] classpath variables are not exported if the session is closed and restored
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98906">98906</a>
No rebuild after upgrade
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98711">98711</a>
no way to distinguish constructor from method proposals
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98434">98434</a>
A non-1.5 project with 1.5 projects in the classpath does not show methods with generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98750">98750</a>
[dom] Java DOM Parser finding syntax Problems when parsing Annotations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90619">90619</a>
[1.5][compiler] Cannot implement generified interface with erased method
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98500">98500</a>
[1.5] Internal compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98488">98488</a>
NPE while computing a key for a paramterized type binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97087">97087</a>
[1.5][search] Can't find reference of generic class's constructor.
<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=98473">98473</a>
AST binding: type variable reports as 'isTopLevel'
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98364">98364</a>
[1.5][compiler] Compiler allowing invalid generic interface inheritance
<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=93377">93377</a>
[1.5][compiler] Multiple auto-build failures when using generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=79309">79309</a>
Nested interfaces aren't resolved correctly in import (with "Open Declaration" / F3)
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96765">96765</a>
Code completion does not work in enum constants
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98483">98483</a>
IMethodBinding.override does not compare method names
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98115">98115</a>
Field completion failed to propose a field declared into an innerclass
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93789">93789</a>
[1.5][compiler] Compiler incorrectly allows static declarations in enum constants.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98396">98396</a>
[1.5][compiler] Casting Conversion ignores second bound of Type Variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98383">98383</a>
[1.5][compiler] ClassCastException attempting to cast from intersection type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97322">97322</a>
[search] Search for method references sometimes reports potential match with differing argument count
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94160">94160</a>
[1.5][search] Generic method in superclass does not exist
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91061">91061</a>
[1.5][compiler] Static reference to outer type variable should not be allowed
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97108">97108</a>
[1.5][compiler] NullPointerException encountered while running Java Builder
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98259">98259</a>
NPE computing ITypeBinding#getKey()
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=93536">93536</a>
[1.5] Internal compiler generating error on code that javac accepts
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97606">97606</a>
[1.5][search] Raw type reference is reported as exact match for qualified names
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96424">96424</a>
[search] SearchParticipant sets containerPath to documentPath
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97542">97542</a>
ASTParser#createASTs does not correctly resolve bindings in working copies
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94898">94898</a>
[1.5] errors in ambiguous method invocation detection
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94754">94754</a>
[1.5][compiler] Ambiguous method call is not detected
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84035">84035</a>
[1.5][compiler] Ambiguous method call
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76530">76530</a>
[options] Warn about unused local variables and private members
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98091">98091</a>
[1.5][compiler] @SuppressWarnings("assertIdentifier") cannot be applied
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94907">94907</a>
[assist] missing keyword completions for generic signatures
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84001">84001</a>
[select] Renaming of class with internal classes fails.
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=94641">94641</a>
Code assist does not display parameters for constructor with type parameters
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96991">96991</a>
[1.5][compiler] Annotation attribute should be able to reference field
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96713">96713</a>
[1.5][compiler] Inconsistency with Sun JDK
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95684">95684</a>
[1.5][compiler] Type handling on concrete inner class of super class is incorrect
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97273">97273</a>
Illegal argument exception in Signature#getTypeSignatureKind
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98165">98165</a>
Wrong source range for ConditionalExpression with casted target in FieldAccess as expression
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96085">96085</a>
[1.5][compiler] problems with inner classes and generics
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98139">98139</a>
Java Code Formatter is severely confused by following code
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98079">98079</a>
[1.5][compiler] incorrect Bound mismatch compilation error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97860">97860</a>
[1.5][assist] All current proposals while completing after a type parameter results in a compiler error
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=82560">82560</a>
[assist] Completion fails on parameterized generic method call
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98086">98086</a>
[1.5][dom] CU still have problems even with @SuppressWarnings("all")
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=98037">98037</a>
[Java Editor Templates] Templates with multiple lines are inlined when used
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96258">96258</a>
Bogus build path errors caused by multiple project import
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97902">97902</a>
NPE on Open Declaration on reference to generic type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=80432">80432</a>
Code Assist box exhibits strange behavior in an endless for loop
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96944">96944</a>
[1.5][assist] shoud not suggest type parameters after new
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97801">97801</a>
[1.5][codeassist] The type of the class literal must be parameterized
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=85384">85384</a>
[1.5][assist] "extends" not proposed when writing method declarations
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97219">97219</a>
[1.5] eclipse does not detect ambiguous method invocation errors
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97744">97744</a>
[compiler][ant adapter] NPE when verbose = true and destDir not specified
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97480">97480</a>
[1.5][compiler] incorrect error on some calls to raw Map.Entry.setValue
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97809">97809</a>
Ambiguous method reference wrongly reported
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97814">97814</a>
Incorrect resolved information on hover
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97841">97841</a>
[1.5][dom] null binding for ClassInstanceCreation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90916">90916</a>
CCE in SourceTypeConverter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97466">97466</a>
NPE in SourceTypeConverter
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97307">97307</a>
[5.0][typing] completion for "import static" deletes all source before
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97459">97459</a>
CCE during reconcile and AST creation
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97800">97800</a>
[1.5][compiler] Cast type shouldn't be used in generic method argument inference
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95349">95349</a>
Access rule pattern matching should ignore file extension
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97161">97161</a>
[1.5][compiler] Internal compiler error java.lang.NullPointerException
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97303">97303</a>
[1.5][compiler] Cannot convert when inferring list of inner parameterized type
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97272">97272</a>
Export preferences offers "all" button, does not export classpath variables
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96794">96794</a>
Polishing disassembler output
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97275">97275</a>
method reference should not contain type variable anymore
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97187">97187</a>
[rendering] Shows Single Char for primitve Types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96918">96918</a>
Code Assist - suggest extends and super in the context of a wildcard type argument
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97190">97190</a>
Incorrect handling of large long values
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97247">97247</a>
ArrayIndexOutOfBoundsException in ClassFile.addSyntheticSwitchTable
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=76155">76155</a>
[options] Unused code warning for unused methods in anonymous inner classes
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97224">97224</a>
[polish][compiler] Inconsistent error message for non-visible field
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95481">95481</a>
[1.5] NPE in TypeVariableBinding.checkBounds
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=65748">65748</a>
[type hierarchy] Hierarchy view fails to pick up class modifier change
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96633">96633</a>
getJavaElement returns null for Object[] array binding
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96605">96605</a>
JDTCompilerAdapter should allow a log without all verbose information
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96858">96858</a>
IllegalArgumentException in Signature
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97164">97164</a>
classpath variables lost when upgrading from M7 to RC1
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=97139">97139</a>
eclipse 3.1RC1 compiler crash for project
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96974">96974</a>
[5.0] @SuppressWarnings({"nls"}) does not work for unexternalized strings

<a name="v_560"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC1 - 26th May 2005 - 3.1 RELEASE CANDIDATE 1
<br>Project org.eclipse.jdt.core v_560
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_560">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=96646">96646</a>
[1.5][compiler] VerifyError - Generics and Interfaces - "Wrong return type in function"
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=96631">96631</a>
NPE in Annotation on empty ArrayInitializer


<a name="v_559"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC1 - 26th May 2005
<br>Project org.eclipse.jdt.core v_559
(<a href="http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.jdt.core/?only_with_tag=v_559">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=95638">95638</a>
[1.5][compiler] Possibly incorrect Bounds Mismatch errors for complicated bounds


<a name="v_558"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java development tools core</h1>
Eclipse SDK 3.1RC1 - 26th 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=93119">93119</a>
code assist: proposals for wildcard types
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=95505">95505</a>
Can not use code completion
<br><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 tools core</h1>
Eclipse SDK 3.1M7 - 12th May 2005 - 3.1 MILESTONE 7 / 3.1 RELEASE CANDIDATE 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 tools 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 tools 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>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 tools 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 tools 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-&gt;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 tools 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 tools 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 ==&gt; 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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
(i.e. @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 tools 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).
 * 
 * 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.
 * 
 * 
 * @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 (i.e. <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 tools 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 tools 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=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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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 tools 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&lt;?>) is not applicable for Class&lt;? extends Object&gt;
<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 tools 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&lt;? extends T&gt;) 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 tools 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 tools 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 tools 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 tools 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 tools 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>
