Bug 85502 [5.0][syntax coloring] Coloring of unboxing/boxing: Missing cases
20050216 The following cases seem to be missed by the boxing/unboxing syntax colorer: (enable compiler warning for (un)boxing to see where boxing occurs) public class A { private void foo1() { int a= 9; if (a == new Integer(9)) { } } private void foo2() { Integer x= 'c'; } private void foo3() { int si= true ? new Integer(0) : new Character('x'); } private void foo4() { Integer x= new Integer(9); x += 9; } private void foo5() { Integer[] a= {1, 2, 3}; int[] b= {a[0]}; } private void foo6() { Integer y= new Integer(9); switch (y) { } } private int foo7() { Integer y= new Integer(9); return y; } private Integer foo8() { int count= 9; return count; } }
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/javaeditor/SemanticHighlightings.java
return false;
			/*
			 * walk the expression tree for expressions that propagate the
			 * expression's type. Stop when the parent node is not a propagating
			 * node or if the expression's type changes from primitive to
			 * non-primitive.
			 */
			ASTNode child;
			ASTNode parent= node;
			do {
				child= parent;
				parent= child.getParent();
				ITypeBinding destinationType= getBoundType(child, parent);
				if (destinationType == null)
					return false;
				if (isAutoboxing(destinationType, thisType))
					return true;
				if (parent.getNodeType() == ASTNode.POSTFIX_EXPRESSION) {
					if (child instanceof Expression) {
						ITypeBinding binding= ((Expression) child).resolveTypeBinding();
						if (binding != null && !binding.isPrimitive())
							return true;
					}
				}
			} while (isPropagatingNode(child, parent));
			return false;
		}
		/**
		 * Returns the type binding of <code>child</code> within its
		 * <code>parent</code>. Returns <code>null</code> if the binding