Lines 11-17
Link Here
|
11 |
package org.eclipse.jdt.internal.compiler.ast; |
11 |
package org.eclipse.jdt.internal.compiler.ast; |
12 |
|
12 |
|
13 |
import org.eclipse.jdt.internal.compiler.ASTVisitor; |
13 |
import org.eclipse.jdt.internal.compiler.ASTVisitor; |
14 |
import org.eclipse.jdt.internal.compiler.classfmt.ClassFileConstants; |
|
|
15 |
import org.eclipse.jdt.internal.compiler.codegen.*; |
14 |
import org.eclipse.jdt.internal.compiler.codegen.*; |
16 |
import org.eclipse.jdt.internal.compiler.flow.*; |
15 |
import org.eclipse.jdt.internal.compiler.flow.*; |
17 |
import org.eclipse.jdt.internal.compiler.impl.Constant; |
16 |
import org.eclipse.jdt.internal.compiler.impl.Constant; |
Lines 168-178
Link Here
|
168 |
if (expression.isConstantValueOfTypeAssignableToType(expressionType, elementType) |
167 |
if (expression.isConstantValueOfTypeAssignableToType(expressionType, elementType) |
169 |
|| expressionType.isCompatibleWith(elementType)) { |
168 |
|| expressionType.isCompatibleWith(elementType)) { |
170 |
expression.computeConversion(scope, elementType, expressionType); |
169 |
expression.computeConversion(scope, elementType, expressionType); |
171 |
} else if (scope.isBoxingCompatibleWith(expressionType, elementType) |
170 |
} else if (isBoxingCompatible(expressionType, elementType, expression, scope)) { |
172 |
|| (expressionType.isBaseType() // narrowing then boxing ? |
|
|
173 |
&& scope.compilerOptions().sourceLevel >= ClassFileConstants.JDK1_5 // autoboxing |
174 |
&& !elementType.isBaseType() |
175 |
&& expression.isConstantValueOfTypeAssignableToType(expressionType, scope.environment().computeBoxingType(elementType)))) { |
176 |
expression.computeConversion(scope, elementType, expressionType); |
171 |
expression.computeConversion(scope, elementType, expressionType); |
177 |
} else { |
172 |
} else { |
178 |
scope.problemReporter().typeMismatchError(expressionType, elementType, expression, null); |
173 |
scope.problemReporter().typeMismatchError(expressionType, elementType, expression, null); |