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

Unified Diff: pkg/compiler/lib/src/compile_time_constants.dart

Issue 2864363002: Remove DartString from constants. (Closed)
Patch Set: Remove toDartString Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/compiler/lib/src/constant_system_dart.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/compile_time_constants.dart
diff --git a/pkg/compiler/lib/src/compile_time_constants.dart b/pkg/compiler/lib/src/compile_time_constants.dart
index ff674e2b251e25b6e6484aa7534d1717e5fb2ae6..8882e2aeb5463f3f60805c72897130bb36c1da4a 100644
--- a/pkg/compiler/lib/src/compile_time_constants.dart
+++ b/pkg/compiler/lib/src/compile_time_constants.dart
@@ -515,11 +515,9 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
}
AstConstant visitLiteralString(LiteralString node) {
- return new AstConstant(
- context,
- node,
- new StringConstantExpression(node.dartString.slowToString()),
- constantSystem.createString(node.dartString));
+ String text = node.dartString.slowToString();
+ return new AstConstant(context, node, new StringConstantExpression(text),
+ constantSystem.createString(text));
}
AstConstant visitStringJuxtaposition(StringJuxtaposition node) {
@@ -537,8 +535,8 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
context,
node,
new ConcatenateConstantExpression([left.expression, right.expression]),
- constantSystem.createString(new DartString.concat(
- leftValue.primitiveValue, rightValue.primitiveValue)));
+ constantSystem.createString(
+ leftValue.primitiveValue + rightValue.primitiveValue));
}
AstConstant visitStringInterpolation(StringInterpolation node) {
@@ -548,8 +546,9 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
return initialString;
}
subexpressions.add(initialString.expression);
+ StringBuffer sb = new StringBuffer();
StringConstantValue initialStringValue = initialString.value;
- DartString accumulator = initialStringValue.primitiveValue;
+ sb.write(initialStringValue.primitiveValue);
for (StringInterpolationPart part in node.parts) {
AstConstant subexpression = evaluate(part.expression);
if (subexpression == null || subexpression.isError) {
@@ -557,32 +556,25 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
}
subexpressions.add(subexpression.expression);
ConstantValue expression = subexpression.value;
- DartString expressionString;
- if (expression.isNum || expression.isBool || expression.isNull) {
+ if (expression.isPrimitive) {
PrimitiveConstantValue primitive = expression;
- expressionString =
- new DartString.literal(primitive.primitiveValue.toString());
- } else if (expression.isString) {
- PrimitiveConstantValue primitive = expression;
- expressionString = primitive.primitiveValue;
+ sb.write(primitive.primitiveValue);
} else {
// TODO(johnniwinther): Specialize message to indicated that the problem
// is not constness but the types of the const expressions.
return signalNotCompileTimeConstant(part.expression);
}
- accumulator = new DartString.concat(accumulator, expressionString);
AstConstant partString = evaluate(part.string);
if (partString == null) return null;
subexpressions.add(partString.expression);
StringConstantValue partStringValue = partString.value;
- accumulator =
- new DartString.concat(accumulator, partStringValue.primitiveValue);
+ sb.write(partStringValue.primitiveValue);
}
return new AstConstant(
context,
node,
new ConcatenateConstantExpression(subexpressions),
- constantSystem.createString(accumulator));
+ constantSystem.createString(sb.toString()));
}
AstConstant visitLiteralSymbol(LiteralSymbol node) {
@@ -590,7 +582,7 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
String text = node.slowNameString;
List<AstConstant> arguments = <AstConstant>[
new AstConstant(context, node, new StringConstantExpression(text),
- constantSystem.createString(new LiteralDartString(text)))
+ constantSystem.createString(text))
];
ConstructorElement constructor =
compiler.commonElements.symbolConstructorTarget;
@@ -668,7 +660,7 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
AstConstant left = evaluate(send.receiver);
if (left != null && left.value.isString) {
StringConstantValue stringConstantValue = left.value;
- DartString string = stringConstantValue.primitiveValue;
+ String string = stringConstantValue.primitiveValue;
IntConstantValue length = constantSystem.createInt(string.length);
result = new AstConstant(context, send,
new StringLengthConstantExpression(left.expression), length);
@@ -1043,7 +1035,7 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
{'fromType': type, 'toType': commonElements.stringType});
}
- String name = firstArgument.primitiveValue.slowToString();
+ String name = firstArgument.primitiveValue;
String value = compiler.fromEnvironment(name);
AstConstant createEvaluatedConstant(ConstantValue value) {
@@ -1083,8 +1075,7 @@ class CompileTimeConstantEvaluator extends Visitor<AstConstant> {
}
} else {
assert(constructor.isStringFromEnvironmentConstructor);
- return createEvaluatedConstant(
- constantSystem.createString(new DartString.literal(value)));
+ return createEvaluatedConstant(constantSystem.createString(value));
}
}
« no previous file with comments | « no previous file | pkg/compiler/lib/src/constant_system_dart.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698