test/tools/javac/api/T6392782.java

changeset 679
fc73f83cd563
parent 554
9d9f26857129
child 798
4868a36f6fd8
equal deleted inserted replaced
678:014cf6234586 679:fc73f83cd563
45 Iterable<? extends Tree> trees = task.parse(); 45 Iterable<? extends Tree> trees = task.parse();
46 TreeScanner<Integer,Void> scanner = new MyScanner(); 46 TreeScanner<Integer,Void> scanner = new MyScanner();
47 check(scanner, 6, scanner.scan(trees, null)); 47 check(scanner, 6, scanner.scan(trees, null));
48 48
49 CountNodes nodeCounter = new CountNodes(); 49 CountNodes nodeCounter = new CountNodes();
50 // 383 nodes with the regular parser; 384 nodes with EndPosParser 50 // 359 nodes with the regular parser; 360 nodes with EndPosParser
51 // We automatically swith to EndPosParser when calling JavacTask.parse() 51 // We automatically switch to EndPosParser when calling JavacTask.parse()
52 check(nodeCounter, 384, nodeCounter.scan(trees, null)); 52 check(nodeCounter, 360, nodeCounter.scan(trees, null));
53 53
54 CountIdentifiers idCounter = new CountIdentifiers(); 54 CountIdentifiers idCounter = new CountIdentifiers();
55 check(idCounter, 106, idCounter.scan(trees, null)); 55 check(idCounter, 107, idCounter.scan(trees, null));
56 } 56 }
57 57
58 private static void check(TreeScanner<?,?> scanner, int expect, int found) { 58 private static void check(TreeScanner<?,?> scanner, int expect, int found) {
59 if (found != expect) 59 if (found != expect)
60 throw new AssertionError(scanner.getClass().getName() + ": expected: " + expect + " found: " + found); 60 throw new AssertionError(scanner.getClass().getName() + ": expected: " + expect + " found: " + found);
71 public Integer reduce(Integer i1, Integer i2) { 71 public Integer reduce(Integer i1, Integer i2) {
72 return (i1 == null ? 0 : i1) + (i2 == null ? 0 : i2); 72 return (i1 == null ? 0 : i1) + (i2 == null ? 0 : i2);
73 } 73 }
74 } 74 }
75 75
76 // example from TreeScanner javadoc
77 static class CountNodes extends TreeScanner<Integer,Void> { 76 static class CountNodes extends TreeScanner<Integer,Void> {
78 @Override 77 @Override
79 public Integer scan(Tree node, Void p) { 78 public Integer scan(Tree node, Void p) {
79 if (node == null)
80 return 0;
80 Integer n = super.scan(node, p); 81 Integer n = super.scan(node, p);
81 return (n == null ? 0 : n) + 1; 82 return (n == null ? 0 : n) + 1;
82 } 83 }
83 @Override 84 @Override
84 public Integer reduce(Integer r1, Integer r2) { 85 public Integer reduce(Integer r1, Integer r2) {

mercurial