code: protected void _computeTypes(XDoWhileExpression object, ITypeComputationState state) {
  		ITypeComputationResult loopBodyResult = computeWhileLoopBody(object, state, false);
  		boolean noImplicitReturn = (loopBodyResult.getConformanceFlags() & ConformanceFlags.NO_IMPLICIT_RETURN) != 0;
  		LightweightTypeReference primitiveVoid = getPrimitiveVoid(state);
  		if (noImplicitReturn)
  			state.acceptActualType(primitiveVoid, ConformanceFlags.NO_IMPLICIT_RETURN | ConformanceFlags.UNCHECKED);
  		else
  			state.acceptActualType(primitiveVoid);
  	}
docs: Since we are sure that the loop body is executed at least once, the early exit information
  of the loop body expression can be used for the outer expression.