jdt core - build notes 3.8 stream
Java development tools core

Here are the build notes for the Eclipse JDT/Core plug-in project org.eclipse.jdt.core, describing bug resolution and substantial changes in the HEAD branch. For more information on 3.8 planning, please refer to JDT/Core release plan, the next milestone plan, the overall official plan, or the build schedule. This present document covers all changes since Release 3.7 (also see a summary of API changes).
Maintenance of previous releases of JDT/Core is performed in parallel branches: R3.7.x, R3.6.x, R3.5.x, R3.4.x, R3.3.x, R3.2.x, R3.1.x, R3.0.x, R2.1.x, R2.0.x, R1.0.x.

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - March 20, 2012 - 3.8.0 M7

## What's new in this drop

### Problem Reports Fixed

372319 Unexpected 'The local variable i may not have been initialized' compile error

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - March 13, 2012 - 3.8.0 M6
Project org.eclipse.jdt.core v_C40 (cvs).

## What's new in this drop

### Problem Reports Fixed

374063 [builder][regression] bug 372012 causes regular problems to be reported against the package

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - March 13, 2012

## What's new in this drop

### Problem Reports Fixed

373953 FUP of bug 127575: java.eclipse.core.runtime.Assert is being recognized as org.eclipse.core.runtime.Assert

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - March 12, 2012

## What's new in this drop

- New IProblems for distinguishing null warnings based on flow analysis vs. null annotations.

      	/** @since 3.8 */
      	int RedundantNullCheckOnSpecdNonNullLocalVariable = Internal + 931;

      	/** @since 3.8 */
      	int SpecdNonNullLocalVariableComparisonYieldsFalse = Internal + 932;

      	/** @since 3.8 */
      	int RequiredNonNullButProvidedSpecdNullable = Internal + 933;

- New IProblems for reporting missing NonNullByDefault annotation on package/type.

      	/** @since 3.8 */
      	int MissingNonNullByDefaultAnnotationOnPackage = Internal + 913;

      	/** @since 3.8 */
      	int MissingNonNullByDefaultAnnotationOnType = Internal + 930;

- Added new option in JavaCore to control warning for missing default nullness annotation:

      	/**
      	 * Compiler option ID: Reporting missing default nullness annotation.
      	 *
      	 * When enabled, the compiler will issue an error or a warning in the following cases:
      	 *
      	 * 1. When a package does not contain a default nullness annotation, as a result of missing package-info.java
      	 * or missing default nullness annotation in package-info.java.
      	 * 2. When a type inside a default package does not contain a default nullness annotation.
      	 *
      	 * This option only has an effect if the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
      	 *
      	 * Option id:"org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation"
      	 * Possible values:{ "error", "warning", "ignore" }
      	 * Default:"ignore"
      	 *
      	 * @since 3.8
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_MISSING_NONNULL_BY_DEFAULT_ANNOTATION = PLUGIN_ID + ".compiler.annotation.missingNonNullByDefaultAnnotation"

### Problem Reports Fixed

365859 [compiler][null] distinguish warnings based on flow analysis vs. null annotations
373571 [null][regression] Incorrect application of null annotations to primitive types
367836 Inconsistent source range for error from build and reconciler (declared package does not match expected)
368646 [rename] rejects LocalVariable with initializer
372012 [compiler][null] Warn when defaults not specified

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - March 6, 2012

## What's new in this drop

- New IProblems for reporting if an enum switch lacks a default cause (recommended by the JLS).

      	/** @since 3.8 */
      	int MissingEnumDefaultCase = Internal + 766;

- Adjusted the specification of the corresponding constant in JavaCore:

      	/**
      	 * Compiler option ID: Reporting Incomplete Enum Switch.
      	 *
      	 * When enabled, the compiler will issue an error or a warning whenever
      	 * an enum switch statement lacks a default case.
      	 * If no default case is given, additionally one error or warning is issued
      	 * regarding each enum constant for which a corresponding case label is lacking.
      	 *
      	 * Option id: "org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch"
      	 * Possible values: { "error", "warning", "ignore" }
      	 * Default: "warning"
      	 * @since 3.1
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_INCOMPLETE_ENUM_SWITCH = PLUGIN_ID + ".compiler.problem.incompleteEnumSwitch"; //$NON-NLS-1$

### Problem Reports Fixed

371732 Deprecate AST.JLS3
372909 message verbiage for instanceof erasure
347386 Cannot delete package from java project (two source and output folders)
372011 [compiler][null] Restore behaviour of null defaults for binary types
127575 Null reference checks don't handle Assert
265744 Enum switch should warn about missing default

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - February 28, 2012

## What's new in this drop

### Problem Reports Fixed

372377 ASTParser#createASTs(..) should not ignore optional compile problems
372351 Illegal implementation of 'org.eclipse.jdt.internal.compiler.env.ICompilationUnit' in Tomcat Jasper
220928 [buildpath] Should be able to ignore warnings from certain source folders

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - February 21, 2012

## What's new in this drop

### Problem Reports Fixed

365499 Add a system property to control for JavaModelManager's jar type cache size
368152 ConcurrentModificationException on startup in ExternalFoldersManager.createPendingFolders
244544 codeSelect fails on constant declaration in anonymous and local classes
291040 codeSelect(..) does not work for a deeply nested method invocation in nested and anonymous class
370930 NonNull annotation not considered for enhanced for loops
366063 Compiler should not add synthetic @NonNull annotations
365531 [compiler][null] investigate alternative strategy for internally encoding nullness defaults
370639 [compiler][resource] restore the default for resource leak warnings

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - February 14, 2012

## What's new in this drop

### Problem Reports Fixed

123836 [1.5][search] for references to overriding method with bound type variable is not polymorphic
368546 [compiler][resource] Avoid remaining false positives found when compiling the Eclipse SDK
364254 Reduce console output during JDT/Core junits execution.
362633 NPE while trying to rename a class

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 25, 2012 - 3.8.0 M5

## What's new in this drop

### Problem Reports Fixed

369595 Javadoc fixes for IClasspathAttribute.SOURCE_ATTACHMENT_ENCODING

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 24, 2012

## What's new in this drop

### Problem Reports Fixed

366829 Batch compiler option and SuppressWarnings token for Overriding a Synchronized Method with a Non-synchronized Method

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 22, 2012

## What's new in this drop

### Problem Reports Fixed

369251 Starved worker threads
365208 [compiler][batch] command line options for annotation based null analysis

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 20, 2012

## What's new in this drop

- New constant for the name of the encoding to be used for source attachments in IClasspathAttribute (see bug 361356 for details)

      	/**
      	 * Constant for the name of the encoding to be used for source attachments.
      	 *
      	 * <p>The value of this attribute has to be a string representation of a valid encoding. The encoding
      	 * for a source attachment is determined in the following order:  </p>
      	 *
      	 * <ul>
      	 * <li> Encoding explicitly set on the source file (java or zip), i.e. org.eclipse.core.resources.IFile#getCharset(false) </li>
      	 * <li> Encoding set on the corresponding classpath entry </li>
      	 * <li> If the source attachment is a member of the project, then the project's default charSet</li>
      	 * <li> Workspace default charSet </li>
      	 * </ul>
      	 *
      	 * @since 3.8
      	 */
      	String SOURCE_ATTACHMENT_ENCODING = "source_encoding";

