// Test case for Issue 103 import java.util.ArrayList; import java.util.List; class CC {} class HR {} // Crazy: remove the "extends HR" and it compiles public class Bug103 extends HR { // Crazy: add a 23th element as for example "hello" and it compiles // Crazy: replace IG.C with IG.C+"" and it compiles // Crazy: remove final and it compiles // Crazy: replace with new String[22] and it compiles // Crazy: reduce to less than 5 distinct values and it compiles (replace IG.D with IG.C) final String[] ids = { IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.C, IG.D, IG.E, IG.F, IG.G }; // Crazy: remove arg u ant it compiles // Crazy: remove any line of m1 and it compiles // Crazy: replace two o args by null and it compiles void m1(CC o, Object u) { String cc = m2(o); String dd = m2(o); } String m2(final CC c) { return "a"; } // Crazy: remove ids.length and it compiles // replace return type List with ArrayList and it compiles List<CC> m3(CC c) { ArrayList<CC> lc = new ArrayList<CC>(ids.length); return lc; } // Crazy: comment out the whole unused LV class and it compiles // Crazy: comment one of the following 4 lines out and it compiles static class LV { static String a = "a"; static String b = "a"; static String c = "a"; static String d = "a"; } class IG { // Crazy: comment one of the following 8 lines out and it compiles String C1 = "1"; String C2 = "1"; String C3 = "1"; String C4 = "1"; String C5 = "1"; String C6 = "1"; String C7 = "1"; String C8 = "1"; static final String C = "c"; static final String D = C; static final String E = C; static final String F = C; // Crazy: comment one of the following 18 lines out and it compiles static final String G = C; static final String H = C; static final String I = C; static final String J = C; static final String K = C; static final String L = C; static final String M = C; static final String N = C; static final String O = C; static final String P = C; static final String Q = C; static final String R = C; static final String S = C; static final String T = C; static final String U = C; static final String V = C; static final String W = C; static final String X = C; } }