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 library kernel.type_propagation.dump; | 4 library kernel.type_propagation.dump; |
5 | 5 |
6 import 'package:kernel/kernel.dart'; | 6 import 'package:kernel/kernel.dart'; |
7 import 'package:kernel/text/ast_to_text.dart'; | 7 import 'package:kernel/text/ast_to_text.dart'; |
8 import 'package:kernel/type_propagation/builder.dart'; | 8 import 'package:kernel/type_propagation/builder.dart'; |
9 import 'package:kernel/type_propagation/solver.dart'; | 9 import 'package:kernel/type_propagation/solver.dart'; |
10 import 'package:kernel/type_propagation/visualizer.dart'; | 10 import 'package:kernel/type_propagation/visualizer.dart'; |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 print('Printing graphviz dot files...'); | 98 print('Printing graphviz dot files...'); |
99 String filter = options['graph-filter']; | 99 String filter = options['graph-filter']; |
100 new Directory(outputDir).createSync(); | 100 new Directory(outputDir).createSync(); |
101 void dumpMember(Member member) { | 101 void dumpMember(Member member) { |
102 if (filter != null && !'$member'.contains(filter)) return; | 102 if (filter != null && !'$member'.contains(filter)) return; |
103 String name = sanitizeFilename('$member'); | 103 String name = sanitizeFilename('$member'); |
104 String path = '$outputDir/$name.dot'; | 104 String path = '$outputDir/$name.dot'; |
105 String dotCode = visualizer.dumpMember(member); | 105 String dotCode = visualizer.dumpMember(member); |
106 new File(path).writeAsStringSync(dotCode); | 106 new File(path).writeAsStringSync(dotCode); |
107 } | 107 } |
| 108 |
108 for (var library in program.libraries) { | 109 for (var library in program.libraries) { |
109 library.members.forEach(dumpMember); | 110 library.members.forEach(dumpMember); |
110 for (var class_ in library.classes) { | 111 for (var class_ in library.classes) { |
111 class_.members.forEach(dumpMember); | 112 class_.members.forEach(dumpMember); |
112 } | 113 } |
113 } | 114 } |
114 } | 115 } |
115 | 116 |
116 if (options['stats']) { | 117 if (options['stats']) { |
117 var constraints = solver.constraints; | 118 var constraints = solver.constraints; |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
178 return (amount / total * 100).toStringAsFixed(1) + '%'; | 179 return (amount / total * 100).toStringAsFixed(1) + '%'; |
179 } | 180 } |
180 | 181 |
181 String sanitizeFilename(String name) { | 182 String sanitizeFilename(String name) { |
182 return name | 183 return name |
183 .replaceAll('::', '.') | 184 .replaceAll('::', '.') |
184 .replaceAll('/', r'$div') | 185 .replaceAll('/', r'$div') |
185 .replaceAll('(', '') | 186 .replaceAll('(', '') |
186 .replaceAll(')', ''); | 187 .replaceAll(')', ''); |
187 } | 188 } |
OLD | NEW |