- New IProblems for messages relating to contradictory or redundant null annotations

      	/** @since 3.8 */
      	int RedundantNullDefaultAnnotation = Internal + 925;
      	/** @since 3.8 */
      	int RedundantNullDefaultAnnotationPackage = Internal + 926;
      	/** @since 3.8 */
      	int RedundantNullDefaultAnnotationType = Internal + 927;
      	/** @since 3.8 */
      	int RedundantNullDefaultAnnotationMethod = Internal + 928;
      	/** @since 3.8 */
      	int ContradictoryNullAnnotations = Internal + 929;

### Problem Reports Fixed

361356 Allow to specify encoding for source attachments
365582 FUP of bug 361938: Other error code pattern
365662 [compiler][null] warn on contradictory and redundant null annotations

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 17, 2012

## What's new in this drop

### Problem Reports Fixed

368842 test failure because test case refers to java.util.Objects
368709 Endless loop in FakedTrackingVariable.markPassedToOutside
361407 Resource leak warning when resource is assigned to a field outside of constructor
362331 Resource leak not detected when closeable not assigned to variable
362332 Only report potential leak when closeable not created in the local scope
360908 Avoid resource leak warning when the underlying/chained resource is closed explicitly
361073 Avoid resource leak warning when the top level resource is closed explicitly
358903 Filter practically unimportant resource leak warnings
365387 [compiler][null] bug 186342: Issues to follow up post review and verification.
365519 editorial cleanup after bug 186342 and bug 365387
368435 [compiler] NPE while compile a method with unused local
361963 Stack overflow when trying to code complete a generic list
365437 Private methods tagged with @Inject should not be flagged with unused warning
366131 [1.5][compiler] New generics compile error in Indigo SR1 for code that compiles in earlier Eclipse and javac

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 10, 2012

## What's new in this drop

### Problem Reports Fixed

367023 Error in JDT Core during AST creation
354229 [compiler][1.7] Name clash error not being reported by ecj.
367879 Incorrect "Potential null pointer access" warning on statement after try-with-resources within try-finally
366999 VerifyError: Inconsistent stackmap frames
346175 @SuppressWarnings should clear all errors including fatal optional errors
366544 [index] Test testUseIndexInternalJarAfterRestart failed on Mac and Linux
302850 13 failures in JavaModel tests for the N20100214-2000 Mac OS X - Cocoa test machine

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - January 3, 2012 - 3.8.0 M5

## What's new in this drop

### Problem Reports Fixed

367566 In try-with-resources statement close() method of resource is not called
364890 BinaryTypeBinding should use char constants from Util
365992 [builder] [null] Change of nullness for a parameter doesn't trigger a build for the files that call the method
367203 [compiler][null] detect assigning null to nonnull argument
367154 [compiler][null] Problem in propagating null defaults.

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - December 20, 2011

## What's new in this drop

### Problem Reports Fixed

362711 possibly incorrect JDT POST_CHANGE event fired when a file is replaced
365835 [compiler][null] inconsistent error reporting.
365836 [compiler][null] Incomplete propagation of null defaults.
365983 [compiler][null] AIOOB with null annotation analysis and varargs
366003 CCE in ASTNode.resolveAnnotations(ASTNode.java:639)
366829 Batch compiler option and SuppressWarnings token for Overriding a Synchronized Method with a Non-synchronized Method
364450 Dubious class path error triggers a full rebuild

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - December 13, 2011

## What's new in this drop

- New constant for the name of index location class path attribute in IClasspathAttribute(see bug 356620 for details)

         /**
           * Constant for the name of the index location attribute.
           *
           * The value for this attribute has to be the string representation of a URL.
           * It should point to an existing index file in a folder or a jar. The URL can also be of platform protocol.
           *
           * @since 3.8
           */
           String INDEX_LOCATION_ATTRIBUTE_NAME = "index_location";

- New API org.eclipse.jdt.core.index.JavaIndexer.generateIndexForJar to generate the index file for a given jar

         /**
           * Generates the index file for the specified jar.
           *
           * @param pathToJar The full path to the jar that needs to be indexed
           * @param pathToIndexFile The full path to the index file that needs to be generated
           * @throws IOException if the jar is not found or could not write into the index file
           * @since 3.8
           */
           public static void generateIndexForJar(String pathToJar, String pathToIndexFile) throws IOException;

- New application org.eclipse.jdt.core.JavaIndexer to generate index file for the given jar
- New ant task eclipse.buildJarIndex to generate the index file for the given jar

### Problem Reports Fixed

356620 Make it possible to provide indexes for defined libraries

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - December 5, 2011 - 3.8.1 M4

## What's new in this drop

### Problem Reports Fixed

365566 set resource leak diagnostic to "ignore" until bug 358903 is fixed

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0

