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
InfixExpression infix= (InfixExpression) parent;
					Expression leftOperand= infix.getLeftOperand();
					Expression rightOperand= infix.getRightOperand();
					ITypeBinding thisBinding= null;
					if (child == rightOperand)
						thisBinding= rightOperand.resolveTypeBinding();
					else if (child == leftOperand)
						thisBinding= leftOperand.resolveTypeBinding();
					ITypeBinding parentBinding= infix.resolveTypeBinding();
					if (thisBinding != null && parentBinding != null) {
						if (!parentBinding.isAssignmentCompatible(thisBinding)) {
							
							if (child == rightOperand && !thisBinding.isPrimitive())
								return leftOperand.resolveTypeBinding();
							else if (child == leftOperand && !thisBinding.isPrimitive())
								return rightOperand.resolveTypeBinding();
						}
					}
					break;
				case ASTNode.POSTFIX_EXPRESSION:
					PostfixExpression postfix= (PostfixExpression) parent;
					return postfix.getOperand().resolveTypeBinding();
			}
			if (isPropagatingNode(child, parent))
				return ((Expression) parent).resolveTypeBinding();
			return null;
		}
		/**
		 * Returns the arguments of a method-like <code>ASTNode</code>.