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

Side by Side Diff: pkg/compiler/lib/src/diagnostics/messages.dart

Issue 1700243002: Share const-error messages. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Use double-quotes Created 4 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
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 5
6 /** 6 /**
7 * The messages in this file should meet the following guide lines: 7 * The messages in this file should meet the following guide lines:
8 * 8 *
9 * 1. The message should be a complete sentence starting with an uppercase 9 * 1. The message should be a complete sentence starting with an uppercase
10 * letter, and ending with a period. 10 * letter, and ending with a period.
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 WRONG_NUMBER_OF_ARGUMENTS_FOR_ASSERT, 469 WRONG_NUMBER_OF_ARGUMENTS_FOR_ASSERT,
470 YIELDING_MODIFIER_ON_ARROW_BODY, 470 YIELDING_MODIFIER_ON_ARROW_BODY,
471 } 471 }
472 472
473 /// A message template for an error, warning, hint or info message generated 473 /// A message template for an error, warning, hint or info message generated
474 /// by the compiler. Each template is associated with a [MessageKind] that 474 /// by the compiler. Each template is associated with a [MessageKind] that
475 /// uniquely identifies the message template. 475 /// uniquely identifies the message template.
476 // TODO(johnnniwinther): For Infos, consider adding a reference to the 476 // TODO(johnnniwinther): For Infos, consider adding a reference to the
477 // error/warning/hint that they belong to. 477 // error/warning/hint that they belong to.
478 class MessageTemplate { 478 class MessageTemplate {
479 final dynamic/*MessageKind | SharedMessageKind*/ kind; 479 final MessageKind kind;
480 480
481 /// Should describe what is wrong and why. 481 /// Should describe what is wrong and why.
482 final String template; 482 final String template;
483 483
484 /// Should describe how to fix the problem. Elided when using --terse option. 484 /// Should describe how to fix the problem. Elided when using --terse option.
485 final String howToFix; 485 final String howToFix;
486 486
487 /** 487 /**
488 * Examples will be checked by 488 * Examples will be checked by
489 * tests/compiler/dart2js/message_kind_test.dart. 489 * tests/compiler/dart2js/message_kind_test.dart.
(...skipping 2097 matching lines...) Expand 10 before | Expand all | Expand 10 after
2587 2587
2588 main() {} 2588 main() {}
2589 """]), 2589 """]),
2590 2590
2591 MessageKind.READ_SELF_ERROR: 2591 MessageKind.READ_SELF_ERROR:
2592 const MessageTemplate(MessageKind.READ_SELF_ERROR, 2592 const MessageTemplate(MessageKind.READ_SELF_ERROR,
2593 "#{exception}", 2593 "#{exception}",
2594 // Don't know how to fix since the underlying error is unknown. 2594 // Don't know how to fix since the underlying error is unknown.
2595 howToFix: DONT_KNOW_HOW_TO_FIX), 2595 howToFix: DONT_KNOW_HOW_TO_FIX),
2596 2596
2597 MessageKind.EXTRANEOUS_MODIFIER:
2598 const MessageTemplate(MessageKind.EXTRANEOUS_MODIFIER,
2599 "Can't have modifier '#{modifier}' here.",
2600 howToFix: "Try removing '#{modifier}'.",
2601 examples: const [
2602 "var String foo; main(){}",
2603 // "var get foo; main(){}",
2604 "var set foo; main(){}",
2605 "var final foo; main(){}",
2606 "var var foo; main(){}",
2607 "var const foo; main(){}",
2608 "var abstract foo; main(){}",
2609 "var static foo; main(){}",
2610 "var external foo; main(){}",
2611 "get var foo; main(){}",
2612 "set var foo; main(){}",
2613 "final var foo; main(){}",
2614 "var var foo; main(){}",
2615 "const var foo; main(){}",
2616 "abstract var foo; main(){}",
2617 "static var foo; main(){}",
2618 "external var foo; main(){}"]),
2619
2620 MessageKind.EXTRANEOUS_MODIFIER_REPLACE:
2621 const MessageTemplate(MessageKind.EXTRANEOUS_MODIFIER_REPLACE,
2622 "Can't have modifier '#{modifier}' here.",
2623 howToFix:
2624 "Try replacing modifier '#{modifier}' with 'var', 'final', "
2625 "or a type.",
2626 examples: const [
2627 // "get foo; main(){}",
2628 "set foo; main(){}",
2629 "abstract foo; main(){}",
2630 "static foo; main(){}",
2631 "external foo; main(){}"]),
2632
2633 MessageKind.ABSTRACT_CLASS_INSTANTIATION: 2597 MessageKind.ABSTRACT_CLASS_INSTANTIATION:
2634 const MessageTemplate(MessageKind.ABSTRACT_CLASS_INSTANTIATION, 2598 const MessageTemplate(MessageKind.ABSTRACT_CLASS_INSTANTIATION,
2635 "Can't instantiate abstract class.", 2599 "Can't instantiate abstract class.",
2636 howToFix: DONT_KNOW_HOW_TO_FIX, 2600 howToFix: DONT_KNOW_HOW_TO_FIX,
2637 examples: const ["abstract class A {} main() { new A(); }"]), 2601 examples: const ["abstract class A {} main() { new A(); }"]),
2638 2602
2639 MessageKind.BODY_EXPECTED: 2603 MessageKind.BODY_EXPECTED:
2640 const MessageTemplate(MessageKind.BODY_EXPECTED, 2604 const MessageTemplate(MessageKind.BODY_EXPECTED,
2641 "Expected a function body or '=>'.", 2605 "Expected a function body or '=>'.",
2642 // TODO(ahe): In some scenarios, we can suggest removing the 'static' 2606 // TODO(ahe): In some scenarios, we can suggest removing the 'static'
(...skipping 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after
3699 class Message { 3663 class Message {
3700 final MessageTemplate template; 3664 final MessageTemplate template;
3701 final Map arguments; 3665 final Map arguments;
3702 final bool terse; 3666 final bool terse;
3703 String message; 3667 String message;
3704 3668
3705 Message(this.template, this.arguments, this.terse) { 3669 Message(this.template, this.arguments, this.terse) {
3706 assert(() { computeMessage(); return true; }); 3670 assert(() { computeMessage(); return true; });
3707 } 3671 }
3708 3672
3709 dynamic/*MessageKind | SharedMessageKind*/ get kind => template.kind; 3673 MessageKind get kind => template.kind;
3710 3674
3711 String computeMessage() { 3675 String computeMessage() {
3712 if (message == null) { 3676 if (message == null) {
3713 message = template.template; 3677 message = template.template;
3714 arguments.forEach((key, value) { 3678 arguments.forEach((key, value) {
3715 message = message.replaceAll('#{${key}}', convertToString(value)); 3679 message = message.replaceAll('#{${key}}', convertToString(value));
3716 }); 3680 });
3717 assert(invariant( 3681 assert(invariant(
3718 CURRENT_ELEMENT_SPANNABLE, 3682 CURRENT_ELEMENT_SPANNABLE,
3719 kind == MessageKind.GENERIC || 3683 kind == MessageKind.GENERIC ||
(...skipping 24 matching lines...) Expand all
3744 static String convertToString(value) { 3708 static String convertToString(value) {
3745 if (value is ErrorToken) { 3709 if (value is ErrorToken) {
3746 // Shouldn't happen. 3710 // Shouldn't happen.
3747 return value.assertionMessage; 3711 return value.assertionMessage;
3748 } else if (value is Token) { 3712 } else if (value is Token) {
3749 value = value.value; 3713 value = value.value;
3750 } 3714 }
3751 return '$value'; 3715 return '$value';
3752 } 3716 }
3753 } 3717 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/diagnostics/generated/shared_messages.dart ('k') | pkg/dart_messages/bin/publish.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698