Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(122)

Side by Side Diff: pkg/kernel/test/type_parser.dart

Issue 2665723002: Implement canonical name scheme in kernel. (Closed)
Patch Set: Address Kevin's comments Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/kernel/test/self_check_util.dart ('k') | pkg/kernel/test/verify_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/kernel/test/self_check_util.dart ('k') | pkg/kernel/test/verify_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698