## What's new in this drop

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_ANNOTATION_NULL_ANALYSIS (see bug 186342 for details):

          /**
           * Compiler option ID: Annotation-based Null Analysis.
           *
           * This option controls whether the compiler will use null annotations for
           * improved analysis of (potential) null references.
           *
           * When enabled, the compiler will interpret the annotation types defined using
           * {@link #COMPILER_NONNULL_ANNOTATION_NAME} and {@link #COMPILER_NULLABLE_ANNOTATION_NAME}
           * as specifying whether or not a given type includes the value null.
           *
           * The effect of these analyses is further controlled by the options
           * {@link #COMPILER_PB_NULL_SPECIFICATION_VIOLATION},
           * {@link #COMPILER_PB_POTENTIAL_NULL_SPECIFICATION_VIOLATION} and
           * {@link #COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO}.
           *
           * Option id: "org.eclipse.jdt.core.compiler.annotation.nullanalysis"
           * Possible values: { "disabled", "enabled" }
           * Default: "disabled"
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_ANNOTATION_NULL_ANALYSIS = PLUGIN_ID + ".compiler.annotation.nullanalysis";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_NULLABLE_ANNOTATION_NAME (see bug 186342 for details):

          /**
           * Compiler option ID: Name of Annotation Type for Nullable Types.
           *
           * This option defines a fully qualified Java type name that the compiler may use
           * to perform special null analysis.
           *
           * If the annotation specified by this option is applied to a type in a method
           * signature or variable declaration, this will be interpreted as a specification
           * that null is a legal value in that position. Currently supported
           * positions are: method parameters, method return type and local variables.
           *
           * If a value whose type
           * is annotated with this annotation is dereferenced without checking for null,
           * the compiler will trigger a diagnostic as further controlled by
           * {@link #COMPILER_PB_POTENTIAL_NULL_REFERENCE}.
           *
           * The compiler may furthermore check adherence to the null specification as
           * further controlled by {@link #COMPILER_PB_NULL_SPECIFICATION_VIOLATION},
           * {@link #COMPILER_PB_POTENTIAL_NULL_SPECIFICATION_VIOLATION} and
           * {@link #COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO}.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.annotation.nullable"
           * Possible values: any legal, fully qualified Java type name; must resolve to an annotation type.
           * Default: "org.eclipse.jdt.annotation.Nullable"
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_NULLABLE_ANNOTATION_NAME = PLUGIN_ID + ".compiler.annotation.nullable";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_NONNULL_ANNOTATION_NAME (see bug 186342 for details):

          /**
           * Compiler option ID: Name of Annotation Type for Non-Null Types.
           *
           * This option defines a fully qualified Java type name that the compiler may use
           * to perform special null analysis.
           *
           * If the annotation specified by this option is applied to a type in a method
           * signature or variable declaration, this will be interpreted as a specification
           * that null is not a legal value in that position. Currently
           * supported positions are: method parameters, method return type and local variables.
           *
           * For values declared with this annotation, the compiler will never trigger a null
           * reference diagnostic (as controlled by {@link #COMPILER_PB_POTENTIAL_NULL_REFERENCE}
           * and {@link #COMPILER_PB_NULL_REFERENCE}), because the assumption is made that null
           * will never occur at runtime in these positions.
           *
           * The compiler may furthermore check adherence to the null specification as further
           * controlled by {@link #COMPILER_PB_NULL_SPECIFICATION_VIOLATION},
           * {@link #COMPILER_PB_POTENTIAL_NULL_SPECIFICATION_VIOLATION} and
           * {@link #COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO}.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.annotation.nonnull"
           * Possible values: any legal, fully qualified Java type name; must resolve to an annotation type.
           * Default: "org.eclipse.jdt.annotation.NonNull"
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_NONNULL_ANNOTATION_NAME = PLUGIN_ID + ".compiler.annotation.nonnull";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_NONNULL_BY_DEFAULT_ANNOTATION_NAME (see bug 186342 for details):

          /**
           * Compiler option ID: Name of Annotation Type to specify a nullness default for unannotated types.
           *
           * This option defines a fully qualified Java type name that the compiler may use
           * to perform special null analysis.
           *
           * If the annotation is applied without an argument, all unannotated types in method signatures
           * within the annotated element will be treated as if they were specified with the non-null annotation
           * (see {@link #COMPILER_NONNULL_ANNOTATION_NAME}).
           *
           * If the annotation is applied with the constant false as its argument
           * all corresponding defaults at outer scopes will be canceled for the annotated element.
           * This includes defaults specified using this annotation type or a default defined using
           * the compiler option {@link #COMPILER_NONNULL_IS_DEFAULT}.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.annotation.nonnullbydefault"
           * Possible values: any legal, fully qualified Java type name; must resolve to an annotation type.
           *     That annotation type should have exactly one boolean parameter.
           * Default: "org.eclipse.jdt.annotation.NonNullByDefault"
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_NONNULL_BY_DEFAULT_ANNOTATION_NAME = PLUGIN_ID + ".compiler.annotation.nonnullbydefault";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_NONNULL_IS_DEFAULT (see bug 186342 for details):

          /**
           * Compiler option ID: Globally specify non-null as the assumed default for unannotated types.
           *
           * When enabled this option globally achieves the same effect
           * as specifying {@link #COMPILER_NONNULL_ANNOTATION_NAME} does for individual elements.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.annotation.nonnullisdefault"
           * Possible values: { "disabled", "enabled" }.
           * Default: "disabled"
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_NONNULL_IS_DEFAULT = PLUGIN_ID + ".compiler.annotation.nonnullisdefault";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_NULL_SPECIFICATION_VIOLATION (see bug 186342 for details):

          /**
           * Compiler option ID: Reporting Violations of Null Specifications.
           *
           * Depending on this option, the compiler will issue either an error or a warning
           * whenever one of the following situations is detected:
           *
           * 1. A method declared with a nonnull annotation returns an expression that is
           *    statically known to evaluate to a null value.
           * 2. An expression that is statically known to evaluate to a null value is passed
           *    as an argument in a method call where the corresponding parameter of the called
           *    method is declared with a nonnull annotation.
           * 3. An expression that is statically known to evaluate to a null value is assigned
           *    to a local variable that is declared with a nonnull annotation.
           * 4. A method that overrides an inherited method declared with a nonnull annotation
           *    tries to relax that contract by specifying a nullable annotation
           *    (prohibition of contravariant return).
           * 5. A method that overrides an inherited method which has a nullable declaration
           *    for at least one of its parameters, tries to tighten that null contract by
           *    specifying a nonnull annotation for its corresponding parameter
           *    (prohibition of covariant parameters).
           *
           * The compiler options {@link #COMPILER_NONNULL_ANNOTATION_NAME} and
           * {@link #COMPILER_NULLABLE_ANNOTATION_NAME} control which annotations the compiler
           * shall interpret as nonnull or nullable annotations, respectively.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.problem.nullSpecViolation"
           * Possible values: { "error", "warning" }
           * Default: "error"
           *
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_PB_NULL_SPECIFICATION_VIOLATION = PLUGIN_ID + ".compiler.problem.nullSpecViolation";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_POTENTIAL_NULL_SPECIFICATION_VIOLATION (see bug 186342 for details):

          /**
           * Compiler option ID: Reporting Violations of Null Specifications with Potential Null Value.
           *
           * When enabled, the compiler will issue an error or a warning whenever one of the
           * following situations is detected:
           *
           * 1. A method declared with a nonnull annotation returns an expression that is
           *    statically known to evaluate to a null value on some flow.
           * 2. An expression that is statically known to evaluate to a null value on some flow
           *    is passed as an argument in a method call where the corresponding parameter of
           *    the called method is declared with a nonnull annotation.
           * 3. An expression that is statically known to evaluate to a null value on some flow
           *    is assigned to a local variable that is declared with a nonnull annotation.
           *
           * The compiler options {@link #COMPILER_NONNULL_ANNOTATION_NAME} and
           * {@link #COMPILER_NULLABLE_ANNOTATION_NAME} control which annotations the compiler
           * shall interpret as nonnull or nullable annotations, respectively.
           *
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.problem.potentialNullSpecViolation"
           * Possible values: { "error", "warning", "ignore" }
           * Default: "error"
           *
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_PB_POTENTIAL_NULL_SPECIFICATION_VIOLATION = PLUGIN_ID + ".compiler.problem.potentialNullSpecViolation";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO (see bug 186342 for details):

          /**
           * Compiler option ID: Reporting Insufficient Information for Analysing Adherence to Null Specifications.
           *
           * When enabled, the compiler will issue an error or a warning whenever one of the
           * following situations is detected:
           *
           * 1. A method declared with a nonnull annotation returns an expression for which
           *    insufficient nullness information is available for statically proving that no
           *    flow will pass a null value at runtime.
           * 2. An expression for which insufficient nullness information is available for
           *    statically proving that it will never evaluate to a null value at runtime
           *    is passed as an argument in a method call where the corresponding parameter of
           *    the called method is declared with a nonnull annotation.
           * 3. An expression for which insufficient nullness information is available for
           *    statically proving that it will never evaluate to a null value at runtime
           *    is assigned to a local variable that is declared with a nonnull annotation.
           *
           * Insufficient nullness information is usually a consequence of using other unannotated
           * variables or methods.
           *
           * The compiler options {@link #COMPILER_NONNULL_ANNOTATION_NAME} and
           * {@link #COMPILER_NULLABLE_ANNOTATION_NAME} control which annotations the compiler
           * shall interpret as nonnull or nullable annotations, respectively.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.problem.nullSpecInsufficientInfo"
           * Possible values: { "error", "warning", "ignore" }
           * Default: "warning"
           *
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_PB_NULL_SPECIFICATION_INSUFFICIENT_INFO = PLUGIN_ID + ".compiler.problem.nullSpecInsufficientInfo";

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_REDUNDANT_NULL_ANNOTATION (see bug 186342 for details):

          /**
           * Compiler option ID: Reporting Redundant Null Annotations.
           *
           * When enabled, the compiler will issue an error or a warning when a non-null annotation
           * (see {@link #COMPILER_NONNULL_ANNOTATION_NAME})
           * is applied although the same effect is already achieved by a default applicable at the
           * current location. Such a default may be effective by enabling the option
           * {@link #COMPILER_NONNULL_IS_DEFAULT} or by using the annotation specified by the option
           * {@link #COMPILER_NONNULL_BY_DEFAULT_ANNOTATION_NAME}.
           *
           * This option only has an effect if the the option {@link #COMPILER_ANNOTATION_NULL_ANALYSIS} is enabled.
           *
           * Option id: "org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation"
           * Possible values: { "error", "warning", "ignore" }
           * Default: "warning"
           *
           * @since 3.8
           * @category CompilerOptionID
           */
          public static final String COMPILER_PB_REDUNDANT_NULL_ANNOTATION = PLUGIN_ID + ".compiler.problem.redundantNullAnnotation";

