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

Unified Diff: tests/compiler/dart2js/memory_compiler.dart

Issue 1235563003: Add interfaces for a new compiler API. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Rebased Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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 [],
« no previous file with comments | « tests/compiler/dart2js/library_resolution_test.dart ('k') | tests/compiler/dart2js/memory_source_file_helper.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698