| Index: tests/compiler/dart2js/memory_compiler.dart
|
| diff --git a/tests/compiler/dart2js/memory_compiler.dart b/tests/compiler/dart2js/memory_compiler.dart
|
| index 7a4a8090354743755d6165226fd3e9b9a6532315..44902d8c0e7d81930fba9117ae1dd4af199fa0da 100644
|
| --- a/tests/compiler/dart2js/memory_compiler.dart
|
| +++ b/tests/compiler/dart2js/memory_compiler.dart
|
| @@ -6,15 +6,17 @@ library dart2js.test.memory_compiler;
|
|
|
| import 'memory_source_file_helper.dart';
|
|
|
| -import 'package:compiler/src/compile_time_constants.dart';
|
|
|
| -import 'package:compiler/src/dart2jslib.dart'
|
| - show NullSink;
|
| +import 'package:compiler/src/null_compiler_output.dart'
|
| + show NullCompilerOutput;
|
|
|
| import 'package:compiler/compiler.dart' show
|
| - CompilerOutputProvider,
|
| + DiagnosticHandler;
|
| +
|
| +import 'package:compiler/compiler_new.dart' show
|
| + CompilerDiagnostics,
|
| + CompilerOutput,
|
| Diagnostic,
|
| - DiagnosticHandler,
|
| PackagesDiscoveryProvider;
|
|
|
| import 'dart:async';
|
| @@ -25,6 +27,8 @@ import 'package:compiler/src/mirrors/analyze.dart';
|
| import 'package:compiler/src/library_loader.dart'
|
| show LoadedLibraries;
|
|
|
| +import 'package:compiler/src/old_to_new_api.dart';
|
| +
|
| export 'output_collector.dart';
|
|
|
| class DiagnosticMessage {
|
| @@ -39,11 +43,15 @@ class DiagnosticMessage {
|
| String toString() => '$uri:$begin:$end:$message:$kind';
|
| }
|
|
|
| -class DiagnosticCollector {
|
| +class DiagnosticCollector implements CompilerDiagnostics {
|
| List<DiagnosticMessage> messages = <DiagnosticMessage>[];
|
|
|
| - void call(Uri uri, int begin, int end, String message,
|
| - Diagnostic kind) {
|
| + void call(Uri uri, int begin, int end, String message, Diagnostic kind) {
|
| + report(uri, begin, end, message, kind);
|
| + }
|
| +
|
| + @override
|
| + void report(Uri uri, int begin, int end, String message, Diagnostic kind) {
|
| messages.add(new DiagnosticMessage(uri, begin, end, message, kind));
|
| }
|
|
|
| @@ -67,24 +75,40 @@ class DiagnosticCollector {
|
| Iterable<DiagnosticMessage> get infos {
|
| return filterMessagesByKind(Diagnostic.INFO);
|
| }
|
| +
|
| + /// `true` if non-verbose messages has been collected.
|
| + bool get hasRegularMessages {
|
| + return messages.any((m) => m.kind != Diagnostic.VERBOSE_INFO);
|
| + }
|
| }
|
|
|
| -DiagnosticHandler createDiagnosticHandler(DiagnosticHandler diagnosticHandler,
|
| - SourceFileProvider provider,
|
| - bool showDiagnostics) {
|
| - var handler = diagnosticHandler;
|
| +class MultiDiagnostics implements CompilerDiagnostics {
|
| + final List<CompilerDiagnostics> diagnosticsList;
|
| +
|
| + const MultiDiagnostics([this.diagnosticsList = const []]);
|
| +
|
| + @override
|
| + void report(Uri uri, int begin, int end, String message, Diagnostic kind) {
|
| + for (CompilerDiagnostics diagnostics in diagnosticsList) {
|
| + diagnostics.report(uri, begin, end, message, kind);
|
| + }
|
| + }
|
| +}
|
| +
|
| +CompilerDiagnostics createCompilerDiagnostics(
|
| + CompilerDiagnostics diagnostics,
|
| + SourceFileProvider provider,
|
| + bool showDiagnostics) {
|
| + CompilerDiagnostics handler = diagnostics;
|
| if (showDiagnostics) {
|
| - if (diagnosticHandler == null) {
|
| + if (diagnostics == null) {
|
| handler = new FormattingDiagnosticHandler(provider);
|
| } else {
|
| var formattingHandler = new FormattingDiagnosticHandler(provider);
|
| - handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {
|
| - diagnosticHandler(uri, begin, end, message, kind);
|
| - formattingHandler(uri, begin, end, message, kind);
|
| - };
|
| + handler = new MultiDiagnostics([diagnostics, formattingHandler]);
|
| }
|
| - } else if (diagnosticHandler == null) {
|
| - handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {};
|
| + } else if (diagnostics == null) {
|
| + handler = new MultiDiagnostics();
|
| }
|
| return handler;
|
| }
|
| @@ -94,8 +118,8 @@ Expando<MemorySourceFileProvider> expando =
|
|
|
| Compiler compilerFor(
|
| Map<String, String> memorySourceFiles,
|
| - {DiagnosticHandler diagnosticHandler,
|
| - CompilerOutputProvider outputProvider,
|
| + {CompilerDiagnostics diagnosticHandler,
|
| + CompilerOutput outputProvider,
|
| List<String> options: const [],
|
| Compiler cachedCompiler,
|
| bool showDiagnostics: true,
|
| @@ -110,35 +134,28 @@ Compiler compilerFor(
|
| }
|
|
|
| MemorySourceFileProvider provider;
|
| - var readStringFromUri;
|
| if (cachedCompiler == null) {
|
| provider = new MemorySourceFileProvider(memorySourceFiles);
|
| - readStringFromUri = provider.readStringFromUri;
|
| // Saving the provider in case we need it later for a cached compiler.
|
| - expando[readStringFromUri] = provider;
|
| + expando[provider] = provider;
|
| } else {
|
| // When using a cached compiler, it has read a number of files from disk
|
| // already (and will not attempt to read them again due to caching). These
|
| // files must be available to the new diagnostic handler.
|
| provider = expando[cachedCompiler.provider];
|
| - readStringFromUri = cachedCompiler.provider;
|
| provider.memorySourceFiles = memorySourceFiles;
|
| }
|
| - var handler =
|
| - createDiagnosticHandler(diagnosticHandler, provider, showDiagnostics);
|
| + diagnosticHandler =
|
| + createCompilerDiagnostics(diagnosticHandler, provider, showDiagnostics);
|
|
|
| - EventSink<String> noOutputProvider(String name, String extension) {
|
| - if (name != '') throw 'Attempt to output file "$name.$extension"';
|
| - return new NullSink('$name.$extension');
|
| - }
|
| if (outputProvider == null) {
|
| - outputProvider = noOutputProvider;
|
| + outputProvider = const NullCompilerOutput();
|
| }
|
|
|
| Compiler compiler = new Compiler(
|
| - readStringFromUri,
|
| + provider,
|
| outputProvider,
|
| - handler,
|
| + diagnosticHandler,
|
| libraryRoot,
|
| packageRoot,
|
| options,
|
| @@ -236,6 +253,27 @@ class MemoryLoadedLibraries implements LoadedLibraries {
|
| Uri get rootUri => null;
|
| }
|
|
|
| +
|
| +DiagnosticHandler createDiagnosticHandler(DiagnosticHandler diagnosticHandler,
|
| + SourceFileProvider provider,
|
| + bool showDiagnostics) {
|
| + var handler = diagnosticHandler;
|
| + if (showDiagnostics) {
|
| + if (diagnosticHandler == null) {
|
| + handler = new FormattingDiagnosticHandler(provider);
|
| + } else {
|
| + var formattingHandler = new FormattingDiagnosticHandler(provider);
|
| + handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {
|
| + diagnosticHandler(uri, begin, end, message, kind);
|
| + formattingHandler(uri, begin, end, message, kind);
|
| + };
|
| + }
|
| + } else if (diagnosticHandler == null) {
|
| + handler = (Uri uri, int begin, int end, String message, Diagnostic kind) {};
|
| + }
|
| + return handler;
|
| +}
|
| +
|
| Future<MirrorSystem> mirrorSystemFor(Map<String,String> memorySourceFiles,
|
| {DiagnosticHandler diagnosticHandler,
|
| List<String> options: const [],
|
|
|