| Index: tests/compiler/dart2js/mock_compiler.dart
|
| diff --git a/tests/compiler/dart2js/mock_compiler.dart b/tests/compiler/dart2js/mock_compiler.dart
|
| index 5d83c5dd1336973a68e7b17d4b122992a85b1e6a..7469f0c81f0e5828fa8506c12b0e0b6a5db25701 100644
|
| --- a/tests/compiler/dart2js/mock_compiler.dart
|
| +++ b/tests/compiler/dart2js/mock_compiler.dart
|
| @@ -8,8 +8,7 @@ import 'dart:async';
|
| import 'dart:collection';
|
|
|
| import 'package:compiler/compiler.dart' as api;
|
| -import 'package:compiler/src/common/names.dart' show
|
| - Uris;
|
| +import 'package:compiler/src/common/names.dart' show Uris;
|
| import 'package:compiler/src/constants/expressions.dart';
|
| import 'package:compiler/src/dart_types.dart' show DartType;
|
| import 'package:compiler/src/diagnostics/diagnostic_listener.dart';
|
| @@ -17,13 +16,12 @@ import 'package:compiler/src/diagnostics/source_span.dart';
|
| import 'package:compiler/src/diagnostics/spannable.dart';
|
| import 'package:compiler/src/elements/elements.dart';
|
| import 'package:compiler/src/elements/visitor.dart';
|
| -import 'package:compiler/src/js_backend/backend_helpers.dart' show
|
| - BackendHelpers;
|
| -import 'package:compiler/src/js_backend/lookup_map_analysis.dart' show
|
| - LookupMapAnalysis;
|
| +import 'package:compiler/src/js_backend/backend_helpers.dart'
|
| + show BackendHelpers;
|
| +import 'package:compiler/src/js_backend/lookup_map_analysis.dart'
|
| + show LookupMapAnalysis;
|
| import 'package:compiler/src/io/source_file.dart';
|
| -import 'package:compiler/src/options.dart' show
|
| - CompilerOptions;
|
| +import 'package:compiler/src/options.dart' show CompilerOptions;
|
| import 'package:compiler/src/resolution/members.dart';
|
| import 'package:compiler/src/resolution/registry.dart';
|
| import 'package:compiler/src/resolution/scope.dart';
|
| @@ -34,18 +32,14 @@ import 'package:compiler/src/tree/tree.dart';
|
| import 'package:compiler/src/old_to_new_api.dart';
|
| import 'parser_helper.dart';
|
|
|
| -import 'package:compiler/src/elements/modelx.dart' show
|
| - ElementX,
|
| - LibraryElementX,
|
| - ErroneousElementX,
|
| - FunctionElementX;
|
| +import 'package:compiler/src/elements/modelx.dart'
|
| + show ElementX, LibraryElementX, ErroneousElementX, FunctionElementX;
|
|
|
| import 'package:compiler/src/compiler.dart';
|
| import 'package:compiler/src/common/tasks.dart' show Measurer;
|
|
|
| -import 'package:compiler/src/deferred_load.dart' show
|
| - DeferredLoadTask,
|
| - OutputUnit;
|
| +import 'package:compiler/src/deferred_load.dart'
|
| + show DeferredLoadTask, OutputUnit;
|
|
|
| import 'mock_libraries.dart';
|
| import 'diagnostic_helper.dart';
|
| @@ -58,9 +52,11 @@ typedef String LibrarySourceProvider(Uri uri);
|
|
|
| class MockCompiler extends Compiler {
|
| api.DiagnosticHandler diagnosticHandler;
|
| +
|
| /// Expected number of warnings. If `null`, the number of warnings is
|
| /// not checked.
|
| final int expectedWarnings;
|
| +
|
| /// Expected number of errors. If `null`, the number of errors is not checked.
|
| final int expectedErrors;
|
| final Map<String, SourceFile> sourceFiles;
|
| @@ -74,70 +70,68 @@ class MockCompiler extends Compiler {
|
|
|
| MockCompiler.internal(
|
| {Map<String, String> coreSource,
|
| - bool enableTypeAssertions: false,
|
| - bool enableUserAssertions: false,
|
| - bool enableMinification: false,
|
| - bool disableTypeInference: false,
|
| - bool analyzeAll: false,
|
| - bool analyzeOnly: false,
|
| - bool preserveComments: false,
|
| - // Our unit tests check code generation output that is
|
| - // affected by inlining support.
|
| - bool disableInlining: true,
|
| - bool trustTypeAnnotations: false,
|
| - bool trustJSInteropTypeAnnotations: false,
|
| - bool enableAsyncAwait: false,
|
| - int this.expectedWarnings,
|
| - int this.expectedErrors,
|
| - api.CompilerOutputProvider outputProvider,
|
| - String patchVersion,
|
| - LibrarySourceProvider this.librariesOverride})
|
| + bool enableTypeAssertions: false,
|
| + bool enableUserAssertions: false,
|
| + bool enableMinification: false,
|
| + bool disableTypeInference: false,
|
| + bool analyzeAll: false,
|
| + bool analyzeOnly: false,
|
| + bool preserveComments: false,
|
| + // Our unit tests check code generation output that is
|
| + // affected by inlining support.
|
| + bool disableInlining: true,
|
| + bool trustTypeAnnotations: false,
|
| + bool trustJSInteropTypeAnnotations: false,
|
| + bool enableAsyncAwait: false,
|
| + int this.expectedWarnings,
|
| + int this.expectedErrors,
|
| + api.CompilerOutputProvider outputProvider,
|
| + String patchVersion,
|
| + LibrarySourceProvider this.librariesOverride})
|
| : sourceFiles = new Map<String, SourceFile>(),
|
| testedPatchVersion = patchVersion,
|
| - super(options: new CompilerOptions(
|
| - entryPoint: new Uri(scheme: 'mock'),
|
| - libraryRoot: Uri.parse('placeholder_library_root_for_mock/'),
|
| - enableTypeAssertions: enableTypeAssertions,
|
| - enableUserAssertions: enableUserAssertions,
|
| - disableInlining: disableInlining,
|
| - enableAssertMessage: true,
|
| - enableMinification: enableMinification,
|
| - disableTypeInference: disableTypeInference,
|
| - analyzeAll: analyzeAll,
|
| - analyzeOnly: analyzeOnly,
|
| - preserveComments: preserveComments,
|
| - trustTypeAnnotations: trustTypeAnnotations,
|
| - trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations,
|
| - shownPackageWarnings: const []),
|
| - outputProvider: new LegacyCompilerOutput(outputProvider)) {
|
| -
|
| + super(
|
| + options: new CompilerOptions(
|
| + entryPoint: new Uri(scheme: 'mock'),
|
| + libraryRoot: Uri.parse('placeholder_library_root_for_mock/'),
|
| + enableTypeAssertions: enableTypeAssertions,
|
| + enableUserAssertions: enableUserAssertions,
|
| + disableInlining: disableInlining,
|
| + enableAssertMessage: true,
|
| + enableMinification: enableMinification,
|
| + disableTypeInference: disableTypeInference,
|
| + analyzeAll: analyzeAll,
|
| + analyzeOnly: analyzeOnly,
|
| + preserveComments: preserveComments,
|
| + trustTypeAnnotations: trustTypeAnnotations,
|
| + trustJSInteropTypeAnnotations: trustJSInteropTypeAnnotations,
|
| + shownPackageWarnings: const []),
|
| + outputProvider: new LegacyCompilerOutput(outputProvider)) {
|
| deferredLoadTask = new MockDeferredLoadTask(this);
|
|
|
| - registerSource(Uris.dart_core,
|
| - buildLibrarySource(DEFAULT_CORE_LIBRARY, coreSource));
|
| + registerSource(
|
| + Uris.dart_core, buildLibrarySource(DEFAULT_CORE_LIBRARY, coreSource));
|
| registerSource(PATCH_CORE, DEFAULT_PATCH_CORE_SOURCE);
|
|
|
| registerSource(BackendHelpers.DART_JS_HELPER,
|
| - buildLibrarySource(DEFAULT_JS_HELPER_LIBRARY));
|
| + buildLibrarySource(DEFAULT_JS_HELPER_LIBRARY));
|
| registerSource(BackendHelpers.DART_FOREIGN_HELPER,
|
| - buildLibrarySource(DEFAULT_FOREIGN_HELPER_LIBRARY));
|
| + buildLibrarySource(DEFAULT_FOREIGN_HELPER_LIBRARY));
|
| registerSource(BackendHelpers.DART_INTERCEPTORS,
|
| - buildLibrarySource(DEFAULT_INTERCEPTORS_LIBRARY));
|
| + buildLibrarySource(DEFAULT_INTERCEPTORS_LIBRARY));
|
| registerSource(BackendHelpers.DART_ISOLATE_HELPER,
|
| - buildLibrarySource(DEFAULT_ISOLATE_HELPER_LIBRARY));
|
| + buildLibrarySource(DEFAULT_ISOLATE_HELPER_LIBRARY));
|
| registerSource(Uris.dart_mirrors, DEFAULT_MIRRORS_SOURCE);
|
| - registerSource(BackendHelpers.DART_JS_MIRRORS,
|
| - DEFAULT_JS_MIRRORS_SOURCE);
|
| + registerSource(BackendHelpers.DART_JS_MIRRORS, DEFAULT_JS_MIRRORS_SOURCE);
|
|
|
| Map<String, String> asyncLibrarySource = <String, String>{};
|
| asyncLibrarySource.addAll(DEFAULT_ASYNC_LIBRARY);
|
| if (enableAsyncAwait) {
|
| asyncLibrarySource.addAll(ASYNC_AWAIT_LIBRARY);
|
| }
|
| - registerSource(Uris.dart_async,
|
| - buildLibrarySource(asyncLibrarySource));
|
| + registerSource(Uris.dart_async, buildLibrarySource(asyncLibrarySource));
|
| registerSource(LookupMapAnalysis.PACKAGE_LOOKUP_MAP,
|
| - buildLibrarySource(DEFAULT_LOOKUP_MAP_LIBRARY));
|
| + buildLibrarySource(DEFAULT_LOOKUP_MAP_LIBRARY));
|
| }
|
|
|
| String get patchVersion {
|
| @@ -148,8 +142,7 @@ class MockCompiler extends Compiler {
|
| Future<Uri> init([String mainSource = ""]) {
|
| Uri uri = new Uri(scheme: "mock");
|
| registerSource(uri, mainSource);
|
| - return libraryLoader.loadLibrary(uri)
|
| - .then((LibraryElement library) {
|
| + return libraryLoader.loadLibrary(uri).then((LibraryElement library) {
|
| mainApp = library;
|
| // We need to make sure the Object class is resolved. When registering a
|
| // dynamic invocation the ArgumentTypesRegistry eventually iterates over
|
| @@ -166,11 +159,11 @@ class MockCompiler extends Compiler {
|
| if (expectedErrors != null &&
|
| expectedErrors != diagnosticCollector.errors.length) {
|
| throw "unexpected error during compilation "
|
| - "${diagnosticCollector.errors}";
|
| + "${diagnosticCollector.errors}";
|
| } else if (expectedWarnings != null &&
|
| - expectedWarnings != diagnosticCollector.warnings.length) {
|
| + expectedWarnings != diagnosticCollector.warnings.length) {
|
| throw "unexpected warnings during compilation "
|
| - "${diagnosticCollector.warnings}";
|
| + "${diagnosticCollector.warnings}";
|
| } else {
|
| return result;
|
| }
|
| @@ -193,9 +186,7 @@ class MockCompiler extends Compiler {
|
| }
|
|
|
| void reportDiagnostic(DiagnosticMessage message,
|
| - List<DiagnosticMessage> infoMessages,
|
| - api.Diagnostic kind) {
|
| -
|
| + List<DiagnosticMessage> infoMessages, api.Diagnostic kind) {
|
| void processMessage(DiagnosticMessage message, api.Diagnostic kind) {
|
| SourceSpan span = message.sourceSpan;
|
| Uri uri;
|
| @@ -222,16 +213,15 @@ class MockCompiler extends Compiler {
|
| return resolveNodeStatement(parsedTree, new MockElement(mainApp));
|
| }
|
|
|
| - TreeElementMapping resolveNodeStatement(Node tree,
|
| - ExecutableElement element) {
|
| - ResolverVisitor visitor =
|
| - new ResolverVisitor(
|
| - this.resolution,
|
| - element,
|
| - new ResolutionRegistry(this.backend,
|
| - new CollectingTreeElements(element)),
|
| - scope: new MockTypeVariablesScope(
|
| - element.enclosingElement.buildScope()));
|
| + TreeElementMapping resolveNodeStatement(
|
| + Node tree, ExecutableElement element) {
|
| + ResolverVisitor visitor = new ResolverVisitor(
|
| + this.resolution,
|
| + element,
|
| + new ResolutionRegistry(
|
| + this.backend, new CollectingTreeElements(element)),
|
| + scope:
|
| + new MockTypeVariablesScope(element.enclosingElement.buildScope()));
|
| if (visitor.scope is LibraryScope ||
|
| visitor.scope is MockTypeVariablesScope) {
|
| visitor.scope = new MethodScope(visitor.scope, element);
|
| @@ -243,13 +233,12 @@ class MockCompiler extends Compiler {
|
|
|
| resolverVisitor() {
|
| Element mockElement = new MockElement(mainApp.entryCompilationUnit);
|
| - ResolverVisitor visitor =
|
| - new ResolverVisitor(
|
| - this.resolution,
|
| - mockElement,
|
| - new ResolutionRegistry(
|
| - this.backend, new CollectingTreeElements(mockElement)),
|
| - scope: mockElement.enclosingElement.buildScope());
|
| + ResolverVisitor visitor = new ResolverVisitor(
|
| + this.resolution,
|
| + mockElement,
|
| + new ResolutionRegistry(
|
| + this.backend, new CollectingTreeElements(mockElement)),
|
| + scope: mockElement.enclosingElement.buildScope());
|
| visitor.scope = new MethodScope(visitor.scope, mockElement);
|
| return visitor;
|
| }
|
| @@ -347,7 +336,7 @@ class MockDeferredLoadTask extends DeferredLoadTask {
|
| }
|
|
|
| api.DiagnosticHandler createHandler(MockCompiler compiler, String text,
|
| - {bool verbose: false}) {
|
| + {bool verbose: false}) {
|
| return (uri, int begin, int end, String message, kind) {
|
| if (kind == api.Diagnostic.VERBOSE_INFO && !verbose) return;
|
| SourceFile sourceFile;
|
| @@ -366,8 +355,7 @@ api.DiagnosticHandler createHandler(MockCompiler compiler, String text,
|
|
|
| class MockElement extends FunctionElementX {
|
| MockElement(Element enclosingElement)
|
| - : super('', ElementKind.FUNCTION, Modifiers.EMPTY,
|
| - enclosingElement);
|
| + : super('', ElementKind.FUNCTION, Modifiers.EMPTY, enclosingElement);
|
|
|
| get node => null;
|
|
|
| @@ -382,17 +370,17 @@ class MockElement extends FunctionElementX {
|
|
|
| // TODO(herhut): Disallow warnings and errors during compilation by default.
|
| MockCompiler compilerFor(String code, Uri uri,
|
| - {bool analyzeAll: false,
|
| - bool analyzeOnly: false,
|
| - Map<String, String> coreSource,
|
| - bool disableInlining: true,
|
| - bool minify: false,
|
| - bool trustTypeAnnotations: false,
|
| - bool enableTypeAssertions: false,
|
| - bool enableUserAssertions: false,
|
| - int expectedErrors,
|
| - int expectedWarnings,
|
| - api.CompilerOutputProvider outputProvider}) {
|
| + {bool analyzeAll: false,
|
| + bool analyzeOnly: false,
|
| + Map<String, String> coreSource,
|
| + bool disableInlining: true,
|
| + bool minify: false,
|
| + bool trustTypeAnnotations: false,
|
| + bool enableTypeAssertions: false,
|
| + bool enableUserAssertions: false,
|
| + int expectedErrors,
|
| + int expectedWarnings,
|
| + api.CompilerOutputProvider outputProvider}) {
|
| MockCompiler compiler = new MockCompiler.internal(
|
| analyzeAll: analyzeAll,
|
| analyzeOnly: analyzeOnly,
|
|
|