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

Side by Side Diff: tests/compiler/dart2js/constant_expression_evaluate_test.dart

Issue 1166723002: Add StringLengthConstantExpression (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Update .fromEnvironment test expectations. Created 5 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js.constants.expressions.evaluate_test; 5 library dart2js.constants.expressions.evaluate_test;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'package:async_helper/async_helper.dart'; 8 import 'package:async_helper/async_helper.dart';
9 import 'package:expect/expect.dart'; 9 import 'package:expect/expect.dart';
10 import 'package:compiler/src/constants/expressions.dart'; 10 import 'package:compiler/src/constants/expressions.dart';
(...skipping 20 matching lines...) Expand all
31 final Map<Map<String, String>, String> expectedValues; 31 final Map<Map<String, String>, String> expectedValues;
32 32
33 const ConstantData(this.code, 33 const ConstantData(this.code,
34 this.expectedValues); 34 this.expectedValues);
35 } 35 }
36 36
37 class MemoryEnvironment implements Environment { 37 class MemoryEnvironment implements Environment {
38 final Compiler compiler; 38 final Compiler compiler;
39 final Map<String, String> env; 39 final Map<String, String> env;
40 40
41 MemoryEnvironment(this.compiler, [this.env = const <String, String>{}]); 41 MemoryEnvironment(this.compiler,
42 [this.env = const <String, String>{}]);
42 43
43 @override 44 @override
44 String readFromEnvironment(String name) => env[name]; 45 String readFromEnvironment(String name) => env[name];
45 } 46 }
46 47
47 const List<TestData> DATA = const [ 48 const List<TestData> DATA = const [
48 const TestData('', const [ 49 const TestData('', const [
49 const ConstantData('null', const { const {} : 'NullConstant' }), 50 const ConstantData('null', const { const {} : 'NullConstant' }),
50 const ConstantData('false', const { const {} : 'BoolConstant(false)' }), 51 const ConstantData('false', const { const {} : 'BoolConstant(false)' }),
51 const ConstantData('true', const { const {} : 'BoolConstant(true)' }), 52 const ConstantData('true', const { const {} : 'BoolConstant(true)' }),
52 const ConstantData('0', const { const {} : 'IntConstant(0)' }), 53 const ConstantData('0', const { const {} : 'IntConstant(0)' }),
53 const ConstantData('0.0', const { const {} : 'DoubleConstant(0.0)' }), 54 const ConstantData('0.0', const { const {} : 'DoubleConstant(0.0)' }),
54 const ConstantData('"foo"', const { const {} : 'StringConstant("foo")' }), 55 const ConstantData('"foo"', const { const {} : 'StringConstant("foo")' }),
55 const ConstantData('1 + 2', const { const {} : 'IntConstant(3)' }), 56 const ConstantData('1 + 2', const { const {} : 'IntConstant(3)' }),
56 const ConstantData('-(1)', const { const {} : 'IntConstant(-1)' }), 57 const ConstantData('-(1)', const { const {} : 'IntConstant(-1)' }),
58 const ConstantData('"foo".length', const { const {} : 'IntConstant(3)' }),
57 const ConstantData('identical(0, 1)', 59 const ConstantData('identical(0, 1)',
58 const { const {} : 'BoolConstant(false)' }), 60 const { const {} : 'BoolConstant(false)' }),
59 const ConstantData('"a" "b"', const { const {} : 'StringConstant("ab")' }), 61 const ConstantData('"a" "b"', const { const {} : 'StringConstant("ab")' }),
60 const ConstantData('identical', 62 const ConstantData('identical',
61 const { const {} : 'FunctionConstant(identical)' }), 63 const { const {} : 'FunctionConstant(identical)' }),
62 const ConstantData('true ? 0 : 1', const { const {} : 'IntConstant(0)' }), 64 const ConstantData('true ? 0 : 1', const { const {} : 'IntConstant(0)' }),
63 const ConstantData('proxy', 65 const ConstantData('proxy',
64 const { const {} : 'ConstructedConstant(_Proxy())' }), 66 const { const {} : 'ConstructedConstant(_Proxy())' }),
65 const ConstantData('Object', const { const {} : 'TypeConstant(Object)' }), 67 const ConstantData('Object', const { const {} : 'TypeConstant(Object)' }),
66 const ConstantData('const [0, 1]', 68 const ConstantData('const [0, 1]',
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 'ConstructedConstant(C(field1=BoolConstant(false),' 139 'ConstructedConstant(C(field1=BoolConstant(false),'
138 'field2=IntConstant(87)))', }), 140 'field2=IntConstant(87)))', }),
139 ]), 141 ]),
140 const TestData(''' 142 const TestData('''
141 class A<T> implements B { 143 class A<T> implements B {
142 final field1; 144 final field1;
143 const A({this.field1:42}); 145 const A({this.field1:42});
144 } 146 }
145 class B<S> implements C { 147 class B<S> implements C {
146 const factory B({field1}) = A<B<S>>; 148 const factory B({field1}) = A<B<S>>;
147 // TODO(johnniwinther): Enable this when the constructor evaluator doesn't 149 const factory B.named() = A<S>;
148 // crash:
149 /*const factory B.named() = A<S>;*/
150 } 150 }
151 class C<U> { 151 class C<U> {
152 const factory C({field1}) = A<B<double>>; 152 const factory C({field1}) = A<B<double>>;
153 } 153 }
154 ''', const [ 154 ''', const [
155 const ConstantData('const A()', 155 const ConstantData('const A()',
156 const { const {} : 156 const { const {} :
157 'ConstructedConstant(A<dynamic>(field1=IntConstant(42)))' }), 157 'ConstructedConstant(A<dynamic>(field1=IntConstant(42)))' }),
158 const ConstantData('const A<int>(field1: 87)', 158 const ConstantData('const A<int>(field1: 87)',
159 const { const {} : 159 const { const {} :
160 'ConstructedConstant(A<int>(field1=IntConstant(87)))' }), 160 'ConstructedConstant(A<int>(field1=IntConstant(87)))' }),
161 const ConstantData('const B()', 161 const ConstantData('const B()',
162 const { const {} : 162 const { const {} :
163 'ConstructedConstant(A<B<dynamic>>(field1=IntConstant(42)))' }), 163 'ConstructedConstant(A<B<dynamic>>(field1=IntConstant(42)))' }),
164 const ConstantData('const B<int>()', 164 const ConstantData('const B<int>()',
165 const { const {} : 165 const { const {} :
166 'ConstructedConstant(A<B<int>>(field1=IntConstant(42)))' }), 166 'ConstructedConstant(A<B<int>>(field1=IntConstant(42)))' }),
167 const ConstantData('const B<int>(field1: 87)', 167 const ConstantData('const B<int>(field1: 87)',
168 const { const {} : 168 const { const {} :
169 'ConstructedConstant(A<B<int>>(field1=IntConstant(87)))' }), 169 'ConstructedConstant(A<B<int>>(field1=IntConstant(87)))' }),
170 const ConstantData('const C<int>(field1: 87)', 170 const ConstantData('const C<int>(field1: 87)',
171 const { const {} : 171 const { const {} :
172 'ConstructedConstant(A<B<double>>(field1=IntConstant(87)))' }), 172 'ConstructedConstant(A<B<double>>(field1=IntConstant(87)))' }),
173 // TODO(johnniwinther): Enable this when the constructor evaluator doesn't 173 const ConstantData('const B<int>.named()',
174 // crash:
175 /*const ConstantData('const B<int>.named()',
176 const { const {} : 174 const { const {} :
177 'ConstructedConstant(A<int>(field1=IntConstant(42)))' }),*/ 175 'ConstructedConstant(A<int>(field1=IntConstant(42)))' }),
178 ]), 176 ]),
179 const TestData(''' 177 const TestData('''
180 const c = const int.fromEnvironment("foo", defaultValue: 5); 178 const c = const int.fromEnvironment("foo", defaultValue: 5);
181 const d = const int.fromEnvironment("bar", defaultValue: 10); 179 const d = const int.fromEnvironment("bar", defaultValue: 10);
182 180
183 class A { 181 class A {
184 final field; 182 final field;
185 const A(a, b) : field = a + b; 183 const A(a, b) : field = a + b;
186 } 184 }
187 185
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 ConstantValue value = 228 ConstantValue value =
231 constant.evaluate(environment, DART_CONSTANT_SYSTEM); 229 constant.evaluate(environment, DART_CONSTANT_SYSTEM);
232 String valueText = value.toStructuredString(); 230 String valueText = value.toStructuredString();
233 Expect.equals(expectedText, valueText, 231 Expect.equals(expectedText, valueText,
234 "Unexpected value '${valueText}' for contant " 232 "Unexpected value '${valueText}' for contant "
235 "`${constant.getText()}`, expected '${expectedText}'."); 233 "`${constant.getText()}`, expected '${expectedText}'.");
236 }); 234 });
237 }); 235 });
238 }); 236 });
239 } 237 }
OLDNEW
« no previous file with comments | « pkg/docgen/lib/src/models/model_helpers.dart ('k') | tests/compiler/dart2js/constant_expression_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698