<!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_551"></a>
<p><hr><h1>
Eclipse Platform Build Notes&nbsp;<br>
Java Development Tooling Core</h1>
Eclipse SDK 3.1M7 - ?th 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 preformance.log if CompletionEngine.complete() take more than 300ms</li>
<li><code>org.eclipse.jdt.core/perf/selection=300</code> add an entry to preformance.log if SelectionEngine.select() take more than 300ms</li>
<li><code>org.eclipse.jdt.core/perf/javadeltalistener=500</code> add an entry to preformance.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 preformance.log if the initialization take more than 5000ms</li>
<li><code>org.eclipse.jdt.core/perf/containerinitializer=5000</code> add an entry to preformance.log if the initialization take more than 5000ms</li>
<li><code>org.eclipse.jdt.core/perf/reconcile=1000</code> add an entry to preformance.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=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>
