svoid test_tok_ifCast(bool optimized default true) { testTranspilationFunction tok_ifCast( "if (a cast B) a = a.x; print(a);", "if (a instanceof B) a = ((B) a).x; print(a);", "if (a cast B && a.y) a = a.x; print(a);", "if (a instanceof B && ((B) a).y) a = ((B) a).x; print(a);", [[ if (contents cast S && isRelativeOrAbsoluteURL(contents)) ret hstylesheetsrc(contents); else ret htag("style", contents); ]], [[ if (contents instanceof S && isRelativeOrAbsoluteURL((S) contents)) ret hstylesheetsrc((S) contents); else ret htag("style", contents); ]], "if (a cast int[]) { x = a; } if (a cast long[]) { y = a; }", optimized ? "if (a instanceof int[]) { x = (int[]) a; }" + " if (a instanceof long[]) { y = (long[]) a; }" : "if (a instanceof int[]) { x = ((int[]) a); }" + " if (a instanceof long[]) { y = ((long[]) a); }", "if (a cast B) a = x(a);", "if (a instanceof B) a = x((B) a);", // type parameters (slightly dirty) "if (a cast Map) b = a;", "if (a instanceof Map) b = (Map) a;", // variable name = function name "if (map cast Map) ret map(map);", "if (map instanceof Map) ret map((Map) map);", ); }