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..bfe0121fbdb401041e31f815db2c1a4f0db1ec8b 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,15 +91,15 @@ 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"'); |
+ codeArguments.add('template: r"""$template"""'); |
} |
if (tip != null) { |
- codeArguments.add('tip: r"$tip"'); |
+ codeArguments.add('tip: r"""$tip"""'); |
} |
if (analyzerCode != null) { |
codeArguments.add('analyzerCode: "$analyzerCode"'); |
@@ -110,7 +108,15 @@ String compileTemplate(String name, String template, String tip, |
codeArguments.add('dart2jsCode: "$dart2jsCode"'); |
} |
- codeArguments.add("format: _format$name"); |
+ if (parameters.isEmpty && conversions.isEmpty && arguments.isEmpty) { |
+ return """ |
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
+const BoundFastaCode code$name = |
+ const BoundFastaCode(\"$name\", ${codeArguments.join(', ')}); |
+"""; |
+ } |
+ |
+ codeArguments.add("bind: _bind$name"); |
List<String> messageArguments = <String>[]; |
messageArguments.add(interpolate("message", template)); |
@@ -121,19 +127,24 @@ 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 UnboundFastaCode<_$name> code$name = |
+ const UnboundFastaCode<_$name>(\"$name\", ${codeArguments.join(', ')}); |
-typedef FastaMessage _$name(${parameters.join(', ')}); |
+// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
+typedef _$name = |
+ FastaMessage Function(Uri, int) Function(${parameters.join(', ')}); |
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE. |
-FastaMessage _format$name(${parameters.join(', ')}) { |
- ${conversions.join('\n ')} |
- return new FastaMessage( |
- uri, |
- charOffset, |
- code$name, |
- ${messageArguments.join(', ')}); |
+FastaMessage Function(Uri, int) _bind$name(${parameters.join(', ')}) { |
+ FastaMessage bind(Uri uri, int charOffset) { |
+ ${conversions.join('\n ')} |
+ return new FastaMessage( |
+ uri, |
+ charOffset, |
+ code$name, |
+ ${messageArguments.join(', ')}); |
+ } |
+ return bind; |
} |
"""; |
} |