| Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| index 7e58b33e2eee99ea0e513bdf7a5704a94fa40b76..1a056a98968e9a2f422a99d64243ebb7e10a75e8 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
|
| @@ -964,8 +964,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| debugEvent("endLiteralString");
|
| if (interpolationCount == 0) {
|
| Token token = pop();
|
| - push(new StringLiteral(unescapeString(token.lexeme))
|
| - ..fileOffset = token.charOffset);
|
| + String value = unescapeString(token.lexeme);
|
| + push(astFactory.stringLiteral(value, token));
|
| } else {
|
| List parts = popList(1 + interpolationCount * 2);
|
| Token first = parts.first;
|
| @@ -974,14 +974,15 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| List<Expression> expressions = <Expression>[];
|
| // Contains more than just \' or \".
|
| if (first.lexeme.length > 1) {
|
| - expressions.add(
|
| - new StringLiteral(unescapeFirstStringPart(first.lexeme, quote)));
|
| + String value = unescapeFirstStringPart(first.lexeme, quote);
|
| + expressions.add(astFactory.stringLiteral(value, first));
|
| }
|
| for (int i = 1; i < parts.length - 1; i++) {
|
| var part = parts[i];
|
| if (part is Token) {
|
| if (part.lexeme.length != 0) {
|
| - expressions.add(new StringLiteral(unescape(part.lexeme, quote)));
|
| + String value = unescape(part.lexeme, quote);
|
| + expressions.add(astFactory.stringLiteral(value, part));
|
| }
|
| } else {
|
| expressions.add(toValue(part));
|
| @@ -989,11 +990,10 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| }
|
| // Contains more than just \' or \".
|
| if (last.lexeme.length > 1) {
|
| - expressions
|
| - .add(new StringLiteral(unescapeLastStringPart(last.lexeme, quote)));
|
| + String value = unescapeLastStringPart(last.lexeme, quote);
|
| + expressions.add(astFactory.stringLiteral(value, last));
|
| }
|
| - push(new StringConcatenation(expressions)
|
| - ..fileOffset = endToken.charOffset);
|
| + push(astFactory.stringConcatenation(expressions, endToken));
|
| }
|
| }
|
|
|
| @@ -1298,7 +1298,7 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper {
|
| debugEvent("LiteralBool");
|
| bool value = optional("true", token);
|
| assert(value || optional("false", token));
|
| - push(new BoolLiteral(value)..fileOffset = token.charOffset);
|
| + push(astFactory.boolLiteral(value, token));
|
| }
|
|
|
| @override
|
|
|