| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:kernel/kernel.dart'; | 5 import 'package:kernel/kernel.dart'; |
| 6 import 'package:kernel/class_hierarchy.dart'; | 6 import 'package:kernel/class_hierarchy.dart'; |
| 7 import 'package:test/test.dart'; | 7 import 'package:test/test.dart'; |
| 8 import 'class_hierarchy_basic.dart'; | 8 import 'class_hierarchy_basic.dart'; |
| 9 import 'dart:io'; | 9 import 'dart:io'; |
| 10 import 'dart:math'; | 10 import 'dart:math'; |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 108 ++progress; | 108 ++progress; |
| 109 if (verbose) { | 109 if (verbose) { |
| 110 stdout.write('\rInterface queries ${100 * progress ~/ total}%'); | 110 stdout.write('\rInterface queries ${100 * progress ~/ total}%'); |
| 111 } | 111 } |
| 112 } | 112 } |
| 113 for (var classNode in classHierarchy.classes) { | 113 for (var classNode in classHierarchy.classes) { |
| 114 String getHash(member, superMember, setter) { | 114 String getHash(member, superMember, setter) { |
| 115 String eq = setter ? '=' : ''; | 115 String eq = setter ? '=' : ''; |
| 116 return '$member$eq overrides $superMember$eq'; | 116 return '$member$eq overrides $superMember$eq'; |
| 117 } | 117 } |
| 118 |
| 118 Set<String> expectedOverrides = new Set<String>(); | 119 Set<String> expectedOverrides = new Set<String>(); |
| 119 basic.forEachOverridePair(classNode, (member, superMember, setter) { | 120 basic.forEachOverridePair(classNode, (member, superMember, setter) { |
| 120 expectedOverrides.add(getHash(member, superMember, setter)); | 121 expectedOverrides.add(getHash(member, superMember, setter)); |
| 121 }); | 122 }); |
| 122 Set<String> actualOverrides = new Set<String>(); | 123 Set<String> actualOverrides = new Set<String>(); |
| 123 classHierarchy.forEachOverridePair(classNode, (member, superMember, setter)
{ | 124 classHierarchy.forEachOverridePair(classNode, |
| 125 (member, superMember, setter) { |
| 124 actualOverrides.add(getHash(member, superMember, setter)); | 126 actualOverrides.add(getHash(member, superMember, setter)); |
| 125 }); | 127 }); |
| 126 for (var actual in actualOverrides) { | 128 for (var actual in actualOverrides) { |
| 127 if (!expectedOverrides.contains(actual)) { | 129 if (!expectedOverrides.contains(actual)) { |
| 128 fail("forEachOverridePair($classNode) should not report that $actual"); | 130 fail("forEachOverridePair($classNode) should not report that $actual"); |
| 129 } | 131 } |
| 130 } | 132 } |
| 131 for (var expected in expectedOverrides) { | 133 for (var expected in expectedOverrides) { |
| 132 if (!actualOverrides.contains(expected)) { | 134 if (!actualOverrides.contains(expected)) { |
| 133 fail("forEachOverridePair($classNode) did not report that $expected"); | 135 fail("forEachOverridePair($classNode) did not report that $expected"); |
| 134 } | 136 } |
| 135 } | 137 } |
| 136 } | 138 } |
| 137 if (verbose) { | 139 if (verbose) { |
| 138 print('\rProgress 100%. Done.'); | 140 print('\rProgress 100%. Done.'); |
| 139 } | 141 } |
| 140 } | 142 } |
| 141 | 143 |
| 142 var random = new Random(12345); | 144 var random = new Random(12345); |
| 143 | 145 |
| 144 List/*<T>*/ pickRandom/*<T>*/(List/*<T>*/ items, int n) { | 146 List/*<T>*/ pickRandom/*<T>*/(List/*<T>*/ items, int n) { |
| 145 var result = /*<T>*/[]; | 147 var result = /*<T>*/ []; |
| 146 for (int i = 0; i < n; ++i) { | 148 for (int i = 0; i < n; ++i) { |
| 147 result.add(items[random.nextInt(items.length)]); | 149 result.add(items[random.nextInt(items.length)]); |
| 148 } | 150 } |
| 149 return result; | 151 return result; |
| 150 } | 152 } |
| OLD | NEW |