OLD | NEW |
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 constant_expression_test; | 5 library constant_expression_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 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 memorySourceFiles: {'main.dart': source}, options: ['--analyze-all']); | 210 memorySourceFiles: {'main.dart': source}, options: ['--analyze-all']); |
211 Compiler compiler = result.compiler; | 211 Compiler compiler = result.compiler; |
212 MemoryEnvironment environment = new MemoryEnvironment(compiler); | 212 MemoryEnvironment environment = new MemoryEnvironment(compiler); |
213 var library = compiler.mainApp; | 213 var library = compiler.mainApp; |
214 constants.forEach((String name, ConstantData data) { | 214 constants.forEach((String name, ConstantData data) { |
215 FieldElement field = library.localLookup(name); | 215 FieldElement field = library.localLookup(name); |
216 var constant = field.constant; | 216 var constant = field.constant; |
217 Expect.equals( | 217 Expect.equals( |
218 data.kind, | 218 data.kind, |
219 constant.kind, | 219 constant.kind, |
220 "Unexpected kind '${constant.kind}' for contant " | 220 "Unexpected kind '${constant.kind}' for constant " |
221 "`${constant.toDartText()}`, expected '${data.kind}'."); | 221 "`${constant.toDartText()}`, expected '${data.kind}'."); |
222 Expect.equals( | 222 Expect.equals( |
223 data.text, | 223 data.text, |
224 constant.toDartText(), | 224 constant.toDartText(), |
225 "Unexpected text '${constant.toDartText()}' for contant, " | 225 "Unexpected text '${constant.toDartText()}' for constant, " |
226 "expected '${data.text}'."); | 226 "expected '${data.text}'."); |
227 if (data.type != null) { | 227 if (data.type != null) { |
228 String instanceType = | 228 String instanceType = |
229 constant.computeInstanceType(environment).toString(); | 229 constant.computeInstanceType(environment).toString(); |
230 Expect.equals( | 230 Expect.equals( |
231 data.type, | 231 data.type, |
232 instanceType, | 232 instanceType, |
233 "Unexpected type '$instanceType' for contant " | 233 "Unexpected type '$instanceType' for constant " |
234 "`${constant.toDartText()}`, expected '${data.type}'."); | 234 "`${constant.toDartText()}`, expected '${data.type}'."); |
235 } | 235 } |
236 if (data.fields != null) { | 236 if (data.fields != null) { |
237 Map instanceFields = constant.computeInstanceFields(environment); | 237 Map instanceFields = constant.computeInstanceFields(environment); |
238 Expect.equals( | 238 Expect.equals( |
239 data.fields.length, | 239 data.fields.length, |
240 instanceFields.length, | 240 instanceFields.length, |
241 "Unexpected field count ${instanceFields.length} for contant " | 241 "Unexpected field count ${instanceFields.length} for constant " |
242 "`${constant.toDartText()}`, expected '${data.fields.length}'."); | 242 "`${constant.toDartText()}`, expected '${data.fields.length}'."); |
243 instanceFields.forEach((field, expression) { | 243 instanceFields.forEach((field, expression) { |
244 String name = '$field'; | 244 String name = '$field'; |
245 String expression = instanceFields[field].toDartText(); | 245 String expression = instanceFields[field].toDartText(); |
246 String expected = data.fields[name]; | 246 String expected = data.fields[name]; |
247 Expect.equals( | 247 Expect.equals( |
248 expected, | 248 expected, |
249 expression, | 249 expression, |
250 "Unexpected field expression ${expression} for field '$name' in " | 250 "Unexpected field expression ${expression} for field '$name' in " |
251 "contant `${constant.toDartText()}`, expected '${expected}'."); | 251 "constant `${constant.toDartText()}`, expected '${expected}'."); |
252 }); | 252 }); |
253 } | 253 } |
254 }); | 254 }); |
255 } | 255 } |
OLD | NEW |