- New API added to org.eclipse.jdt.core.compiler.IProblem to signal null-related issues:
  - int RequiredNonNullButProvidedNull
  - int RequiredNonNullButProvidedPotentialNull
  - int RequiredNonNullButProvidedUnknown
  - int MissingNullAnnotationType
  - int IllegalReturnNullityRedefinition
  - int IllegalRedefinitionToNonNullParameter
  - int IllegalDefinitionToNonNullParameter
  - int ParameterLackingNonNullAnnotation
  - int ParameterLackingNullableAnnotation
  - int PotentialNullMessageSendReference
  - int RedundantNullCheckOnNonNullMessageSend
  - int CannotImplementIncompatibleNullness
  - int RedundantNullAnnotation
  - int IllegalAnnotationForBaseType

### Problem Reports Fixed

363858 [dom] early throwing of AbortCompilation causes NPE in CompilationUnitResolver
331647 [compiler][null] support flexible default mechanism for null-annotations
334457 [compiler][null] check compatibility of inherited null contracts
186342 [compiler][null] Using annotations for null checking

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - November 29, 2011

## What's new in this drop

### Problem Reports Fixed

340945 Extension Request of JavaContentAssistInvocationContext
364672 [compiler] ecj fails to compile valid calls to varargs method

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - November 22, 2011

## What's new in this drop

### Problem Reports Fixed

350738 "The method is never used locally" is not shown for parameterized recursive methods
361053 java.lang.VerifyError on try-with-resources
346038 [1.5][compiler] ecj vs. javac differ for methods using vararg parameters of different primitive types
346039 [1.5][compiler] ecj vs. javac differ for varargs overloading
362279 ecj vs. javac differ for automatic boxing of implicitly converted types
362591 VerifyError: Inconsistent stackmap frames

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - November 15, 2011
Project org.eclipse.jdt.core v_C20 (cvs).

## What's new in this drop

### Problem Reports Fixed

361327 Static import resolution does not record all static elements being imported
346042 [1.5][compiler] ecj compiles code rejected by javac for varargs parameters of inaccessible type
361938 Formerly working JLS3 parser not working -- Scanner reports com.sun.jdi.InvocationException occurred invoking method.
359284 Unnecessary checkast from null
361441 Error in JDT Core during AST creation
363293 resource leaks in org.eclipse.jdt.compiler.tool.tests

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - November 8, 2011
Project org.eclipse.jdt.core v_C19 (cvs).

## What's new in this drop

### Problem Reports Fixed

361922 Fup of 357425: ensure all reported regressions are witnessed by tests
354766 Javadoc content does not appear in content assist info window for non-static inner class constructors

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 25, 2011 - 3.8.0 M3
Project org.eclipse.jdt.core v_C18 (cvs).

## What's new in this drop

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 20, 2011
Project org.eclipse.jdt.core v_C17 (cvs).

## What's new in this drop

