Index: pkg/fletchc/lib/generate_bytecodes.dart |
diff --git a/pkg/fletchc/lib/generate_bytecodes.dart b/pkg/fletchc/lib/generate_bytecodes.dart |
index ae84af207f4e7308e68b100c3548402cc2224fa7..37f16c5f6dcd506fe7e810545e90bf14677f9626 100644 |
--- a/pkg/fletchc/lib/generate_bytecodes.dart |
+++ b/pkg/fletchc/lib/generate_bytecodes.dart |
@@ -42,6 +42,23 @@ part of fletch.bytecodes; |
throw "Unknown format: $code"; |
} |
} |
+ |
+ String toStringExpression = formatString; |
+ if (!fields.isEmpty) { |
+ List<String> parts = formatString.split("%d"); |
+ StringBuffer buffer = new StringBuffer(); |
+ Iterator iterator = fields.iterator; |
+ for (String part in parts) { |
+ buffer.write(part); |
+ if (iterator.moveNext()) { |
+ buffer.write(r'${'); |
+ buffer.write(iterator.current); |
+ buffer.write('}'); |
+ } |
+ } |
+ toStringExpression = '$buffer'; |
+ } |
+ |
print(""" |
class $name extends Bytecode { |
@@ -69,6 +86,8 @@ ${ |
encode.join("") |
} ..sendOn(sink); |
} |
+ |
+ String toString() => '$toStringExpression'; |
}"""); |
}); |
} |