View | Details | Raw Unified | Return to bug 282869 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/ast/CompoundAssignment.java (+6 lines)
Lines 108-113 Link Here
108
			return null;
108
			return null;
109
		}
109
		}
110
		TypeBinding originalLhsType = this.lhs.resolveType(scope);
110
		TypeBinding originalLhsType = this.lhs.resolveType(scope);
111
		boolean expressionIsCast;
112
		if ((expressionIsCast = this.expression instanceof CastExpression) == true) this.expression.bits |= ASTNode.DisableUnnecessaryCastCheck; // will check later on
111
		TypeBinding originalExpressionType = this.expression.resolveType(scope);
113
		TypeBinding originalExpressionType = this.expression.resolveType(scope);
112
		if (originalLhsType == null || originalExpressionType == null)
114
		if (originalLhsType == null || originalExpressionType == null)
113
			return null;
115
			return null;
Lines 181-186 Link Here
181
		this.expression.computeConversion(scope, TypeBinding.wellKnownType(scope, (result >>> 8) & 0x0000F), originalExpressionType);
183
		this.expression.computeConversion(scope, TypeBinding.wellKnownType(scope, (result >>> 8) & 0x0000F), originalExpressionType);
182
		this.preAssignImplicitConversion =  (unboxedLhs ? BOXING : 0) | (lhsID << 4) | (result & 0x0000F);
184
		this.preAssignImplicitConversion =  (unboxedLhs ? BOXING : 0) | (lhsID << 4) | (result & 0x0000F);
183
		if (unboxedLhs) scope.problemReporter().autoboxing(this, lhsType, originalLhsType);
185
		if (unboxedLhs) scope.problemReporter().autoboxing(this, lhsType, originalLhsType);
186
		// check need for operand cast
187
		if (expressionIsCast) {
188
			CastExpression.checkNeedForArgumentCasts(scope, this.operator, result, this.lhs, originalLhsType.id, false, this.expression, originalExpressionType.id, true);
189
		}
184
		return this.resolvedType = originalLhsType;
190
		return this.resolvedType = originalLhsType;
185
	}
191
	}
186
192

Return to bug 282869