Bug 97246 Convert to enhanced for misses cases with cast
RC1 The following case is missed: public void testNix() { List list= new ArrayList(); for (Iterator iterator = list.iterator(); iterator.hasNext();) { Object element = iterator.next(); } }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/ConvertIterableLoopProposal.java
* @param relevance the relevance of the proposal
	 * @param image the image of the proposal
	 */
	public ConvertIterableLoopProposal(final String name, final ICompilationUnit unit, final ForStatement statement, final int relevance, final Image image) {
		super(name, unit, null, relevance, image);
		fStatement= statement;
		fAst= statement.getAST();
	}
	/**
	 * Returns the expression for the enhanced for statement.
	 * 
	 * @param rewrite the ast rewrite to use
	 * @return the expression node
	 */
	private Expression getExpression(final ASTRewrite rewrite) {
		if (fExpression instanceof MethodInvocation)
			return (MethodInvocation) rewrite.createMoveTarget(fExpression);
		return (Expression) ASTNode.copySubtree(rewrite.getAST(), fExpression);
	}
	/**
	 * Returns the iterable type from the iterator type binding.
	 * 
	 * @param iterator the iterator type binding, or <code>null</code>
	 * @return the iterable type
	 */
	private ITypeBinding getIterableType(final ITypeBinding iterator) {
		if (iterator != null) {
			final ITypeBinding[] bindings= iterator.getTypeArguments();
			if (bindings.length > 0)
				return bindings[0];