code: package com.puppycrawl.tools.checkstyle.grammar;
  
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.List;
  
  @SuppressWarnings("serial")
  class InputRegressionJavaClass2 extends ArrayList implements List, Collection {
      public InputRegressionJavaClass2() { super(); }
  
      @Override
      public int size() { return super.size(); }
      @Override()
      public boolean isEmpty() { return InputRegressionJavaClass2.super.isEmpty(); }
  
      public class Inner1 {
          public void m() {
              class Inner2 {
              }
          };
  
          public InputRegressionJavaClass2 m2() {
              return InputRegressionJavaClass2.this;
          }
      }
  
      public void m() { this.new Inner1().m(); }
  }
  class _c1 {}
  abstract class c2 {}
  class c3<A> { public c3<A> m(){return null;} }
  class c4<A,B> extends c3<A> {
      class c4a {}
  
      public c4() { <String>super(); }
      public c3<A> m() { return super.<A>m(); }
  }
  class c5 extends c4.c4a {
      c5() { new c4().super(); }
      c5(int a) { new c4().<String>super(); }
  }
  interface i1 {}
  class c6<T extends c3<T> & i1> {}
  