- Added a new API OUTPUT_LOCATION_OVERLAPPING_ANOTHER_SOURCE(see bug 287164 for details):

      /**
       * Status constant indicating that the default or specific output folder is overlapping
       * with another source location.
       * @since 3.8
       */
      public static final int OUTPUT_LOCATION_OVERLAPPING_ANOTHER_SOURCE = 1013;

- Added a new option CORE_OUTPUT_LOCATION_OVERLAPPING_ANOTHER_SOURCE to report an output location overlapping another source location(see bug 287164 for details):

      /**
       * Core option ID: Reporting an output location overlapping another source location.
       * Indicate the severity of the problem reported when a source entry's output location overlaps another
       * source entry.
       *
       * Option id:"org.eclipse.jdt.core.classpath.outputOverlappingAnotherSource"
       * Possible values:{ "error", "warning", "ignore" }
       * Default:"error"
       *
       * @since 3.8
       */
      public static final String CORE_OUTPUT_LOCATION_OVERLAPPING_ANOTHER_SOURCE = PLUGIN_ID + ".classpath.outputOverlappingAnotherSource";

### Problem Reports Fixed

287164 Report build path error if source folder has other source folder as output folder
359721 [options] add command line option for new warning token "resource"
343480 [compiler] Incorrect/confusing error message on inner class static field declaration
318401 FUP of 317858: Clarify eclipse compiler behavior on imports & shadowing
360317 [compiler] report switch over enum in 1.4- mode
360164 Compile error in XSDImpl
359727 [1.7][doc] Update doc for new resource leak warnings

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 18, 2011
Project org.eclipse.jdt.core v_C16 (cvs).

## What's new in this drop

- Added a new API IBootstrapMethodsEntry to describe the bootstrap method table entry(see bug 359943 for details):

      /**
       * Description of a bootstrap method table entry as specified in the JVM specifications.
       *
       * This interface may be implemented by clients.
       *
       * @since 3.8
       */
      public interface IBootstrapMethodsEntry;

- Added a new API IBootstrapMethodsAttribute to describe the bootstrap method attribute(see bug 359943 for details):

      /**
       * Description of a bootstrap methods attribute as described in the JVM specifications.
       *
       * This interface may be implemented by clients.
       *
       * @since 3.8
       */
      public interface IBootstrapMethodsAttribute

- Added a new API in IBootstrapMethodsAttribute to obtain the number of bootstrap methods of this entry(see bug 359943 for details):

      /**
       * Answer back the number of bootstrap methods of this entry as specified in
       * the JVM specifications.
       *
       * @return the number of bootstrap methods of this entry as specified in
       * the JVM specifications
       */
      int getBootstrapMethodsLength();

- Added a new API in IBootstrapMethodsAttribute to obtain the bootstrap methods table of this entry(see bug 359943 for details):

      /**
       * Answer back the bootstrap methods table of this entry as specified in
       * the JVM specifications. Answer an empty array if none.
       *
       * @return the bootstrap methods table of this entry as specified in
       * the JVM specifications. Answer an empty array if none
       */
      IBootstrapMethodsEntry[] getBootstrapMethods();

- Added IConstantPoolEntry2 to describe the new constant pool entry from Java 7 onwards(see bug 359943 for details):

      /**
       * Description of the new constant pool entry as described in the JVM specifications
       * added for Java 7 support.
       * Its contents is initialized according to its kind.
       *
       * This interface may be implemented by clients.
       *
       * @since 3.8
       */
      public interface IConstantPoolEntry2

- Added new API in IConstantPoolEntry2 to return the descriptor index for MethodType entry(see bug 359943 for details):

      /**
       * Returns the descriptor index. This value is set only when decoding a MethodType entry.
       * The value is unspecified otherwise. The corresponding UTF8 value can be retrieved by using
       * {@link #getMethodDescriptor()}.
       *
       * @return the descriptor index. This value is set only when decoding a MethodType entry.
       * @see IConstantPoolConstant#CONSTANT_MethodType
       */
      int getDescriptorIndex();

- Added new API in IConstantPoolEntry2 to return the reference kind for MethodHandle entry(see bug 359943 for details):

      /**
       * Returns the reference kind. This value is set only when decoding a MethodHandle entry.
       * The value is unspecified otherwise.
       *
       * @return the reference kind. This value is set only when decoding a MethodHandle entry.
       * @see IConstantPoolConstant#CONSTANT_MethodHandle
       */
      int getReferenceKind();

- Added new API in IConstantPoolEntry2 to return the reference index for MethodHandle entry(see bug 359943 for details):

      /**
       * Returns the reference index. This value is set only when decoding a MethodHandle entry.
       * The value is unspecified otherwise.
       *
       * @return the reference kind. This value is set only when decoding a MethodHandle entry.
       * @see IConstantPoolConstant#CONSTANT_MethodHandle
       */
      int getReferenceIndex();

- Added new API in IConstantPoolEntry2 to return the bootstrap method attribute index(see bug 359943 for details):

      /**
       * Returns the bootstrap method attribute index. This value is set only when decoding a InvokeDynamic entry.
       * The value is unspecified otherwise.
       *
       * @return the reference kind. This value is set only when decoding a MethodHandle entry.
       * @see IConstantPoolConstant#CONSTANT_InvokeDynamic
       */
      int getBootstrapMethodAttributeIndex();

- Added new API in IByteCodeVisitor(see bug 359943 for details):

      	/**
      	 * @since 3.8
      	 */
      	void _invokedynamic(
      			int pc,
      			int index,
      			IConstantPoolEntry invokeDynamic);

  This has been added in place of the deprecated API

      	void _invokedynamic(
      			int pc,
      			int index,
      			IConstantPoolEntry nameEntry,
      			IConstantPoolEntry descriptorEntry);

### Problem Reports Fixed

359943 invokedynamic in generated class file is not correctly recognized by the eclipse compiler
360644 Scope.isDefinedInSameUnit(ReferenceBinding) fails for a ParameterizedTypeBinding
358762 NPE in JDT compiler
360328 [compiler][null] detect null problems in nested code (local class inside a loop)

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 11, 2011
Project org.eclipse.jdt.core v_C15 (cvs).

## What's new in this drop

### Problem Reports Fixed

350285 ASTRewrite destroys formatting on CatchClause#setBody(copyTarget)
353474 type converters should include more annotations

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 5, 2011
Project org.eclipse.jdt.core v_C14 (cvs).

## What's new in this drop

### Problem Reports Fixed

354181 migrate jdt.core to git
359831 Fix messages for "new warning for missing try-with-resources"

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - October 3, 2011
Project org.eclipse.jdt.core v_C13 (cvs).

