1   package com.puppycrawl.tools.checkstyle.grammar;
2   
3   import java.util.ArrayList;
4   import java.util.Collection;
5   import java.util.List;
6   
7   @SuppressWarnings("serial")
8   class InputRegressionJavaClass2 extends ArrayList implements List, Collection {
9       public InputRegressionJavaClass2() { super(); }
10  
11      @Override
12      public int size() { return super.size(); }
13      @Override()
14      public boolean isEmpty() { return InputRegressionJavaClass2.super.isEmpty(); }
15  
16      public class Inner1 {
17          public void m() {
18              class Inner2 {
19              }
20          };
21  
22          public InputRegressionJavaClass2 m2() {
23              return InputRegressionJavaClass2.this;
24          }
25      }
26  
27      public void m() { this.new Inner1().m(); }
28  }
29  class _c1 {}
30  abstract class c2 {}
31  class c3<A> { public c3<A> m(){return null;} }
32  class c4<A,B> extends c3<A> {
33      class c4a {}
34  
35      public c4() { <String>super(); }
36      public c3<A> m() { return super.<A>m(); }
37  }
38  class c5 extends c4.c4a {
39      c5() { new c4().super(); }
40      c5(int a) { new c4().<String>super(); }
41  }
42  interface i1 {}
43  class c6<T extends c3<T> & i1> {}