| 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 // A very simple parser for a subset of DartTypes for use in testing type | 4 // A very simple parser for a subset of DartTypes for use in testing type |
| 5 // algebra. | 5 // algebra. |
| 6 library kernel.test.type_parser; | 6 library kernel.test.type_parser; |
| 7 | 7 |
| 8 import 'package:kernel/kernel.dart'; | 8 import 'package:kernel/kernel.dart'; |
| 9 import 'package:kernel/text/ast_to_text.dart'; | 9 import 'package:kernel/text/ast_to_text.dart'; |
| 10 | 10 |
| (...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 267 } | 267 } |
| 268 | 268 |
| 269 dynamic fail(String message) { | 269 dynamic fail(String message) { |
| 270 throw '$message at index $index'; | 270 throw '$message at index $index'; |
| 271 } | 271 } |
| 272 } | 272 } |
| 273 | 273 |
| 274 class LazyTypeEnvironment { | 274 class LazyTypeEnvironment { |
| 275 final Map<String, Class> classes = <String, Class>{}; | 275 final Map<String, Class> classes = <String, Class>{}; |
| 276 final Map<String, TypeParameter> typeParameters = <String, TypeParameter>{}; | 276 final Map<String, TypeParameter> typeParameters = <String, TypeParameter>{}; |
| 277 final Library dummyLibrary = | 277 Library dummyLibrary; |
| 278 new Library(new Uri(path: 'dummy.dart'), name: 'lib'); | 278 final Program program = new Program(); |
| 279 |
| 280 LazyTypeEnvironment() { |
| 281 dummyLibrary = new Library(Uri.parse('file://dummy.dart')); |
| 282 program.libraries.add(dummyLibrary..parent = program); |
| 283 dummyLibrary.name = 'lib'; |
| 284 } |
| 279 | 285 |
| 280 TreeNode lookup(String name) { | 286 TreeNode lookup(String name) { |
| 281 return name.length == 1 | 287 return name.length == 1 |
| 282 ? typeParameters.putIfAbsent(name, () => new TypeParameter(name)) | 288 ? typeParameters.putIfAbsent(name, () => new TypeParameter(name)) |
| 283 : classes.putIfAbsent(name, () => makeClass(name)); | 289 : classes.putIfAbsent(name, () => makeClass(name)); |
| 284 } | 290 } |
| 285 | 291 |
| 286 Class makeClass(String name) { | 292 Class makeClass(String name) { |
| 287 var class_ = new Class(name: name); | 293 var class_ = new Class(name: name); |
| 288 dummyLibrary.addClass(class_); | 294 dummyLibrary.addClass(class_); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 314 void main(List<String> args) { | 320 void main(List<String> args) { |
| 315 if (args.length != 1) { | 321 if (args.length != 1) { |
| 316 print('Usage: type_parser TYPE'); | 322 print('Usage: type_parser TYPE'); |
| 317 } | 323 } |
| 318 var environment = new LazyTypeEnvironment(); | 324 var environment = new LazyTypeEnvironment(); |
| 319 var type = parseDartType(args[0], environment.lookup); | 325 var type = parseDartType(args[0], environment.lookup); |
| 320 var buffer = new StringBuffer(); | 326 var buffer = new StringBuffer(); |
| 321 new Printer(buffer).writeType(type); | 327 new Printer(buffer).writeType(type); |
| 322 print(buffer); | 328 print(buffer); |
| 323 } | 329 } |
| OLD | NEW |