## What's new in this drop

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_UNCLOSED_CLOSEABLE to raise a warning or error when a resource of type Closeable or AutoCloseable is not closed locally. (see details in bug 349326):

      	/**
      	 * Compiler option ID: Reporting a resource that is not closed properly.
      	 *
      	 * When enabled, the compiler will issue an error or a warning if
      	 * a local variable holds a value of type java.lang.AutoCloseable (compliance>=1.7)
      	 * or a value of type java.io.Closeable (compliance<=1.6) and if
      	 * flow analysis shows that the method close() is not invoked locally on that value.
      	 *
      	 * Option id: "org.eclipse.jdt.core.compiler.problem.reportUnclosedCloseable"
      	 * Possible values: { "error", "warning", "ignore" }
      	 * Default: "warning"
      	 *
      	 * @since 3.8
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_UNCLOSED_CLOSEABLE = PLUGIN_ID + ".compiler.problem.unclosedCloseable"; //$NON-NLS-1$

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_POTENTIALLY_UNCLOSED_CLOSEABLE to raise a warning or error when a resource of type Closeable or AutoCloseable is not definitely closed locally. (see details in bug 349326):

      	/**
      	 * Compiler option ID: Reporting a resource that may not be closed properly.
      	 *
      	 * When enabled, the compiler will issue an error or a warning if
      	 * a local variable holds a value of type java.lang.AutoCloseable (compliance>=1.7)
      	 * or a value of type java.io.Closeable (compliance<=1.6) and if
      	 * flow analysis shows that the method close() is
      	 * not invoked locally on that value for all execution paths.
      	 *
      	 * Option id: "org.eclipse.jdt.core.compiler.problem.reportPotentiallyUnclosedCloseable"
      	 * Possible values: { "error", "warning", "ignore" }
      	 * Default: "ignore"
      	 *
      	 * @since 3.8
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_POTENTIALLY_UNCLOSED_CLOSEABLE = PLUGIN_ID + ".compiler.problem.potentiallyUnclosedCloseable"; //$NON-NLS-1$

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_EXPLICITLY_CLOSED_AUTOCLOSEABLE to raise a warning or error when a resource of type AutoCloseable is closed explicitly rather than using a try-with-resources block. (see details in bug 349326):

      	/**
      	 * Compiler option ID: Reporting a resource that is not managed by try-with-resources.
      	 *
      	 * When enabled, the compiler will issue an error or a warning if a local variable
      	 * holds a value of type java.lang.AutoCloseable, and if the method
      	 * close() is explicitly invoked on that resource, but the resource is
      	 * not managed by a try-with-resources block.
      	 *
      	 * Option id: "org.eclipse.jdt.core.compiler.problem.reportPotentiallyUnclosedCloseable"
      	 * Possible values: { "error", "warning", "ignore" }
      	 * Default: "ignore"
      	 *
      	 * @since 3.8
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_EXPLICITLY_CLOSED_AUTOCLOSEABLE = PLUGIN_ID + ".compiler.problem.explicitlyClosedAutoCloseable"; //$NON-NLS-1$

### Problem Reports Fixed

359495 [1.7][compiler] VerifyError in try-finally block with lock encompassing for-each block and unlock in finally clause
161129 [batch][compiler] Add -warn:all to report all warnings
359646 Formatter fails silently if Java source contains 0x8000000000000000L
256796 [compiler] dead code detection: "if (DEBUG) return;" should also be trivial IF stmt
359334 Analysis for resource leak warnings does not consider exceptions as method exit points
359362 FUP of bug 349326: Resource leak on non-Closeable resource.
348186 [compiler] Improve wording for the warning for masked/hidden catch block
355838 [compiler] ecj compiles the code that javac6 rejects
349326 [1.7] new warning for missing try-with-resources
354502 Incorrect Compiler Warning: "Method can be declared as static"
241834 [search] ClassCastException during move class refactoring
358827 [1.7] exception analysis for t-w-r spoils null analysis

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - September 23, 2011
Project org.eclipse.jdt.core v_C12 (cvs).

## What's new in this drop

- Tagging to prepare for the git migration

### Problem Reports Fixed

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - September 20, 2011
Project org.eclipse.jdt.core v_C11 (cvs).

## What's new in this drop

### Problem Reports Fixed

357110 Problem with inner classes referenced from jars or class folders: "The type ... cannot be resolved"
357471 ASTParser cannot resolve binding of PackageDeclaration if class name is equal to the first segment of the package name

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - September 13, 2011 - 3.8.0 M2
Project org.eclipse.jdt.core v_C10 (cvs).

## What's new in this drop

### Problem Reports Fixed

357259 [dom] AST#newArrayType(Type, int) should allow array type as argument

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - September 9, 2011
Project org.eclipse.jdt.core v_C09 (cvs).

## What's new in this drop

### Problem Reports Fixed

354332 DeltaProcessor exhibits O(N^2) behavior
355605 NPE in HierarchyResolver
347396 ASTParser returns empty or partial AST if we parse the the body contains empty for loop
356746 ECJ accepts illegal unicode escape sequences
337935 Test failures when run as an IDE (org.eclipse.sdk.ide)

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - September 6, 2011
Project org.eclipse.jdt.core v_C08 (cvs).

## What's new in this drop

### Problem Reports Fixed

356325 [select] Open declaration on a constructor of a local class with type parameters doesn't work
24804 Organize imports wipes comments between statements [code manipulation]
356363 Many links to java.sun.com are broken
346529 Don't show "The method * from the type * is never used locally" warning for private methods annotated with standard annotations like @PostConstruct

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - August 30, 2011
Project org.eclipse.jdt.core v_C07 (cvs).

## What's new in this drop

### Problem Reports Fixed

356002 VerifyError "Inconsistent stackmap frames" for switch-string statement with nested for-loop
350095 The 2000th (0-based) enum constant is null
234074 Compliance_1_5#test088 fails when launched with JRE 6 and -Dcompliance=1.5
350612 OutOfMemoryError while "Initializing Java Tooling"
348024 Empty AST for class with static inner class in a package with package-info.java
346010 [model] strange initialization dependency in OptionTests
353640 AIOOBE in ParameterizedTypeBinding.substitute

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - August 23, 2011
Project org.eclipse.jdt.core v_C06 (cvs).

## What's new in this drop

### Problem Reports Fixed

348507 [search] Hyperlinks from the Java Stack Trace console should search the workspace in CLASSPATH order
345949 [compiler] Inconsistent name clash behavior vis-a-vis javac7
354766 Javadoc content does not appear in content assist info window for non-static inner class constructors
353535 Eclipse compiler generates wrong bytecode for nested try-with-resources statements
354579 Fup of bug 289247: Investigate validity of the fix vis-a-vis JLS.
354078 [dom] ASTConverter.removeTrailingCommentFromExpressionEndingWithAParen() ??

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - August 16, 2011
Project org.eclipse.jdt.core v_C05 (cvs).

## What's new in this drop

### Problem Reports Fixed

354554 [null] conditional with redundant condition yields weak error message
354536 compiling package-info.java still depends on the order of compilation units
292087 anonymous class in array member initializer confuses content assist
352412 Switching on strings in 1.6- modes produces misleading message
317719 Method incorrectly flagged as having same erasure output when return type differs

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - August 9, 2011
Project org.eclipse.jdt.core v_C04 (cvs).

## What's new in this drop

- Added a new API in BindingKey to return it's declaring type(see bug 351165 for details):

      /**
       * Returns the binding key of the declaring type of the element represented by this binding key. If the binding key
       * does not represent a member or if the member doesn't have a declaring type, returns null.
       *
       * Note that only binding keys for references to methods and fields
       * are fully supported. The binding keys for declarations will not have type parameters.
       *
       * @return the type binding key or null
       * @since 3.7.1
       */
      public BindingKey getDeclaringType();

