1   package com.puppycrawl.tools.checkstyle.checks.naming.classtypeparametername;
2   
3   import java.io.Serializable;
4   
5   public class InputClassTypeParameterName<t>
6   {
7       public <TT> void foo() { }
8   
9       <e_e> void foo(int i) {
10      }
11  }
12  
13  class Other <foo extends Serializable & Cloneable> {
14  
15      foo getOne() {
16  	return null;//comment
17      }
18  
19      <Tfo$o2T extends foo> /*comment*/Tfo$o2T getTwo(Tfo$o2T a) {
20  	return null;
21      }
22  
23      <foo extends Runnable> foo getShadow() {
24  	return null;
25      }
26  
27      static class Junk <foo> {
28          <_fo extends foo> void getMoreFoo() {
29  	}
30      }
31  }
32  
33  class MoreOther <T extends Cloneable> {
34  
35      <E extends T> void getMore() {
36          new Other() {
37              <T> void getMoreFoo() {
38  	    }
39  	};
40  
41  //        Other o = new Other() {
42  //            <EE> void getMoreFoo() {
43  //            }
44  //        };
45      }
46  }
47  
48  interface Boo<Input> {
49      Input boo();
50  }
51  
52  interface FooInterface<T> {
53      T foo();
54  }
55  
56  interface FooInterface2 {
57      Input foo();
58  }
59  
60  class Input {
61  
62  }