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
* cannot be determined. Returns the <code>parent</code>'s type
		 * binding if parent is a propagating node.
		 *
		 * @param child the child node within <code>parent</code>
		 * @param parent the parent of <code>child</code>
		 * @return the type binding of <code>child</code> within
		 *         <code>parent</code>, or <code>null</code>
		 */
		private ITypeBinding getBoundType(ASTNode child, ASTNode parent) {
			if (parent == null)
				return null;
			switch (parent.getNodeType()) {
				
				case ASTNode.METHOD_INVOCATION :
				case ASTNode.SUPER_METHOD_INVOCATION :
				case ASTNode.CLASS_INSTANCE_CREATION :
				case ASTNode.CONSTRUCTOR_INVOCATION :
				case ASTNode.SUPER_CONSTRUCTOR_INVOCATION :
				case ASTNode.ENUM_CONSTANT_DECLARATION :
					if (isArgument(child)) {
						/* resolve the method binding before asking for the
						 * arguments getArguments() may return an empty list
						 * otherwise */
						IMethodBinding methodBinding= getMethodBinding(parent);
						List arguments= getArguments(parent);
						if (methodBinding != null && arguments != null) {
							int argumentIndex= arguments.indexOf(child);
							if (argumentIndex != -1) {
								ITypeBinding[] parameterTypes= methodBinding.getParameterTypes();
								if (parameterTypes.length > argumentIndex)