| 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 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 45 } | 45 } |
| 46 Set<Name> names = new Set<Name>(); | 46 Set<Name> names = new Set<Name>(); |
| 47 for (var classNode in classHierarchy.classes) { | 47 for (var classNode in classHierarchy.classes) { |
| 48 for (var member in classNode.members) { | 48 for (var member in classNode.members) { |
| 49 names.add(member.name); | 49 names.add(member.name); |
| 50 } | 50 } |
| 51 } | 51 } |
| 52 List<Name> nameList = names.toList(); | 52 List<Name> nameList = names.toList(); |
| 53 progress = 0; | 53 progress = 0; |
| 54 for (var classNode in classHierarchy.classes) { | 54 for (var classNode in classHierarchy.classes) { |
| 55 Iterable<Name> candidateNames = [ | 55 Iterable<Name> candidateNames = <Iterable<Name>>[ |
| 56 basic.gettersAndCalls[classNode].keys, | 56 basic.gettersAndCalls[classNode].keys, |
| 57 basic.setters[classNode].keys, | 57 basic.setters[classNode].keys, |
| 58 pickRandom(nameList, 100) | 58 pickRandom(nameList, 100) |
| 59 ].expand((x) => x); | 59 ].expand((x) => x); |
| 60 for (Name name in candidateNames) { | 60 for (Name name in candidateNames) { |
| 61 Member expectedGetter = | 61 Member expectedGetter = |
| 62 basic.getDispatchTarget(classNode, name, setter: false); | 62 basic.getDispatchTarget(classNode, name, setter: false); |
| 63 Member expectedSetter = | 63 Member expectedSetter = |
| 64 basic.getDispatchTarget(classNode, name, setter: true); | 64 basic.getDispatchTarget(classNode, name, setter: true); |
| 65 Member actualGetter = | 65 Member actualGetter = |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 134 } | 134 } |
| 135 } | 135 } |
| 136 } | 136 } |
| 137 if (verbose) { | 137 if (verbose) { |
| 138 print('\rProgress 100%. Done.'); | 138 print('\rProgress 100%. Done.'); |
| 139 } | 139 } |
| 140 } | 140 } |
| 141 | 141 |
| 142 var random = new Random(12345); | 142 var random = new Random(12345); |
| 143 | 143 |
| 144 List pickRandom(List items, int n) { | 144 List/*<T>*/ pickRandom/*<T>*/(List/*<T>*/ items, int n) { |
| 145 var result = []; | 145 var result = /*<T>*/[]; |
| 146 for (int i = 0; i < n; ++i) { | 146 for (int i = 0; i < n; ++i) { |
| 147 result.add(items[random.nextInt(items.length)]); | 147 result.add(items[random.nextInt(items.length)]); |
| 148 } | 148 } |
| 149 return result; | 149 return result; |
| 150 } | 150 } |
| OLD | NEW |