*** empty log message ***
diff --git a/org.eclipse.jdt.core/buildnotes_jdt-core.html b/org.eclipse.jdt.core/buildnotes_jdt-core.html
index 14f366c..cc9cd44 100644
--- a/org.eclipse.jdt.core/buildnotes_jdt-core.html
+++ b/org.eclipse.jdt.core/buildnotes_jdt-core.html
@@ -11,20 +11,26 @@
<h1>
Eclipse Platform Build Notes <br>
Java Development Tooling/Core</h1>
-Eclipse SDK Build R1.0 ???
-<br>Project org.eclipse.jdt.core v_???
+Eclipse SDK Build R1.0 Rollup2 - 7th February 2002
+<br>Project org.eclipse.jdt.core v_140
<h2>
What's new in this drop</h2>
<h3>
Problem Reports Fixed</h3>
-<a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7920">7920</a>
+<a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=9169">9169</a>
+Wrong code generation for comparison of string constants
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7445">7445</a>
+char/string concat bug
+<br><a href="http://bugs.eclipse.org/bugs/show_bug.cgi?id=7455">7455</a>
+Build problems when instance variable name matches constructor parameter name and assignment to this.name in try block
+<br><a href="http://dev.eclipse.org/bugs/show_bug.cgi?id=7920">7920</a>
JavaProject.canonicalizedPath
<h1>
Eclipse Platform Build Notes <br>
Java Development Tooling/Core</h1>
-Eclipse SDK Build R1.0 Rollup
+Eclipse SDK Build R1.0 Rollup1
<br>Project org.eclipse.jdt.core v_139a
<h2>
What's new in this drop</h2>
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
index 027cc07..29f43f2 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/EqualExpression.java
@@ -197,13 +197,19 @@
return false;
}
public final void computeConstant(TypeBinding leftTb, TypeBinding rightTb){
-
- if ( (left.constant != NotAConstant) && (right.constant != NotAConstant) )
- { constant = Constant.computeConstantOperationEQUAL_EQUAL(left.constant,rightTb.id,EQUAL_EQUAL,right.constant,rightTb.id);
+ if ((left.constant != NotAConstant) && (right.constant != NotAConstant)) {
+ constant =
+ Constant.computeConstantOperationEQUAL_EQUAL(
+ left.constant,
+ rightTb.id,
+ EQUAL_EQUAL,
+ right.constant,
+ rightTb.id);
if (((bits & OperatorMASK) >> OperatorSHIFT) == NOT_EQUAL)
- constant = Constant.fromValue(! constant.booleanValue()) ;}
- else
- constant = NotAConstant ;
+ constant = Constant.fromValue(!constant.booleanValue());
+ } else {
+ constant = NotAConstant;
+ }
}
/**
* Normal == or != code generation
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
index 144cdec..7663582 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/FieldReference.java
@@ -29,7 +29,7 @@
//by default the position are the one of the field (not true for super access)
sourceStart = (int) (pos>>>32) ;
sourceEnd = (int) (pos & 0x00000000FFFFFFFFL);
-
+ bits |= BindingIds.FIELD;
}
public FlowInfo analyseAssignment(BlockScope currentScope, FlowContext flowContext, FlowInfo flowInfo, Assignment assignment, boolean isCompound) {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
index e9fbd7f..3f9b1d6 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/ast/SingleNameReference.java
@@ -197,7 +197,8 @@
&& ((operator == PLUS) || (operator == MULTIPLY)) // only commutative operations
&& ((variableReference = (SingleNameReference) operation.right).binding == binding)
&& (operation.left.constant != NotAConstant) // exclude non constant expressions, since could have side-effect
- && ((operation.implicitConversion >> 4) != T_String)) { // exclude string concatenation which would occur backwards
+ && ((operation.left.implicitConversion >> 4) != T_String) // exclude string concatenation which would occur backwards
+ && ((operation.right.implicitConversion >> 4) != T_String)) { // exclude string concatenation which would occur backwards
// i = value + i, then use the variable on the right hand side, since it has the correct implicit conversion
variableReference.generateCompoundAssignment(currentScope, codeStream, syntheticAccessors == null ? null : syntheticAccessors[WRITE], operation.left, operator, operation.right.implicitConversion /*should be equivalent to no conversion*/, valueRequired);
return;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
index fe197d4..88fdafc 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/impl/StringConstant.java
@@ -12,10 +12,13 @@
this.value = value ;
}
public boolean compileTimeEqual(StringConstant right){
- //String are intermed in th compiler==>thus if two string constant
+ //String are intermed in the compiler==>thus if two string constant
//get to be compared, it is an equal on the vale which is done
-
- return true ;}
+ if (this.value == null) {
+ return right.value == null;
+ }
+ return this.value.equals(right.value);
+}
public String stringValue() {
//spec 15.17.11