@@ -2,19 +2,30 @@ public class Solo<T extends com.foo.Foo.Bar> {}
22Solo<Integer> val = new Solo<>();
33Duo<Double, Character> dual = new Duo<Double, Character>(12.2585, 'C');
44
5+ List<?> list
6+ List<? extends Number> nums = ints;
7+ List<? super Integer> list
8+ Entry<String, String> pair = Entry.<String>twice("Hello");
9+
10+ public class Entry<KeyType, ValueType> {}
11+ class D <T extends A & B & C> {}
12+
13+ public <T extends Throwable> void throwMeConditional(boolean conditional, T exception) throws T {}
14+
15+ <T> T instantiateElementType(List<T> arg) {}
16+
17+ // not generics
18+ if (a<6&&b>6){}
19+
520----------------------------------------------------
621
722[
823 ["keyword", "public"],
924 ["keyword", "class"],
10- ["class-name", [
11- "Solo"
12- ]],
25+ ["class-name", ["Solo"]],
1326 ["generics", [
1427 ["punctuation", "<"],
15- ["class-name", [
16- "T"
17- ]],
28+ ["class-name", ["T"]],
1829 ["keyword", "extends"],
1930 ["class-name", [
2031 ["namespace", [
@@ -32,22 +43,16 @@ Duo<Double, Character> dual = new Duo<Double, Character>(12.2585, 'C');
3243 ["punctuation", "{"],
3344 ["punctuation", "}"],
3445
35- ["class-name", [
36- "Solo"
37- ]],
46+ ["class-name", ["Solo"]],
3847 ["generics", [
3948 ["punctuation", "<"],
40- ["class-name", [
41- "Integer"
42- ]],
49+ ["class-name", ["Integer"]],
4350 ["punctuation", ">"]
4451 ]],
4552 " val ",
4653 ["operator", "="],
4754 ["keyword", "new"],
48- ["class-name", [
49- "Solo"
50- ]],
55+ ["class-name", ["Solo"]],
5156 ["generics", [
5257 ["punctuation", "<"],
5358 ["punctuation", ">"]
@@ -56,43 +61,170 @@ Duo<Double, Character> dual = new Duo<Double, Character>(12.2585, 'C');
5661 ["punctuation", ")"],
5762 ["punctuation", ";"],
5863
59- ["class-name", [
60- "Duo"
61- ]],
64+ ["class-name", ["Duo"]],
6265 ["generics", [
6366 ["punctuation", "<"],
64- ["class-name", [
65- "Double"
66- ]],
67+ ["class-name", ["Double"]],
6768 ["punctuation", ","],
68- ["class-name", [
69- "Character"
70- ]],
69+ ["class-name", ["Character"]],
7170 ["punctuation", ">"]
7271 ]],
7372 " dual ",
7473 ["operator", "="],
7574 ["keyword", "new"],
76- ["class-name", [
77- "Duo"
78- ]],
75+ ["class-name", ["Duo"]],
7976 ["generics", [
8077 ["punctuation", "<"],
81- ["class-name", [
82- "Double"
83- ]],
78+ ["class-name", ["Double"]],
8479 ["punctuation", ","],
85- ["class-name", [
86- "Character"
87- ]],
80+ ["class-name", ["Character"]],
8881 ["punctuation", ">"]
8982 ]],
9083 ["punctuation", "("],
9184 ["number", "12.2585"],
9285 ["punctuation", ","],
9386 ["string", "'C'"],
9487 ["punctuation", ")"],
95- ["punctuation", ";"]
88+ ["punctuation", ";"],
89+
90+ ["class-name", ["List"]],
91+ ["generics", [
92+ ["punctuation", "<"],
93+ ["operator", "?"],
94+ ["punctuation", ">"]
95+ ]],
96+ " list\r\n",
97+
98+ ["class-name", ["List"]],
99+ ["generics", [
100+ ["punctuation", "<"],
101+ ["operator", "?"],
102+ ["keyword", "extends"],
103+ ["class-name", ["Number"]],
104+ ["punctuation", ">"]
105+ ]],
106+ " nums ",
107+ ["operator", "="],
108+ " ints",
109+ ["punctuation", ";"],
110+
111+ ["class-name", ["List"]],
112+ ["generics", [
113+ ["punctuation", "<"],
114+ ["operator", "?"],
115+ ["keyword", "super"],
116+ ["class-name", ["Integer"]],
117+ ["punctuation", ">"]
118+ ]],
119+ " list\r\n",
120+
121+ ["class-name", ["Entry"]],
122+ ["generics", [
123+ ["punctuation", "<"],
124+ ["class-name", ["String"]],
125+ ["punctuation", ","],
126+ ["class-name", ["String"]],
127+ ["punctuation", ">"]
128+ ]],
129+ " pair ",
130+ ["operator", "="],
131+ ["class-name", ["Entry"]],
132+ ["punctuation", "."],
133+ ["generics", [
134+ ["punctuation", "<"],
135+ ["class-name", ["String"]],
136+ ["punctuation", ">"]
137+ ]],
138+ ["function", "twice"],
139+ ["punctuation", "("],
140+ ["string", "\"Hello\""],
141+ ["punctuation", ")"],
142+ ["punctuation", ";"],
143+
144+ ["keyword", "public"],
145+ ["keyword", "class"],
146+ ["class-name", ["Entry"]],
147+ ["generics", [
148+ ["punctuation", "<"],
149+ ["class-name", ["KeyType"]],
150+ ["punctuation", ","],
151+ ["class-name", ["ValueType"]],
152+ ["punctuation", ">"]
153+ ]],
154+ ["punctuation", "{"],
155+ ["punctuation", "}"],
156+
157+ ["keyword", "class"],
158+ ["class-name", ["D"]],
159+ ["generics", [
160+ ["punctuation", "<"],
161+ ["class-name", ["T"]],
162+ ["keyword", "extends"],
163+ ["class-name", ["A"]],
164+ ["operator", "&"],
165+ ["class-name", ["B"]],
166+ ["operator", "&"],
167+ ["class-name", ["C"]],
168+ ["punctuation", ">"]
169+ ]],
170+ ["punctuation", "{"],
171+ ["punctuation", "}"],
172+
173+ ["keyword", "public"],
174+ ["generics", [
175+ ["punctuation", "<"],
176+ ["class-name", ["T"]],
177+ ["keyword", "extends"],
178+ ["class-name", ["Throwable"]],
179+ ["punctuation", ">"]
180+ ]],
181+ ["keyword", "void"],
182+ ["function", "throwMeConditional"],
183+ ["punctuation", "("],
184+ ["keyword", "boolean"],
185+ " conditional",
186+ ["punctuation", ","],
187+ ["class-name", ["T"]],
188+ " exception",
189+ ["punctuation", ")"],
190+ ["keyword", "throws"],
191+ ["class-name", ["T"]],
192+ ["punctuation", "{"],
193+ ["punctuation", "}"],
194+
195+ ["generics", [
196+ ["punctuation", "<"],
197+ ["class-name", ["T"]],
198+ ["punctuation", ">"]
199+ ]],
200+ ["class-name", ["T"]],
201+ ["function", "instantiateElementType"],
202+ ["punctuation", "("],
203+ ["class-name", ["List"]],
204+ ["generics", [
205+ ["punctuation", "<"],
206+ ["class-name", ["T"]],
207+ ["punctuation", ">"]
208+ ]],
209+ " arg",
210+ ["punctuation", ")"],
211+ ["punctuation", "{"],
212+ ["punctuation", "}"],
213+
214+ ["comment", "// not generics"],
215+
216+ ["keyword", "if"],
217+ ["punctuation", "("],
218+ "a",
219+ ["operator", "<"],
220+ ["number", "6"],
221+ ["operator", "&&"],
222+ "b",
223+ ["operator", ">"],
224+ ["number", "6"],
225+ ["punctuation", ")"],
226+ ["punctuation", "{"],
227+ ["punctuation", "}"]
96228]
97229
98230----------------------------------------------------
0 commit comments