### Problem Reports Fixed

354052 [1.7] NPE in org.eclipse.jdt.internal.compiler.ClassFile.traverse(ClassFile.java:4507)
346741 [1.7][doc] Update doc when java 1.7 support is done
353238 [1.7] update unusedTypeArgs option description for the batch compiler
353089 [1.7][compiler] Incorrect name clash error with ecj
351165 [1.7] API to get the type arguments of the declaring type for constructor invocations

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - August 3, 2011 - 3.8.0 M1
Project org.eclipse.jdt.core v_C03 (cvs).

## What's new in this drop

### Problem Reports Fixed

353553 Rename readableNames.properties to avoid translation
353085 [1.7] Cannot cast from Object to boolean

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - July 28, 2011
Project org.eclipse.jdt.core v_C02 (cvs).

## What's new in this drop

### Problem Reports Fixed

353250 [1.7] merging Java 7 work to HEAD

# Eclipse Platform Build Notes
Java development tools core

Eclipse SDK 3.8.0 - July 27, 2011
Project org.eclipse.jdt.core v_C01 (cvs).

## What's new in this drop

- Bundle version has been incremented to 3.8.0.qualifier
- Added a new API in CompletionProposal to tell whether it diamond operator can be used (see bug 351444 for details):

      /**
       * Returns whether it is safe to use the '<>' (diamond) operator in place of explicitly specifying
       * type arguments for this proposal.
       *
       * This is only relevant for source level 1.7 or greater.
       *
       * @param coreContext the completion context associated with the proposal
       * @since 3.7.1
       * @return true if it is safe to use the diamond operator for the constructor invocation,
       * false otherwise. Also returns false for source levels below 1.7
       */
      public boolean canUseDiamond(CompletionContext coreContext);

- New Javacore option org.eclipse.jdt.core.JavaCore.COMPILER_PB_REDUNDANT_TYPE_ARGUMENTS added to raise warning or error for redundant usage of type arguments when diamond operator can be used instead. (see details in bug 340747):

      	/**
      	 * Compiler option ID: Reporting redundant specification of type arguments in class instance creation expressions.
      	 * When enabled, the compiler will issue an error or a warning if type arguments are used in a class instance creation,
      	 * when the '<>' operator can be used instead.
      	 *
      	 * This option only has an effect if the compiler compliance is 1.7 or greater.
      	 *
      	 * Option id:"org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments"
      	 * Possible values:{ "error", "warning", "ignore" }
      	 * Default:"ignore"
      	 *
      	 * @since 3.7.1
      	 * @category CompilerOptionID
      	 */
      	public static final String COMPILER_PB_REDUNDANT_TYPE_ARGUMENTS = PLUGIN_ID + ".compiler.problem.redundantSpecificationOfTypeArguments";

- Added a new API in ClassInstanceCreation to tell whether the resolved type is inferred from the assignment context:
  (see bug 350897 for details):

      	/**
      	 * Returns true if the resolved class type has been inferred
      	 * from the assignment context (JLS4 15.12.2.8), false otherwise.
      	 *
      	 * This information is available only when bindings are requested when the AST is being built.
      	 *
      	 * @return true if the resolved class type has been inferred
      	 * 	from the assignment context (JLS3 15.12.2.8), false otherwise
      	 * @since 3.7.1
      	 */
      	public boolean isResolvedTypeInferredFromExpectedType();

### Problem Reports Fixed

