void () { @Language("JAVA") String classText = """ /** @noinspection ALL*/ class SomeClass { SomeClass() { System.out.println((new int[0])[1]); } static class Inner implements Runnable { int test = 4; public void run() { try { System.out.println(test + test() + SomeClass.test()); } catch(Exception ex) { throw new RuntimeException(ex); } } int test() { return 0; } } private static int test() { new SomeClass() {}; return 1; } public static void main(String[] args) { class X { public void run() { new Runnable() { public void run() { Runnable inner = new Inner(); inner.run();X.this.run(); } }.run(); } } Runnable r = () -> new X().run(); r.run(); } }"""; List<Trinity<String, Integer, Integer>> traceAndPositions = Arrays.asList( Trinity.create("Exception in thread \"main\" java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0\n", null, null), Trinity.create("\tat SomeClass$Inner.run(SomeClass.java:12)\n", 12, 15), Trinity.create("\tat SomeClass$1X$1.run(SomeClass.java:27)\n", 27, 19), Trinity.create("\tat SomeClass$1X.run(SomeClass.java:29)\n", 29, 11), Trinity.create("\tat SomeClass.lambda$main$0(SomeClass.java:32)\n", 32, 32), Trinity.create("\tat SomeClass.main(SomeClass.java:33)\n", 33, 7), Trinity.create("Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 0\n", null, null), Trinity.create("\tat SomeClass.<init>(SomeClass.java:4)\n", 4, 37), Trinity.create("\tat SomeClass$1.<init>(SomeClass.java:18)\n", 18, 9), Trinity.create("\tat SomeClass.test(SomeClass.java:18)\n", 18, 9), Trinity.create("\tat SomeClass.access$000(SomeClass.java:2)\n", 2, 1), Trinity.create("\tat SomeClass$Inner.run(SomeClass.java:10)\n", 10, 54)); checkColumnFinder(classText, traceAndPositions); }