Index: tests/compiler/dart2js/exit_code_test.dart |
diff --git a/tests/compiler/dart2js/exit_code_test.dart b/tests/compiler/dart2js/exit_code_test.dart |
index acb111b7aaa1c5b04f4c0768ac0cc1ff7de04188..ff039751d7a542607cb3a901e4a049dda2821c24 100644 |
--- a/tests/compiler/dart2js/exit_code_test.dart |
+++ b/tests/compiler/dart2js/exit_code_test.dart |
@@ -17,6 +17,7 @@ import 'package:compiler/src/common/codegen.dart'; |
import 'package:compiler/src/compile_time_constants.dart'; |
import 'package:compiler/src/compiler.dart'; |
import 'package:compiler/src/dart2js.dart' as entry; |
+import 'package:compiler/src/diagnostics/diagnostic_listener.dart'; |
import 'package:compiler/src/diagnostics/invariant.dart'; |
import 'package:compiler/src/diagnostics/messages.dart'; |
import 'package:compiler/src/diagnostics/spannable.dart'; |
@@ -28,11 +29,13 @@ import 'package:compiler/src/null_compiler_output.dart'; |
import 'package:compiler/src/old_to_new_api.dart'; |
import 'package:compiler/src/resolution/resolution.dart'; |
import 'package:compiler/src/scanner/scanner_task.dart'; |
+import 'diagnostic_reporter_helper.dart'; |
class TestCompiler extends apiimpl.Compiler { |
final String testMarker; |
final String testType; |
final Function onTest; |
+ DiagnosticReporter reporter; |
TestCompiler(api.CompilerInput inputProvider, |
api.CompilerOutput outputProvider, |
@@ -50,6 +53,7 @@ class TestCompiler extends apiimpl.Compiler { |
packageRoot, options, environment, packageConfig, findPackages) { |
scanner = new TestScanner(this); |
resolver = new TestResolver(this, backend.constantCompilerTask); |
+ reporter = new TestDiagnosticReporter(this, super.reporter); |
test('Compiler'); |
} |
@@ -78,13 +82,6 @@ class TestCompiler extends apiimpl.Compiler { |
return super.codegen(work, world); |
} |
- withCurrentElement(Element element, f()) { |
- return super.withCurrentElement(element, () { |
- test('Compiler.withCurrentElement'); |
- return f(); |
- }); |
- } |
- |
test(String marker) { |
if (marker == testMarker) { |
switch (testType) { |
@@ -98,19 +95,19 @@ class TestCompiler extends apiimpl.Compiler { |
break; |
case 'warning': |
onTest(testMarker, testType); |
- reportWarning(createMessage( |
+ reporter.reportWarningMessage( |
NO_LOCATION_SPANNABLE, |
- MessageKind.GENERIC, {'text': marker})); |
+ MessageKind.GENERIC, {'text': marker}); |
break; |
case 'error': |
onTest(testMarker, testType); |
- reportError(createMessage( |
+ reporter.reportErrorMessage( |
NO_LOCATION_SPANNABLE, |
- MessageKind.GENERIC, {'text': marker})); |
+ MessageKind.GENERIC, {'text': marker}); |
break; |
case 'internalError': |
onTest(testMarker, testType); |
- internalError(NO_LOCATION_SPANNABLE, marker); |
+ reporter.internalError(NO_LOCATION_SPANNABLE, marker); |
break; |
case 'NoSuchMethodError': |
onTest(testMarker, testType); |
@@ -124,6 +121,21 @@ class TestCompiler extends apiimpl.Compiler { |
} |
} |
+class TestDiagnosticReporter extends DiagnosticReporterWrapper { |
+ final TestCompiler compiler; |
+ final DiagnosticReporter reporter; |
+ |
+ TestDiagnosticReporter(this.compiler, this.reporter); |
+ |
+ @override |
+ withCurrentElement(Element element, f()) { |
+ return super.withCurrentElement(element, () { |
+ compiler.test('Compiler.withCurrentElement'); |
+ return f(); |
+ }); |
+ } |
+} |
+ |
class TestScanner extends ScannerTask { |
TestScanner(TestCompiler compiler) : super(compiler); |