342936 NPEs and inconsistencies when running jdt.compiler.tool.tests against Java 7
351426 [1.7][code assist] CompletionContext.getExpectedTypesKeys() returns wrong type
353137 [1.7] Make sure TagBits.AnnotationSafeVarargs and AnnotationPolymorphicSignature are handled everywhere
353093 IMethod#getAnnotations() doesn't return @SafeVarargs of java.util.Arrays#asList(T...)
352464 [1.7] Incorrect Javadoc shown for reference of invokeExact
351498 [model]java.util.ConcurrentModificationException upon startup
352699 [1.7][compiler] Improve error range for redundant type parameter warning
352665 [1.6][compiler] Internal compiler Error: ArrayIndexOutOfBoundsException when compiling certain classes with outer access error
352553 [1.7] 'char a\u200b' is being accepted in 1.6 mode
352496 tests using wrong version of JCL
300576 NPE Computing type hierarchy when compliance doesn't match libraries
352145 [1.7][compiler] VerifyError with aload0 being involved into ConditionalExpression
351965 [1.7] CCE when using diamond in 1.4
351444 [1.7][content assist] Need to know whether I can use diamond
352014 \u1369 no longer accepted as a valid java identifier part
351653 [1.7][compiler]: VerifyError in try statement with finally and return statements
340747 [1.7][compiler] compiler option to warn when diamond can be used, but type args are used instead.
350895 [1.7][formatter] New option to wrap before/after '|' in multi-catch
350652 [1.7][assist] Completion issues with multicatch (FUP of 343637)
347503 [DOM] ASTParser.setEnvironment() ignores includeRunningVMBootclasspath parameter
350897 [1.7][api] ClassInstanceCreation#isResolvedTypeInferredFromExpectedType()
351170 [1.7] ASTRewrite issues in Try with resources
348493 [1.7] Improve error msg for Diamond operator in 1.5 mode
350885 [Search] The pull up refactoring throws an NPE when pulling up a member that already exists in the superclass
350611 [1.7] Inconsistent error msg and error location for illegal diamond
350579 [1.7][compiler] VerifyError running example from bug 338402 comment 5
350767 [1.7][assist] CCE while invoking assist on a multi-catch block
349312 [1.7][compiler] improved problem messages
350003 [1.7] [compiler] AnnotationPolymorphicSignature tag is not being set to invokeExact while compiling MethodHandle source file
350496 [1.7] @PolymorphicSignature IMethods are missing the annotation
349314 [1.7][formatter] Line wrapping for multi-catch arguments
350039 [1.7] ASTParser#createASTs(..) doesn't resolve IMethodBinding for @PolymorphicSignature method reference
349396 [1.7][formatter] Line wrapping and indentation options for try with resources
350361 [1.7] Unhandled exception type Exception
349488 [1.7] IMethodBinding#getMethodDeclaration() should return the declaration of @PolymorphicSignature methods
349487 [1.7] IMethodBinding#getJavaElement() returns inexistent element for @PolymorphicSignature methods
349862 [1.7] NPE when trying to use UnionType as TryStatement resource
349864 [1.7][compiler] Error message considers AutoCloseable as class
348956 [1.7] ITypeBinding#isAssignmentCompatible(ITypeBinding) returns different result
349312 [1.7][compiler] improved problem messages
349008 [1.7] Ugly formatting for try with resources
349072 [1.7] "Cannot infer elided type(s)" sounds too elite
348705 [1.7][compiler] Improve error message for unhandled IOException generated due to compiler-generated close()
348050 [1.7] Error in JDT Core during AST creation
348406 [1.7] Incorrect error msg on try with resources in 1.5 mode
348492 [1.7] Improve error msg on strings in switch in 1.5 mode
348491 [1.7] Rename IProblem.IllegalBinaryLiteral to BinaryLiteralNotBelow17 and IProblem.IllegalUsageOfUnderscore to UnderscoreInLiteralsNotBelow17
348369 [1.7] Missing error "No exception of type Exception[] can be thrown"
348379 [1.7][compiler] Null pointer access warning for strings in switch
346415 [1.7][assist] No proposal inside catch statement from 3rd catch block onwards
346454 [1.7][content assist]Getting NegativeArraySizeException while trying content assist after diamond
347600 [1.7][compiler] Suspect bounds check failure after inference.
347746 [1.7][compiler] Bounds check failure during method inference
283353 [1.5][compiler] Eclipse compiler shows error on javac-valid construct: Bound mismatch
347145 [1.7][compiler] Bounds check issue with raw types in method inference
347426 [1.7][compiler] ecj behavior differs from javac
344522 [1.7] Incorrect source range for ParameterizedType in case of Diamond
341795 [1.7][compiler] Cannot assign a generic method with multiple bounds return value to any variable
242159 [1.7][compiler] type inference with unbounded wildcard in result type
343693 [1.7] Adjust subclasses of AllocationExpression for <> support
343637 [1.7] Already used exception offered again in a Mulicatch block
345968 [1.7][compiler] NPE while using diamond for inner class allocation
334313 [1.5][compiler] Bug in the way eclipse handles overriding of generic abstract method by a non-abstract method
346029 [1.7][compiler] Eclipse compiles code rejected by JDK7
345628 [1.7] Rename disjunctive type to union type
345559 [1.7][compiler] Type inference for generic allocation can be avoided for invalid constructor
342819 Code rejected by javac with name clash error compiles under eclipse.
334306 [1.7][compiler] name clash reported in javac 1.7 and not in javac 1.6
345579 [1.7][compiler] Weird error message in rethrow site
345522 [1.7][compiler] Compilers fails to compute precisely rethrown types
344824 [1.7][compiler] Incorrect error range for unreachable catch block error in multi-catch
340486 [1.7][compiler] Missing error in multi catch scenario
345359 [1.7][compiler] AIOOB on diamond construct with argument error
345239 [1.7][compiler] Compiler should issue better diagnostics for use of <> with anonymous classes
344655 [1.7][compiler] Prohibit use of <> with explicit type arguments to generic constructor
328575 Inheritance of annotation fails with generic classes
343785 [1.7] Incorrect line numbers in stack trace with try with resources
343687 [1.7] IAE in NumberLiteral#setToken(String) for binary tokens and tokens with underscore
339478 [1.7][compiler] support for diamond case
343476 [1.7][assist] propose String variables and fields inside catch expression
292087 anonymous class in array member initializer confuses content assist
343475 [1.7] Compiler warning for invalid type inside switch needs to be improved
342416 [1.7] Signature#createIntersectionTypeSignature(..) should take array of signatures
340059 [1.7] IAE when dealing with Signature of disjunctive type
338789 [1.7][assist] No proposal inside a multi catch statement after '|'
341333 [1.7][compiler] DisjunctiveTypeReference#resolveType(..) does not set the value for DisjunctiveTypeReference$resolvedType
340634 [1.7][compiler][multicatch] Compiler accepts type variables as catch parameter type
340626 [1.7][compiler] Inconsistent source pinpointing in multi-catch blocks
340513 [1.7][compiler] Unicode 6.0 characters work at compiler compliance level 1.5 and 1.6
340445 [1.7] ASTRewriteAnalyzer and ASTRewriteFlattener need updates
340372 [1.7] NaiveASTFlattener needs to support the new AST nodes
340365 [1.7] Problems in new APIs (TryStatementWithResources, DisjunctiveType)
340375 [1.7] Merge TryStatementWithResources into TryStatement
340022 [1.7][compiler] Support for precise rethrow
339837 [1.7][compiler] Multicatch syntax not rejected at 1.6-
339864 [1.7] Add recovery in ASTConverter for all new constructs in JLS3 mode
338402 [1.7][compiler][enh] Open issues in try with resources implementation
337795 [1.7][compiler] Missing unchecked warning at varargs method/ctor declaration site
337802 [1.7][compiler] Usage of 0x0ffffffff is being reported as out of range. 337799 [1.7][compiler][varargs] Eclipse fails to report error on incorrect SafeVarargs usage
337738 [1.7][content assist]Test CompletionParserTest#testEA_1 fails
336782 [1.7][recovery]Extra error tokens with invalid unary operator
336322 [1.7][search]CCE while searching for a type reference in multiple catch parameters

For earlier build notes, also see build notes up to Release 3.6.