| 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 // Test that the compiler can generates code with compile time error according | 5 // Test that the compiler can generates code with compile time error according |
| 6 // to the compiler options. | 6 // to the compiler options. |
| 7 | 7 |
| 8 library dart2js.test.generate_code_with_compile_time_errors; | 8 library dart2js.test.generate_code_with_compile_time_errors; |
| 9 | 9 |
| 10 import 'package:expect/expect.dart'; | 10 import 'package:expect/expect.dart'; |
| 11 import 'package:async_helper/async_helper.dart'; | 11 import 'package:async_helper/async_helper.dart'; |
| 12 import 'package:compiler/src/compiler.dart'; | 12 import 'package:compiler/src/compiler.dart'; |
| 13 import 'package:compiler/src/dart_backend/dart_backend.dart'; | |
| 14 import 'package:compiler/src/js_backend/js_backend.dart'; | 13 import 'package:compiler/src/js_backend/js_backend.dart'; |
| 15 import 'memory_compiler.dart'; | 14 import 'memory_compiler.dart'; |
| 16 import 'output_collector.dart'; | 15 import 'output_collector.dart'; |
| 17 | 16 |
| 18 const MEMORY_SOURCE_FILES = const { | 17 const MEMORY_SOURCE_FILES = const { |
| 19 'main.dart': ''' | 18 'main.dart': ''' |
| 20 foo() { | 19 foo() { |
| 21 const list = []; | 20 const list = []; |
| 22 } | 21 } |
| 23 | 22 |
| (...skipping 22 matching lines...) Expand all Loading... |
| 46 collector.warnings.isEmpty, | 45 collector.warnings.isEmpty, |
| 47 "Unexpected warnings: ${collector.warnings}"); | 46 "Unexpected warnings: ${collector.warnings}"); |
| 48 Expect.isFalse( | 47 Expect.isFalse( |
| 49 collector.errors.isEmpty, | 48 collector.errors.isEmpty, |
| 50 "Expected compile-time errors."); | 49 "Expected compile-time errors."); |
| 51 Expect.equals( | 50 Expect.equals( |
| 52 expectHint, | 51 expectHint, |
| 53 collector.hints.isNotEmpty, | 52 collector.hints.isNotEmpty, |
| 54 "Unexpected hints: ${collector.warnings}"); | 53 "Unexpected hints: ${collector.warnings}"); |
| 55 | 54 |
| 56 bool isCodeGenerated; | 55 JavaScriptBackend backend = compiler.backend; |
| 57 if (options.contains('--output-type=dart')) { | 56 bool isCodeGenerated = backend.generatedCode.isNotEmpty; |
| 58 DartBackend backend = compiler.backend; | |
| 59 isCodeGenerated = backend.outputter.libraryInfo != null; | |
| 60 } else { | |
| 61 JavaScriptBackend backend = compiler.backend; | |
| 62 isCodeGenerated = backend.generatedCode.isNotEmpty; | |
| 63 } | |
| 64 Expect.equals( | 57 Expect.equals( |
| 65 expectedCodeGenerated, | 58 expectedCodeGenerated, |
| 66 isCodeGenerated, | 59 isCodeGenerated, |
| 67 expectedCodeGenerated | 60 expectedCodeGenerated |
| 68 ? "Expected generated code for options $options." | 61 ? "Expected generated code for options $options." |
| 69 : "Expected no code generated for options $options."); | 62 : "Expected no code generated for options $options."); |
| 70 Expect.equals( | 63 Expect.equals( |
| 71 expectedOutput, | 64 expectedOutput, |
| 72 outputCollector.outputMap.isNotEmpty, | 65 outputCollector.outputMap.isNotEmpty, |
| 73 expectedOutput | 66 expectedOutput |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 107 expectedCodeGenerated: false, | 100 expectedCodeGenerated: false, |
| 108 expectedOutput: false, | 101 expectedOutput: false, |
| 109 expectHint: true); | 102 expectHint: true); |
| 110 await test( | 103 await test( |
| 111 ['--use-cps-ir', | 104 ['--use-cps-ir', |
| 112 '--generate-code-with-compile-time-errors', | 105 '--generate-code-with-compile-time-errors', |
| 113 '--test-mode'], | 106 '--test-mode'], |
| 114 expectedCodeGenerated: false, | 107 expectedCodeGenerated: false, |
| 115 expectedOutput: false, | 108 expectedOutput: false, |
| 116 expectHint: true); | 109 expectHint: true); |
| 117 | |
| 118 await test( | |
| 119 ['--output-type=dart'], | |
| 120 expectedCodeGenerated: false, | |
| 121 expectedOutput: false); | |
| 122 await test( | |
| 123 ['--output-type=dart', '--test-mode'], | |
| 124 expectedCodeGenerated: false, | |
| 125 expectedOutput: false); | |
| 126 await test( | |
| 127 ['--output-type=dart', '--generate-code-with-compile-time-errors'], | |
| 128 expectedCodeGenerated: false, | |
| 129 expectedOutput: false, | |
| 130 expectHint: true); | |
| 131 await test( | |
| 132 ['--output-type=dart', | |
| 133 '--generate-code-with-compile-time-errors', | |
| 134 '--test-mode'], | |
| 135 expectedCodeGenerated: false, | |
| 136 expectedOutput: false, | |
| 137 expectHint: true); | |
| 138 }); | 110 }); |
| 139 } | 111 } |
| OLD | NEW |