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

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/ast/ASTNode.java (-1 / +1 lines)
Lines 253-259 Link Here
253
						if (varargsType.dimensions < dimensions) {
253
						if (varargsType.dimensions < dimensions) {
254
							scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
254
							scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
255
						} else if (varargsType.dimensions == dimensions 
255
						} else if (varargsType.dimensions == dimensions 
256
										&& varargsType.leafComponentType != lastArgType.leafComponentType()
256
										&& varargsType.leafComponentType.erasure() != lastArgType.leafComponentType().erasure()
257
										&& lastArgType.isCompatibleWith(varargsType)) {
257
										&& lastArgType.isCompatibleWith(varargsType)) {
258
							scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
258
							scope.problemReporter().varargsArgumentNeedCast(method, lastArgType, invocationSite);
259
						}
259
						}
(-)compiler/org/eclipse/jdt/internal/compiler/ast/CastExpression.java (-1 / +8 lines)
Lines 253-260 Link Here
253
						ArrayBinding varargsType = (ArrayBinding) binding.parameters[varargsIndex];
253
						ArrayBinding varargsType = (ArrayBinding) binding.parameters[varargsIndex];
254
						TypeBinding lastArgType = alternateArgumentTypes[varargsIndex];
254
						TypeBinding lastArgType = alternateArgumentTypes[varargsIndex];
255
						// originalType may be compatible already, but cast mandated to clarify between varargs/non-varargs call
255
						// originalType may be compatible already, but cast mandated to clarify between varargs/non-varargs call
256
						if (lastArgType.isCompatibleWith(varargsType.elementsType()))
256
						int dimensions = lastArgType.dimensions();
257
						if (varargsType.dimensions < dimensions) {
257
							return;
258
							return;
259
						} else if (varargsType.dimensions == dimensions) {
260
							if (lastArgType.isCompatibleWith(varargsType.elementsType())
261
									&& lastArgType.isCompatibleWith(varargsType)) {
262
								return;
263
							}
264
						}						
258
				   }
265
				   }
259
				}
266
				}
260
				for (int i = 0; i < argumentLength; i++) {
267
				for (int i = 0; i < argumentLength; i++) {

Return to bug 139931