| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'package:kernel/class_hierarchy.dart'; | 4 import 'package:kernel/class_hierarchy.dart'; |
| 5 import 'package:kernel/core_types.dart'; | 5 import 'package:kernel/core_types.dart'; |
| 6 import 'package:kernel/kernel.dart'; | 6 import 'package:kernel/kernel.dart'; |
| 7 import 'package:kernel/transformations/insert_covariance_checks.dart'; | 7 import 'package:kernel/transformations/insert_covariance_checks.dart'; |
| 8 import 'package:kernel/transformations/insert_type_checks.dart'; | 8 import 'package:kernel/transformations/insert_type_checks.dart'; |
| 9 import 'package:kernel/transformations/mixin_full_resolution.dart'; | 9 import 'package:kernel/transformations/mixin_full_resolution.dart'; |
| 10 import 'package:kernel/transformations/treeshaker.dart'; | 10 import 'package:kernel/transformations/treeshaker.dart'; |
| 11 import 'package:kernel/type_checker.dart'; | 11 import 'package:kernel/type_checker.dart'; |
| 12 import 'package:path/path.dart' as pathlib; | 12 import 'package:path/path.dart' as pathlib; |
| 13 | 13 |
| 14 import 'baseline_tester.dart'; | 14 import 'baseline_tester.dart'; |
| 15 | 15 |
| 16 class StrongModeTest extends TestTarget { | 16 class StrongModeTest extends TestTarget { |
| 17 @override | 17 @override |
| 18 List<String> get extraRequiredLibraries => []; | 18 List<String> get extraRequiredLibraries => []; |
| 19 | 19 |
| 20 @override | 20 @override |
| 21 String get name => 'strong-mode-test'; | 21 String get name => 'strong-mode-test'; |
| 22 | 22 |
| 23 @override | 23 @override |
| 24 bool get strongMode => true; | 24 bool get strongMode => true; |
| 25 | 25 |
| 26 @override | 26 @override |
| 27 List<String> transformProgram(Program program) { | 27 List<String> performModularTransformations(Program program) { |
| 28 new MixinFullResolution().transform(program); |
| 29 return const <String>[]; |
| 30 } |
| 31 |
| 32 @override |
| 33 List<String> performGlobalTransformations(Program program) { |
| 28 List<String> errors = <String>[]; | 34 List<String> errors = <String>[]; |
| 29 new MixinFullResolution().transform(program); | |
| 30 new InsertTypeChecks().transformProgram(program); | 35 new InsertTypeChecks().transformProgram(program); |
| 31 new InsertCovarianceChecks().transformProgram(program); | 36 new InsertCovarianceChecks().transformProgram(program); |
| 32 new TestTypeChecker( | 37 new TestTypeChecker( |
| 33 errors, new CoreTypes(program), new ClassHierarchy(program)) | 38 errors, new CoreTypes(program), new ClassHierarchy(program)) |
| 34 .checkProgram(program); | 39 .checkProgram(program); |
| 35 new TreeShaker(program, strongMode: true).transform(program); | 40 new TreeShaker(program, strongMode: true).transform(program); |
| 36 program.accept(new TreeShakerCheck()); | 41 program.accept(new TreeShakerCheck()); |
| 37 return errors; | 42 return errors; |
| 38 } | 43 } |
| 39 } | 44 } |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 throw 'Code not tree-shaken at ${node.location}.\n' | 76 throw 'Code not tree-shaken at ${node.location}.\n' |
| 72 'The string literal $node is used to indicate that the code is ' | 77 'The string literal $node is used to indicate that the code is ' |
| 73 'expected to be removed by strong-mode tree shaking'; | 78 'expected to be removed by strong-mode tree shaking'; |
| 74 } | 79 } |
| 75 } | 80 } |
| 76 } | 81 } |
| 77 | 82 |
| 78 void main() { | 83 void main() { |
| 79 runBaselineTests('strong-mode', new StrongModeTest()); | 84 runBaselineTests('strong-mode', new StrongModeTest()); |
| 80 } | 85 } |
| OLD | NEW |