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

<a name="v_553"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - 2?th 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>
</ul>

<h3>Problem Reports Fixed</h3>
<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<Comparable>) 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<++Element> should not be assignable a  A<+Element>
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=91091">91091</a>
[quick assist] Cannot rename type name in file
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=90881">90881</a>
[1.5][compiler] NPE in builder
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=84496">84496</a>
[1.5][compiler] Capture Conversion not correctly implemented
<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=92086">92086</a>
[index] ClassCastException in DiskIndex.mergeCategory()

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

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

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

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

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


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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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


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

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

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

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

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


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

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


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

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


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

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


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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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


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

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


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

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


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

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

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

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


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

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