Index: pkg/front_end/tool/_fasta/generate_messages.dart |
diff --git a/pkg/front_end/tool/_fasta/generate_messages.dart b/pkg/front_end/tool/_fasta/generate_messages.dart |
index 1f2c6d7b208de17c2599e29ed2c7289fc12449b6..6915d4fae03cabce6880b18e415676b68fb17db4 100644 |
--- a/pkg/front_end/tool/_fasta/generate_messages.dart |
+++ b/pkg/front_end/tool/_fasta/generate_messages.dart |
@@ -54,8 +54,6 @@ String compileTemplate(String name, String template, String tip, |
var parameters = new Set<String>(); |
var conversions = new Set<String>(); |
var arguments = new Set<String>(); |
- parameters.add("Uri uri"); |
- parameters.add("int charOffset"); |
for (Match match in placeholderPattern.allMatches("$template${tip ?? ''}")) { |
switch (match[0]) { |
case "#character": |
@@ -93,16 +91,10 @@ String compileTemplate(String name, String template, String tip, |
String interpolate(String name, String text) { |
return "$name: " |
- "\"${text.replaceAll(r'$', r'\$').replaceAll('#', '\$')}\""; |
+ "\"\"\"${text.replaceAll(r'$', r'\$').replaceAll('#', '\$')}\"\"\""; |
} |
List<String> codeArguments = <String>[]; |
- if (template != null) { |
- codeArguments.add('template: r"$template"'); |
- } |
- if (tip != null) { |
- codeArguments.add('tip: r"$tip"'); |
- } |
if (analyzerCode != null) { |
codeArguments.add('analyzerCode: "$analyzerCode"'); |
} |
@@ -110,7 +102,33 @@ String compileTemplate(String name, String template, String tip, |
codeArguments.add('dart2jsCode: "$dart2jsCode"'); |
} |
- codeArguments.add("format: _format$name"); |
+ if (parameters.isEmpty && conversions.isEmpty && arguments.isEmpty) { |
+ if (template != null) { |
+ codeArguments.add('message: r"""$template"""'); |
+ } |
+ if (tip != null) { |
+ codeArguments.add('tip: r"""$tip"""'); |
+ } |
+ |
+ return """ |
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
+const Code<Null> code$name = message$name; |
+ |
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
+const MessageCode message$name = |
+ const MessageCode(\"$name\", ${codeArguments.join(', ')}); |
+"""; |
+ } |
+ |
+ List<String> templateArguments = <String>[]; |
+ if (template != null) { |
+ templateArguments.add('messageTemplate: r"""$template"""'); |
+ } |
+ if (tip != null) { |
+ templateArguments.add('tipTemplate: r"""$tip"""'); |
+ } |
+ |
+ templateArguments.add("withArguments: _withArguments$name"); |
List<String> messageArguments = <String>[]; |
messageArguments.add(interpolate("message", template)); |
@@ -121,17 +139,19 @@ String compileTemplate(String name, String template, String tip, |
return """ |
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
-const FastaCode<_$name> code$name = |
- const FastaCode<_$name>(\"$name\", ${codeArguments.join(', ')}); |
+const Template<Message Function(${parameters.join(', ')})> template$name = |
+ const Template<Message Function(${parameters.join(', ')})>( |
+ ${templateArguments.join(', ')}); |
-typedef FastaMessage _$name(${parameters.join(', ')}); |
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
+const Code<Message Function(${parameters.join(', ')})> code$name = |
+ const Code<Message Function(${parameters.join(', ')})>( |
+ \"$name\", template$name, ${codeArguments.join(', ')}); |
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
-FastaMessage _format$name(${parameters.join(', ')}) { |
+Message _withArguments$name(${parameters.join(', ')}) { |
${conversions.join('\n ')} |
- return new FastaMessage( |
- uri, |
- charOffset, |
+ return new Message( |
code$name, |
${messageArguments.join(', ')}); |
} |