View | Details | Raw Unified | Return to bug 76682
Collapse All | Expand All

(-)QualifiedNameReference.java (-17 / +19 lines)
Lines 265-287 Link Here
265
		if (runtimeTimeType == null || compileTimeType == null)
265
		if (runtimeTimeType == null || compileTimeType == null)
266
			return;		
266
			return;		
267
		// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)
267
		// set the generic cast after the fact, once the type expectation is fully known (no need for strict cast)
268
		FieldBinding field = null;
268
		if ((bits & FIELD) != 0) {
269
		int length = this.otherBindings == null ? 0 : this.otherBindings.length;
269
		    FieldBinding field = null;
270
		if (length == 0) {
270
		    int length = this.otherBindings == null ? 0 : this.otherBindings.length;
271
			if (this.binding != null && this.binding.isValidBinding()) {
271
		    if (length == 0) {
272
				field = (FieldBinding) this.binding;
272
		        if (this.binding != null && this.binding.isValidBinding()) {
273
			}
273
		            field = (FieldBinding) this.binding;
274
		} else {
274
		        }
275
			field  = this.otherBindings[length-1];
275
		    } else {
276
		}
276
		        field  = this.otherBindings[length-1];
277
		if (field != null) {
277
		    }
278
			FieldBinding originalBinding = field.original();
278
		    if (field != null) {
279
			if (originalBinding != field) {
279
		        FieldBinding originalBinding = field.original();
280
			    // extra cast needed if method return type has type variable
280
		        if (originalBinding != field) {
281
			    if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {
281
		            // extra cast needed if method return type has type variable
282
			    	setGenericCast(length,originalBinding.type.genericCast(runtimeTimeType));
282
		            if ((originalBinding.type.tagBits & TagBits.HasTypeVariable) != 0 && runtimeTimeType.id != T_Object) {
283
			    }
283
		                setGenericCast(length,originalBinding.type.genericCast(runtimeTimeType));
284
			} 	
284
		            }
285
		        } 	
286
		    }
285
		}
287
		}
286
		super.computeConversion(scope, runtimeTimeType, compileTimeType);
288
		super.computeConversion(scope, runtimeTimeType, compileTimeType);
287
	}
289
	}

Return to bug 76682