if (BUG_82504_core_parser_CCE) { System.out.println("TypeRulesTest.testCanCast() disabled (BUG_82504_core_parser_CCE)"); return; }
	public void testIsCastCompatible() throws Exception {		if (BUG_82504_core_parser_CCE) {			System.out.println("TypeRulesTest.testCanCast() disabled (BUG_82504_core_parser_CCE)");			return;		}		StringBuffer errors= new StringBuffer();		VariableDeclarationFragment[] targets= createVariables();		for (int k= 0; k < targets.length; k++) {			for (int n= 0; n < targets.length; n++) {				VariableDeclarationFragment f1= targets[k];				VariableDeclarationFragment f2= targets[n];								String castType= f2.resolveBinding().getType().getQualifiedName();				String line= castType + " x= (" + castType + ") " + f1.getName().getIdentifier();								StringBuffer buf= new StringBuffer();				buf.append("package test1;\n");				buf.append("public class F<T, U extends Number> extends E<T, U> {\n");				buf.append("    void foo() {\n");				buf.append("        ").append(line).append(";\n");				buf.append("    }\n");				buf.append("}\n");				char[] content= buf.toString().toCharArray();								ASTParser parser= ASTParser.newParser(AST.JLS3);				parser.setSource(content);				parser.setResolveBindings(true);				parser.setProject(fJProject1);				parser.setUnitName("F.java");								CompilationUnit astRoot= null;try {				astRoot= (CompilationUnit) parser.createAST(null);				IProblem[] problems= astRoot.getProblems();				ITypeBinding b1= f1.resolveBinding().getType();				assertNotNull(b1);				ITypeBinding b2= f2.resolveBinding().getType();				assertNotNull(b2);				boolean res= b2.isCastCompatible(b1);				if (res != (problems.length == 0)) {					errors.append(line).append('\n');				}} catch (ClassCastException e) {	//TODO jdt.core bug 82504: [5.0] ClassCastException when parsing a CastExpression from type Object[] to a type variable	errors.append(line).append('\n');	errors.append(e).append('\n');	e.printStackTrace();}							}			}		assertTrue(errors.toString(), errors.length() == 0);	}