equal
deleted
inserted
replaced
21 * questions. |
21 * questions. |
22 */ |
22 */ |
23 |
23 |
24 /* |
24 /* |
25 * @test |
25 * @test |
26 * @bug 8219998 |
26 * @bug 8219998 8221991 |
27 * @summary Eliminate inherently singleton lists |
27 * @summary Eliminate inherently singleton lists |
28 * @library /tools/lib ../../lib |
28 * @library /tools/lib ../../lib |
29 * @modules jdk.javadoc/jdk.javadoc.internal.tool |
29 * @modules jdk.javadoc/jdk.javadoc.internal.tool |
30 * @modules jdk.compiler/com.sun.tools.javac.api |
30 * @modules jdk.compiler/com.sun.tools.javac.api |
31 * jdk.compiler/com.sun.tools.javac.main |
31 * jdk.compiler/com.sun.tools.javac.main |
273 public void startElement(String name, Map<String,String> attrs, boolean selfClosing) { |
273 public void startElement(String name, Map<String,String> attrs, boolean selfClosing) { |
274 switch (name) { |
274 switch (name) { |
275 |
275 |
276 case "ul": case "ol": case "dl": |
276 case "ul": case "ol": case "dl": |
277 counts.push(new TreeMap<>()); |
277 counts.push(new TreeMap<>()); |
278 if (!attrs.isEmpty() && attrs.containsKey("class") |
|
279 && attrs.containsValue("inheritance")) { |
|
280 inheritanceClass = true; |
|
281 } |
|
282 break; |
278 break; |
283 |
279 |
284 case "li": case "dd": case "dt": { |
280 case "li": case "dd": case "dt": { |
285 Map<String, Integer> c = counts.peek(); |
281 Map<String, Integer> c = counts.peek(); |
286 c.put(name, 1 + c.computeIfAbsent(name, n -> 0)); |
282 c.put(name, 1 + c.computeIfAbsent(name, n -> 0)); |
295 case "ul": case "ol": { |
291 case "ul": case "ol": { |
296 Map<String,Integer> c = counts.pop(); |
292 Map<String,Integer> c = counts.pop(); |
297 if (c.get("li") == 0) { |
293 if (c.get("li") == 0) { |
298 error(currFile, getLineNumber(), "empty list"); |
294 error(currFile, getLineNumber(), "empty list"); |
299 } else if (c.get("li") == 1 && fileName != null && !excludeFiles.contains(fileName)) { |
295 } else if (c.get("li") == 1 && fileName != null && !excludeFiles.contains(fileName)) { |
300 if (!inheritanceClass) { |
296 error(currFile, getLineNumber(), "singleton list"); |
301 error(currFile, getLineNumber(), "singleton list"); |
|
302 } else { |
|
303 inheritanceClass = false; |
|
304 } |
|
305 } |
297 } |
306 break; |
298 break; |
307 } |
299 } |
308 |
300 |
309 case "dl": { |
301 case "dl": { |
317 break; |
309 break; |
318 } |
310 } |
319 } |
311 } |
320 } |
312 } |
321 } |
313 } |
322 |
|
323 } |
314 } |