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

Side by Side Diff: tests/compiler/dart2js/resolver_test.dart

Issue 1248483008: Split MessageKind into a MessageKind key and a MessageTemplate. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 5 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 | « tests/compiler/dart2js/parser_helper.dart ('k') | no next file » | 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 'dart:async'; 5 import 'dart:async';
6 import 'dart:collection'; 6 import 'dart:collection';
7 7
8 import 'package:async_helper/async_helper.dart'; 8 import 'package:async_helper/async_helper.dart';
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:compiler/src/constants/expressions.dart'; 10 import 'package:compiler/src/constants/expressions.dart';
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
301 () => testLocals([["foo", true], ["bar", true]]), 301 () => testLocals([["foo", true], ["bar", true]]),
302 302
303 () => testLocals([["foo", false], ["bar", false], ["foobar", true]]), 303 () => testLocals([["foo", false], ["bar", false], ["foobar", true]]),
304 () => testLocals([["foo", false], ["bar", true], ["foobar", true]]), 304 () => testLocals([["foo", false], ["bar", true], ["foobar", true]]),
305 () => testLocals([["foo", true], ["bar", true], ["foobar", true]]), 305 () => testLocals([["foo", true], ["bar", true], ["foobar", true]]),
306 306
307 () => testLocals([["foo", false], ["foo", false]]) 307 () => testLocals([["foo", false], ["foo", false]])
308 .then((MockCompiler compiler) { 308 .then((MockCompiler compiler) {
309 Expect.equals(1, compiler.errors.length); 309 Expect.equals(1, compiler.errors.length);
310 Expect.equals( 310 Expect.equals(
311 new Message(MessageKind.DUPLICATE_DEFINITION, {'name': 'foo'}, false), 311 new Message(
312 MessageTemplate.TEMPLATES[MessageKind.DUPLICATE_DEFINITION],
313 {'name': 'foo'}, false),
312 compiler.errors[0].message); 314 compiler.errors[0].message);
313 })], (f) => f()); 315 })], (f) => f());
314 } 316 }
315 317
316 318
317 Future testLocalsTwo() { 319 Future testLocalsTwo() {
318 return MockCompiler.create((MockCompiler compiler) { 320 return MockCompiler.create((MockCompiler compiler) {
319 ResolverVisitor visitor = compiler.resolverVisitor(); 321 ResolverVisitor visitor = compiler.resolverVisitor();
320 Node tree = parseStatement("if (true) { var a = 1; var b = 2; }"); 322 Node tree = parseStatement("if (true) { var a = 1; var b = 2; }");
321 ResolutionResult result = visitor.visit(tree); 323 ResolutionResult result = visitor.visit(tree);
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
484 // Test that we get a warning when Foo is not defined. 486 // Test that we get a warning when Foo is not defined.
485 Map mapping = compiler.resolveStatement(statement).map; 487 Map mapping = compiler.resolveStatement(statement).map;
486 488
487 Expect.equals(1, mapping.length); // Only [bar] has an element. 489 Expect.equals(1, mapping.length); // Only [bar] has an element.
488 Expect.equals(1, compiler.warnings.length); 490 Expect.equals(1, compiler.warnings.length);
489 491
490 Node warningNode = compiler.warnings[0].node; 492 Node warningNode = compiler.warnings[0].node;
491 493
492 Expect.equals( 494 Expect.equals(
493 new Message( 495 new Message(
494 MessageKind.CANNOT_RESOLVE_TYPE, {'typeName': 'Foo'}, false), 496 MessageTemplate.TEMPLATES[MessageKind.CANNOT_RESOLVE_TYPE],
497 {'typeName': 'Foo'}, false),
495 compiler.warnings[0].message); 498 compiler.warnings[0].message);
496 VariableDefinitions definition = compiler.parsedTree; 499 VariableDefinitions definition = compiler.parsedTree;
497 Expect.equals(warningNode, definition.type); 500 Expect.equals(warningNode, definition.type);
498 compiler.clearMessages(); 501 compiler.clearMessages();
499 502
500 // Test that there is no warning after defining Foo. 503 // Test that there is no warning after defining Foo.
501 compiler.parseScript("class Foo {}"); 504 compiler.parseScript("class Foo {}");
502 mapping = compiler.resolveStatement(statement).map; 505 mapping = compiler.resolveStatement(statement).map;
503 Expect.equals(1, mapping.length); 506 Expect.equals(1, mapping.length);
504 Expect.equals(0, compiler.warnings.length); 507 Expect.equals(0, compiler.warnings.length);
505 508
506 // Test that 'var' does not create a warning. 509 // Test that 'var' does not create a warning.
507 mapping = compiler.resolveStatement("var foo;").map; 510 mapping = compiler.resolveStatement("var foo;").map;
508 Expect.equals(1, mapping.length); 511 Expect.equals(1, mapping.length);
509 Expect.equals(0, compiler.warnings.length); 512 Expect.equals(0, compiler.warnings.length);
510 }); 513 });
511 } 514 }
512 515
513 Future testSuperclass() { 516 Future testSuperclass() {
514 return Future.wait([ 517 return Future.wait([
515 MockCompiler.create((MockCompiler compiler) { 518 MockCompiler.create((MockCompiler compiler) {
516 compiler.parseScript("class Foo extends Bar {}"); 519 compiler.parseScript("class Foo extends Bar {}");
517 compiler.resolveStatement("Foo bar;"); 520 compiler.resolveStatement("Foo bar;");
518 Expect.equals(1, compiler.errors.length); 521 Expect.equals(1, compiler.errors.length);
519 var cannotResolveBar = new Message(MessageKind.CANNOT_EXTEND_MALFORMED, 522 var cannotResolveBar = new Message(
523 MessageTemplate.TEMPLATES[MessageKind.CANNOT_EXTEND_MALFORMED],
520 {'className': 'Foo', 'malformedType': 'Bar'}, false); 524 {'className': 'Foo', 'malformedType': 'Bar'}, false);
521 Expect.equals(cannotResolveBar, compiler.errors[0].message); 525 Expect.equals(cannotResolveBar, compiler.errors[0].message);
522 compiler.clearMessages(); 526 compiler.clearMessages();
523 }), 527 }),
524 MockCompiler.create((MockCompiler compiler) { 528 MockCompiler.create((MockCompiler compiler) {
525 compiler.parseScript("class Foo extends Bar {}"); 529 compiler.parseScript("class Foo extends Bar {}");
526 compiler.parseScript("class Bar {}"); 530 compiler.parseScript("class Bar {}");
527 Map mapping = compiler.resolveStatement("Foo bar;").map; 531 Map mapping = compiler.resolveStatement("Foo bar;").map;
528 Expect.equals(1, mapping.length); 532 Expect.equals(1, mapping.length);
529 533
530 ClassElement fooElement = compiler.mainApp.find('Foo'); 534 ClassElement fooElement = compiler.mainApp.find('Foo');
531 ClassElement barElement = compiler.mainApp.find('Bar'); 535 ClassElement barElement = compiler.mainApp.find('Bar');
532 Expect.equals(barElement.computeType(compiler), 536 Expect.equals(barElement.computeType(compiler),
533 fooElement.supertype); 537 fooElement.supertype);
534 Expect.isTrue(fooElement.interfaces.isEmpty); 538 Expect.isTrue(fooElement.interfaces.isEmpty);
535 Expect.isTrue(barElement.interfaces.isEmpty); 539 Expect.isTrue(barElement.interfaces.isEmpty);
536 }), 540 }),
537 ]); 541 ]);
538 } 542 }
539 543
540 Future testVarSuperclass() { 544 Future testVarSuperclass() {
541 return MockCompiler.create((MockCompiler compiler) { 545 return MockCompiler.create((MockCompiler compiler) {
542 compiler.parseScript("class Foo extends var {}"); 546 compiler.parseScript("class Foo extends var {}");
543 compiler.resolveStatement("Foo bar;"); 547 compiler.resolveStatement("Foo bar;");
544 Expect.equals(1, compiler.errors.length); 548 Expect.equals(1, compiler.errors.length);
545 Expect.equals( 549 Expect.equals(
546 new Message( 550 new Message(
547 MessageKind.CANNOT_RESOLVE_TYPE, {'typeName': 'var'}, false), 551 MessageTemplate.TEMPLATES[MessageKind.CANNOT_RESOLVE_TYPE],
552 {'typeName': 'var'}, false),
548 compiler.errors[0].message); 553 compiler.errors[0].message);
549 compiler.clearMessages(); 554 compiler.clearMessages();
550 }); 555 });
551 } 556 }
552 557
553 Future testOneInterface() { 558 Future testOneInterface() {
554 return MockCompiler.create((MockCompiler compiler) { 559 return MockCompiler.create((MockCompiler compiler) {
555 compiler.parseScript("class Foo implements Bar {}"); 560 compiler.parseScript("class Foo implements Bar {}");
556 compiler.resolveStatement("Foo bar;"); 561 compiler.resolveStatement("Foo bar;");
557 Expect.equals(1, compiler.errors.length); 562 Expect.equals(1, compiler.errors.length);
558 Expect.equals( 563 Expect.equals(
559 new Message( 564 new Message(
560 MessageKind.CANNOT_RESOLVE_TYPE, {'typeName': 'bar'}, false), 565 MessageTemplate.TEMPLATES[MessageKind.CANNOT_RESOLVE_TYPE],
566 {'typeName': 'bar'}, false),
561 compiler.errors[0].message); 567 compiler.errors[0].message);
562 compiler.clearMessages(); 568 compiler.clearMessages();
563 569
564 // Add the abstract class to the world and make sure everything is setup 570 // Add the abstract class to the world and make sure everything is setup
565 // correctly. 571 // correctly.
566 compiler.parseScript("abstract class Bar {}"); 572 compiler.parseScript("abstract class Bar {}");
567 573
568 ResolverVisitor visitor = 574 ResolverVisitor visitor =
569 new ResolverVisitor(compiler, null, 575 new ResolverVisitor(compiler, null,
570 new ResolutionRegistry.internal(compiler, 576 new ResolutionRegistry.internal(compiler,
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after
1381 } 1387 }
1382 main() => A.m(); 1388 main() => A.m();
1383 ''', functionName: 'm'); 1389 ''', functionName: 'm');
1384 check(''' 1390 check('''
1385 class A { 1391 class A {
1386 m() => () => await - 3; 1392 m() => () => await - 3;
1387 } 1393 }
1388 main() => new A().m(); 1394 main() => new A().m();
1389 ''', className: 'A'); 1395 ''', className: 'A');
1390 } 1396 }
OLDNEW
« no previous file with comments | « tests/compiler/dart2js/parser_helper.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698