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

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

Issue 2684783003: Refactor ConstantSystem (Closed)
Patch Set: Updated cf. comments. Created 3 years, 10 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/common/backend_api.dart';
10 import 'package:compiler/src/constants/constructors.dart'; 11 import 'package:compiler/src/constants/constructors.dart';
11 import 'package:compiler/src/constants/evaluation.dart'; 12 import 'package:compiler/src/constants/evaluation.dart';
12 import 'package:compiler/src/constants/expressions.dart'; 13 import 'package:compiler/src/constants/expressions.dart';
13 import 'package:compiler/src/constants/values.dart'; 14 import 'package:compiler/src/constants/values.dart';
14 import 'package:compiler/src/constant_system_dart.dart'; 15 import 'package:compiler/src/constant_system_dart.dart';
15 import 'package:compiler/src/compiler.dart'; 16 import 'package:compiler/src/compiler.dart';
17 import 'package:compiler/src/core_types.dart';
16 import 'package:compiler/src/elements/elements.dart'; 18 import 'package:compiler/src/elements/elements.dart';
17 import 'package:compiler/src/elements/resolution_types.dart'; 19 import 'package:compiler/src/elements/resolution_types.dart';
18 import 'memory_compiler.dart'; 20 import 'memory_compiler.dart';
19 21
20 class TestData { 22 class TestData {
21 /// Declarations needed for the [constants]. 23 /// Declarations needed for the [constants].
22 final String declarations; 24 final String declarations;
23 25
24 /// Tested constants. 26 /// Tested constants.
25 final List constants; 27 final List constants;
26 28
27 const TestData(this.declarations, this.constants); 29 const TestData(this.declarations, this.constants);
28 } 30 }
29 31
30 class ConstantData { 32 class ConstantData {
31 /// Source code for the constant expression. 33 /// Source code for the constant expression.
32 final String code; 34 final String code;
33 35
34 /// Map from environment to expected constant value as structured text. 36 /// Map from environment to expected constant value as structured text.
35 final Map<Map<String, String>, String> expectedValues; 37 final Map<Map<String, String>, String> expectedValues;
36 38
37 const ConstantData(this.code, this.expectedValues); 39 const ConstantData(this.code, this.expectedValues);
38 } 40 }
39 41
40 class MemoryEnvironment implements Environment { 42 class MemoryEnvironment implements Environment {
41 final Compiler compiler; 43 final Compiler _compiler;
42 final Map<String, String> env; 44 final Map<String, String> env;
43 45
44 MemoryEnvironment(this.compiler, [this.env = const <String, String>{}]); 46 MemoryEnvironment(this._compiler, [this.env = const <String, String>{}]);
45 47
46 @override 48 @override
47 String readFromEnvironment(String name) => env[name]; 49 String readFromEnvironment(String name) => env[name];
48 50
49 @override 51 @override
50 ResolutionInterfaceType substByContext( 52 ResolutionInterfaceType substByContext(
51 ResolutionInterfaceType base, ResolutionInterfaceType target) { 53 ResolutionInterfaceType base, ResolutionInterfaceType target) {
52 return base.substByContext(target); 54 return base.substByContext(target);
53 } 55 }
54 56
55 @override 57 @override
56 ConstantConstructor getConstructorConstant(ConstructorElement constructor) { 58 ConstantConstructor getConstructorConstant(ConstructorElement constructor) {
57 return constructor.constantConstructor; 59 return constructor.constantConstructor;
58 } 60 }
59 61
60 @override 62 @override
61 ConstantExpression getFieldConstant(FieldElement field) { 63 ConstantExpression getFieldConstant(FieldElement field) {
62 return field.constant; 64 return field.constant;
63 } 65 }
64 66
65 @override 67 @override
66 ConstantExpression getLocalConstant(LocalVariableElement local) { 68 ConstantExpression getLocalConstant(LocalVariableElement local) {
67 return local.constant; 69 return local.constant;
68 } 70 }
71
72 @override
73 CommonElements get commonElements => _compiler.commonElements;
74
75 @override
76 BackendClasses get backendClasses => _compiler.backend.backendClasses;
69 } 77 }
70 78
71 const List<TestData> DATA = const [ 79 const List<TestData> DATA = const [
72 const TestData('', const [ 80 const TestData('', const [
73 const ConstantData('null', const {const {}: 'NullConstant'}), 81 const ConstantData('null', const {const {}: 'NullConstant'}),
74 const ConstantData('false', const {const {}: 'BoolConstant(false)'}), 82 const ConstantData('false', const {const {}: 'BoolConstant(false)'}),
75 const ConstantData('true', const {const {}: 'BoolConstant(true)'}), 83 const ConstantData('true', const {const {}: 'BoolConstant(true)'}),
76 const ConstantData('0', const {const {}: 'IntConstant(0)'}), 84 const ConstantData('0', const {const {}: 'IntConstant(0)'}),
77 const ConstantData('0.0', const {const {}: 'DoubleConstant(0.0)'}), 85 const ConstantData('0.0', const {const {}: 'DoubleConstant(0.0)'}),
78 const ConstantData('"foo"', const {const {}: 'StringConstant("foo")'}), 86 const ConstantData('"foo"', const {const {}: 'StringConstant("foo")'}),
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 constant.evaluate(environment, DART_CONSTANT_SYSTEM); 289 constant.evaluate(environment, DART_CONSTANT_SYSTEM);
282 String valueText = value.toStructuredText(); 290 String valueText = value.toStructuredText();
283 Expect.equals( 291 Expect.equals(
284 expectedText, 292 expectedText,
285 valueText, 293 valueText,
286 "Unexpected value '${valueText}' for contant " 294 "Unexpected value '${valueText}' for contant "
287 "`${constant.toDartText()}`, expected '${expectedText}'."); 295 "`${constant.toDartText()}`, expected '${expectedText}'.");
288 }); 296 });
289 }); 297 });
290 } 298 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart ('k') | tests/compiler/dart2js/mock_libraries.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698