diff --git a/pkg/dev_compiler/lib/src/codegen/html_codegen.dart b/pkg/dev_compiler/lib/src/codegen/html_codegen.dart index 4db7c52c6c26..cd594d43afb6 100644 --- a/pkg/dev_compiler/lib/src/codegen/html_codegen.dart +++ b/pkg/dev_compiler/lib/src/codegen/html_codegen.dart @@ -68,10 +68,16 @@ String generateEntryHtml(HtmlSourceNode root, AbstractCompiler compiler) { } }); + var rootDir = path.dirname(root.uri.path); + String rootRelative(String fullPath) { + return path.relative(path.join(compiler.inputBaseDir, fullPath), + from: rootDir); + } + var fragment = new DocumentFragment(); for (var resource in resources) { - var resourcePath = - resourceOutputPath(resource.uri, root.uri, options.runtimeDir); + var resourcePath = rootRelative( + resourceOutputPath(resource.uri, root.uri, options.runtimeDir)); var ext = path.extension(resourcePath); if (resource.cachingHash != null) { resourcePath = _addHash(resourcePath, resource.cachingHash); @@ -92,7 +98,7 @@ String generateEntryHtml(HtmlSourceNode root, AbstractCompiler compiler) { var info = lib.info; if (info == null) continue; var uri = info.library.source.uri; - var jsPath = compiler.getModulePath(uri); + var jsPath = rootRelative(compiler.getModulePath(uri)); if (uri == scriptUri) mainLibraryName = compiler.getModuleName(uri); if (lib.cachingHash != null) { jsPath = _addHash(jsPath, lib.cachingHash); diff --git a/pkg/dev_compiler/lib/src/compiler.dart b/pkg/dev_compiler/lib/src/compiler.dart index e0d6812f340b..097a2dc07b56 100644 --- a/pkg/dev_compiler/lib/src/compiler.dart +++ b/pkg/dev_compiler/lib/src/compiler.dart @@ -304,10 +304,10 @@ class BatchCompiler extends AbstractCompiler { } } - new File(getOutputPath(source.uri)).openSync(mode: FileMode.WRITE) - ..writeStringSync(document.outerHtml) - ..writeStringSync('\n') - ..closeSync(); + var outputFile = getOutputPath(source.uri); + new File(outputFile) + ..createSync(recursive: true) + ..writeAsStringSync(document.outerHtml + '\n'); } html.DocumentFragment _linkLibraries( diff --git a/pkg/dev_compiler/lib/src/options.dart b/pkg/dev_compiler/lib/src/options.dart index e13cc43497bb..7f030a3877f8 100644 --- a/pkg/dev_compiler/lib/src/options.dart +++ b/pkg/dev_compiler/lib/src/options.dart @@ -233,8 +233,6 @@ CompilerOptions parseOptions(List argv, {bool forceOutDir: false}) { customUrlMappings[splitMapping[0]] = splitMapping[1]; } - if (serverMode && args.rest.length != 1) showUsage = true; - return new CompilerOptions( codegenOptions: new CodegenOptions( emitSourceMaps: args['source-maps'], diff --git a/pkg/dev_compiler/lib/src/server/dependency_graph.dart b/pkg/dev_compiler/lib/src/server/dependency_graph.dart index a5bbecf89ba4..60835e40f84f 100644 --- a/pkg/dev_compiler/lib/src/server/dependency_graph.dart +++ b/pkg/dev_compiler/lib/src/server/dependency_graph.dart @@ -156,6 +156,22 @@ abstract class SourceNode { } } +/// A unique node representing all entry points in the graph. This is just for +/// graph algorthm convenience. +class EntryNode extends SourceNode { + final Iterable entryPoints; + + @override + Iterable get allDeps => entryPoints; + + @override + Iterable get depsWithoutParts => entryPoints; + + EntryNode(SourceGraph graph, Uri uri, Iterable nodes) + : entryPoints = nodes, + super(graph, uri, null); +} + /// A node representing an entry HTML source file. class HtmlSourceNode extends SourceNode { /// Resources included by default on any application. @@ -466,7 +482,7 @@ rebuild(SourceNode start, bool build(SourceNode node)) { bool shouldBuildNode(SourceNode n) { if (n.needsRebuild) return true; if (n is HtmlSourceNode) return htmlNeedsRebuild; - if (n is ResourceSourceNode) return false; + if (n is ResourceSourceNode || n is EntryNode) return false; return (n as DartSourceNode) .imports .any((i) => apiChangeDetected.contains(i)); diff --git a/pkg/dev_compiler/lib/src/server/server.dart b/pkg/dev_compiler/lib/src/server/server.dart index a53fc0920fcd..89a5ab608c40 100644 --- a/pkg/dev_compiler/lib/src/server/server.dart +++ b/pkg/dev_compiler/lib/src/server/server.dart @@ -36,7 +36,7 @@ import 'dependency_graph.dart'; /// Encapsulates the logic when the compiler is run as a development server. class ServerCompiler extends AbstractCompiler { - final SourceNode _entryNode; + SourceNode _entryNode; List _libraries = []; final _generators = []; bool _hashing; @@ -45,22 +45,30 @@ class ServerCompiler extends AbstractCompiler { factory ServerCompiler(AnalysisContext context, CompilerOptions options, {AnalysisErrorListener reporter}) { var srcOpts = options.sourceOptions; - var inputFile = options.inputs[0]; - var inputUri = + var inputFiles = options.inputs; + var inputUris = inputFiles.map((String inputFile) => inputFile.startsWith('dart:') || inputFile.startsWith('package:') ? Uri.parse(inputFile) : new Uri.file(path.absolute(srcOpts.useImplicitHtml ? SourceResolverOptions.implicitHtmlFile - : inputFile)); + : inputFile))); var graph = new SourceGraph(context, reporter, options); - var entryNode = graph.nodeFromUri(inputUri); + var entryNodes = inputUris.map((inputUri) => graph.nodeFromUri(inputUri)); - return new ServerCompiler._(context, options, reporter, entryNode); + return new ServerCompiler._(context, options, reporter, graph, entryNodes); } - ServerCompiler._(AnalysisContext context, CompilerOptions options, - AnalysisErrorListener reporter, this._entryNode) + ServerCompiler._( + AnalysisContext context, + CompilerOptions options, + AnalysisErrorListener reporter, + SourceGraph graph, + List entryNodes) : super(context, options, reporter) { + _entryNode = entryNodes.length == 1 + ? entryNodes.first + : new EntryNode(graph, new Uri.file(inputBaseDir), entryNodes); + if (outputDir != null) { _generators.add(new JSGenerator(this)); } @@ -68,8 +76,6 @@ class ServerCompiler extends AbstractCompiler { _hashing = options.enableHashing && _generators.length == 1; } - Uri get entryPointUri => _entryNode.uri; - CheckerResults run() { var clock = new Stopwatch()..start(); @@ -112,9 +118,12 @@ class ServerCompiler extends AbstractCompiler { return; } - var filename = path.basename(node.uri.path); - String outputFile = path.join(outputDir, filename); - new File(outputFile).writeAsStringSync(output); + var filepath = + resourceOutputPath(node.uri, _entryNode.uri, options.runtimeDir); + String outputFile = path.join(outputDir, filepath); + new File(outputFile) + ..createSync(recursive: true) + ..writeAsStringSync(output); } void _buildResourceFile(ResourceSourceNode node) { diff --git a/pkg/dev_compiler/lib/src/utils.dart b/pkg/dev_compiler/lib/src/utils.dart index 6f92e2252729..b1794f63cc3e 100644 --- a/pkg/dev_compiler/lib/src/utils.dart +++ b/pkg/dev_compiler/lib/src/utils.dart @@ -314,7 +314,12 @@ String resourceOutputPath(Uri resourceUri, Uri entryUri, String runtimeDir) { if (resourceUri.scheme != 'file') return null; - var entryDir = path.dirname(entryUri.path); + var entryPath = entryUri.path; + // The entry uri is either a directory or a dart/html file. If the latter, + // trim the file. + var entryDir = entryPath.endsWith('.dart') || entryPath.endsWith('.html') + ? path.dirname(entryPath) + : entryPath; var filepath = path.normalize(path.join(entryDir, resourceUri.path)); if (path.isWithin(runtimeDir, filepath)) { filepath = path.relative(filepath, from: runtimeDir); diff --git a/pkg/dev_compiler/test/codegen/expect/collection/equality.txt b/pkg/dev_compiler/test/codegen/expect/collection/equality.txt index 433fdd0c1991..e8d1caa801e5 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/equality.txt +++ b/pkg/dev_compiler/test/codegen/expect/collection/equality.txt @@ -1,10 +1 @@ // Messages from compiling equality.dart -severe: [AnalyzerMessage] The redirected constructor '() → DefaultEquality' has incompatible parameters with '() → Equality' (package:collection/equality.dart, line 18, col 30) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 75, col 31) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 120, col 53) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 205, col 38) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 223, col 38) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 263, col 42) -severe: [STATIC_TYPE_ERROR] Type check failed: const DefaultEquality() (DefaultEquality) is not of type Equality because const DefaultEquality() cannot be typed as Equality (package:collection/equality.dart, line 264, col 44) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/equality.dart, line 87, col 36) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/equality.dart, line 87, col 49) diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.js b/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.js index 3e1e9ab14bfe..03744bc169ca 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.js +++ b/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.js @@ -32,9 +32,12 @@ dart_library.library('collection/src/canonicalized_map', null, /* Imports */[ return pair == null ? null : pair.last; } set(key, value) { - dart.as(key, K); - dart.as(value, V); - this[_base].set(dart.as(dart.dcall(this[_canonicalize], key), C), new (utils.Pair$(K, V))(key, value)); + (() => { + dart.as(key, K); + dart.as(value, V); + if (!dart.notNull(this[_isValidKey](key))) return; + this[_base].set(dart.as(dart.dcall(this[_canonicalize], key), C), new (utils.Pair$(K, V))(key, value)); + })(); return value; } addAll(other) { @@ -62,7 +65,7 @@ dart_library.library('collection/src/canonicalized_map', null, /* Imports */[ return this[_base].isNotEmpty; } get keys() { - return dart.as(this[_base].values[dartx.map](dart.fn(pair => pair.first, K, [utils.Pair$(K, V)])), core.Iterable$(K)); + return this[_base].values[dartx.map](dart.fn(pair => pair.first, K, [utils.Pair$(K, V)])); } get length() { return this[_base].length; @@ -78,7 +81,7 @@ dart_library.library('collection/src/canonicalized_map', null, /* Imports */[ return pair == null ? null : pair.last; } get values() { - return dart.as(this[_base].values[dartx.map](dart.fn(pair => pair.last, V, [utils.Pair$(K, V)])), core.Iterable$(V)); + return this[_base].values[dartx.map](dart.fn(pair => pair.last, V, [utils.Pair$(K, V)])); } toString() { return collection.Maps.mapToString(this); diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.txt b/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.txt index b292e19bd8d1..59bff0e185c1 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.txt +++ b/pkg/dev_compiler/test/codegen/expect/collection/src/canonicalized_map.txt @@ -1,5 +1,3 @@ // Messages from compiling canonicalized_map.dart -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to C (package:collection/src/canonicalized_map.dart, line 67, col 11) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to Iterable (package:collection/src/canonicalized_map.dart, line 94, col 27) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to C (package:collection/src/canonicalized_map.dart, line 99, col 30) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to Iterable (package:collection/src/canonicalized_map.dart, line 109, col 29) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to C (package:collection/src/canonicalized_map.dart, line 61, col 11) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to C (package:collection/src/canonicalized_map.dart, line 93, col 30) diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/queue_list.txt b/pkg/dev_compiler/test/codegen/expect/collection/src/queue_list.txt index ab8828702105..02d24e699ebf 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/queue_list.txt +++ b/pkg/dev_compiler/test/codegen/expect/collection/src/queue_list.txt @@ -1,8 +1,10 @@ // Messages from compiling queue_list.dart -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to List (package:collection/src/queue_list.dart, line 44, col 25) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 45, col 40) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to List (package:collection/src/queue_list.dart, line 61, col 19) +severe: [INVALID_METHOD_OVERRIDE] Mixin introduces an invalid override. The type of ListMixin.expand (((E) → Iterable) → Iterable) is not a subtype of Iterable.expand (((E) → Iterable) → Iterable). (package:collection/src/queue_list.dart, line 12, col 40) +severe: [INVALID_METHOD_OVERRIDE] Mixin introduces an invalid override. The type of ListMixin.map (((E) → dynamic) → Iterable) is not a subtype of Iterable.map (((E) → T) → Iterable). (package:collection/src/queue_list.dart, line 12, col 40) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to List (package:collection/src/queue_list.dart, line 38, col 25) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 39, col 40) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from Iterable to List (package:collection/src/queue_list.dart, line 55, col 19) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 61, col 52) warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 67, col 52) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 73, col 52) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 77, col 52) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 78, col 40) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 71, col 52) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from List to Iterable (package:collection/src/queue_list.dart, line 72, col 40) diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.js b/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.js deleted file mode 100644 index 50d74201c58d..000000000000 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.js +++ /dev/null @@ -1,229 +0,0 @@ -dart_library.library('collection/src/unmodifiable_wrappers', null, /* Imports */[ - 'dart/_runtime', - 'dart/collection', - 'dart/core' -], /* Lazy imports */[ - 'collection/wrappers' -], function(exports, dart, collection, core, wrappers) { - 'use strict'; - let dartx = dart.dartx; - dart.export(exports, collection, ['UnmodifiableListView', 'UnmodifiableMapView'], []); - const NonGrowableListMixin$ = dart.generic(function(E) { - class NonGrowableListMixin extends core.Object { - static _throw() { - dart.throw(new core.UnsupportedError("Cannot change the length of a fixed-length list")); - } - set length(newLength) { - return NonGrowableListMixin$()._throw(); - } - add(value) { - dart.as(value, E); - return dart.as(NonGrowableListMixin$()._throw(), core.bool); - } - addAll(iterable) { - dart.as(iterable, core.Iterable$(E)); - return NonGrowableListMixin$()._throw(); - } - insert(index, element) { - dart.as(element, E); - return NonGrowableListMixin$()._throw(); - } - insertAll(index, iterable) { - dart.as(iterable, core.Iterable$(E)); - return NonGrowableListMixin$()._throw(); - } - remove(value) { - return dart.as(NonGrowableListMixin$()._throw(), core.bool); - } - removeAt(index) { - return dart.as(NonGrowableListMixin$()._throw(), E); - } - removeLast() { - return dart.as(NonGrowableListMixin$()._throw(), E); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return NonGrowableListMixin$()._throw(); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return NonGrowableListMixin$()._throw(); - } - removeRange(start, end) { - return NonGrowableListMixin$()._throw(); - } - replaceRange(start, end, iterable) { - dart.as(iterable, core.Iterable$(E)); - return NonGrowableListMixin$()._throw(); - } - clear() { - return NonGrowableListMixin$()._throw(); - } - } - NonGrowableListMixin[dart.implements] = () => [core.List$(E)]; - dart.setSignature(NonGrowableListMixin, { - methods: () => ({ - add: [core.bool, [E]], - addAll: [dart.void, [core.Iterable$(E)]], - insert: [dart.void, [core.int, E]], - insertAll: [dart.void, [core.int, core.Iterable$(E)]], - remove: [core.bool, [core.Object]], - removeAt: [E, [core.int]], - removeLast: [E, []], - removeWhere: [dart.void, [dart.functionType(core.bool, [E])]], - retainWhere: [dart.void, [dart.functionType(core.bool, [E])]], - removeRange: [dart.void, [core.int, core.int]], - replaceRange: [dart.void, [core.int, core.int, core.Iterable$(E)]], - clear: [dart.void, []] - }), - statics: () => ({_throw: [dart.dynamic, []]}), - names: ['_throw'] - }); - dart.defineExtensionMembers(NonGrowableListMixin, [ - 'add', - 'addAll', - 'insert', - 'insertAll', - 'remove', - 'removeAt', - 'removeLast', - 'removeWhere', - 'retainWhere', - 'removeRange', - 'replaceRange', - 'clear', - 'length' - ]); - return NonGrowableListMixin; - }); - let NonGrowableListMixin = NonGrowableListMixin$(); - const NonGrowableListView$ = dart.generic(function(E) { - class NonGrowableListView extends dart.mixin(wrappers.DelegatingList$(E), NonGrowableListMixin$(E)) { - NonGrowableListView(listBase) { - super.DelegatingList(listBase); - } - } - dart.setSignature(NonGrowableListView, { - constructors: () => ({NonGrowableListView: [exports.NonGrowableListView$(E), [core.List$(E)]]}) - }); - return NonGrowableListView; - }); - dart.defineLazyClassGeneric(exports, 'NonGrowableListView', {get: NonGrowableListView$}); - const _throw = Symbol('_throw'); - const UnmodifiableSetMixin$ = dart.generic(function(E) { - class UnmodifiableSetMixin extends core.Object { - [_throw]() { - dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable Set")); - } - add(value) { - dart.as(value, E); - return dart.as(this[_throw](), core.bool); - } - addAll(elements) { - dart.as(elements, core.Iterable$(E)); - return this[_throw](); - } - remove(value) { - return dart.as(this[_throw](), core.bool); - } - removeAll(elements) { - return this[_throw](); - } - retainAll(elements) { - return this[_throw](); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_throw](); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_throw](); - } - clear() { - return this[_throw](); - } - } - UnmodifiableSetMixin[dart.implements] = () => [core.Set$(E)]; - dart.setSignature(UnmodifiableSetMixin, { - methods: () => ({ - [_throw]: [dart.dynamic, []], - add: [core.bool, [E]], - addAll: [dart.void, [core.Iterable$(E)]], - remove: [core.bool, [core.Object]], - removeAll: [dart.void, [core.Iterable]], - retainAll: [dart.void, [core.Iterable]], - removeWhere: [dart.void, [dart.functionType(core.bool, [E])]], - retainWhere: [dart.void, [dart.functionType(core.bool, [E])]], - clear: [dart.void, []] - }) - }); - return UnmodifiableSetMixin; - }); - let UnmodifiableSetMixin = UnmodifiableSetMixin$(); - const UnmodifiableSetView$ = dart.generic(function(E) { - class UnmodifiableSetView extends dart.mixin(wrappers.DelegatingSet$(E), UnmodifiableSetMixin$(E)) { - UnmodifiableSetView(setBase) { - super.DelegatingSet(setBase); - } - } - dart.setSignature(UnmodifiableSetView, { - constructors: () => ({UnmodifiableSetView: [exports.UnmodifiableSetView$(E), [core.Set$(E)]]}) - }); - return UnmodifiableSetView; - }); - dart.defineLazyClassGeneric(exports, 'UnmodifiableSetView', {get: UnmodifiableSetView$}); - const UnmodifiableMapMixin$ = dart.generic(function(K, V) { - class UnmodifiableMapMixin extends core.Object { - static _throw() { - dart.throw(new core.UnsupportedError("Cannot modify an unmodifiable Map")); - } - set(key, value) { - (() => { - dart.as(key, K); - dart.as(value, V); - return UnmodifiableMapMixin$()._throw(); - })(); - return value; - } - putIfAbsent(key, ifAbsent) { - dart.as(key, K); - dart.as(ifAbsent, dart.functionType(V, [])); - return dart.as(UnmodifiableMapMixin$()._throw(), V); - } - addAll(other) { - dart.as(other, core.Map$(K, V)); - return UnmodifiableMapMixin$()._throw(); - } - remove(key) { - return dart.as(UnmodifiableMapMixin$()._throw(), V); - } - clear() { - return UnmodifiableMapMixin$()._throw(); - } - } - UnmodifiableMapMixin[dart.implements] = () => [core.Map$(K, V)]; - dart.setSignature(UnmodifiableMapMixin, { - methods: () => ({ - set: [dart.void, [K, V]], - putIfAbsent: [V, [K, dart.functionType(V, [])]], - addAll: [dart.void, [core.Map$(K, V)]], - remove: [V, [core.Object]], - clear: [dart.void, []] - }), - statics: () => ({_throw: [dart.dynamic, []]}), - names: ['_throw'] - }); - return UnmodifiableMapMixin; - }); - let UnmodifiableMapMixin = UnmodifiableMapMixin$(); - // Exports: - exports.NonGrowableListMixin$ = NonGrowableListMixin$; - exports.NonGrowableListMixin = NonGrowableListMixin; - exports.NonGrowableListView$ = NonGrowableListView$; - exports.UnmodifiableSetMixin$ = UnmodifiableSetMixin$; - exports.UnmodifiableSetMixin = UnmodifiableSetMixin; - exports.UnmodifiableSetView$ = UnmodifiableSetView$; - exports.UnmodifiableMapMixin$ = UnmodifiableMapMixin$; - exports.UnmodifiableMapMixin = UnmodifiableMapMixin; -}); diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.txt b/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.txt index b544973d0ee4..52c36836d643 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.txt +++ b/pkg/dev_compiler/test/codegen/expect/collection/src/unmodifiable_wrappers.txt @@ -1,5 +1,7 @@ // Messages from compiling unmodifiable_wrappers.dart -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/src/unmodifiable_wrappers.dart, line 88, col 28) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/src/unmodifiable_wrappers.dart, line 94, col 21) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to V (package:collection/src/unmodifiable_wrappers.dart, line 218, col 41) -warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to V (package:collection/src/unmodifiable_wrappers.dart, line 230, col 27) +severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.expand' and 'Iterable.map' (package:collection/src/unmodifiable_wrappers.dart, line 20, col 7) +severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.expand' and 'Iterable.map' (package:collection/src/unmodifiable_wrappers.dart, line 93, col 7) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/src/unmodifiable_wrappers.dart, line 59, col 28) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to E (package:collection/src/unmodifiable_wrappers.dart, line 63, col 21) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to V (package:collection/src/unmodifiable_wrappers.dart, line 151, col 41) +warning: [DOWN_CAST_COMPOSITE] Unsound implicit cast from dynamic to V (package:collection/src/unmodifiable_wrappers.dart, line 159, col 27) diff --git a/pkg/dev_compiler/test/codegen/expect/collection/src/wrappers.txt b/pkg/dev_compiler/test/codegen/expect/collection/src/wrappers.txt index 3be4c77ea948..08eb064f3f4b 100644 --- a/pkg/dev_compiler/test/codegen/expect/collection/src/wrappers.txt +++ b/pkg/dev_compiler/test/codegen/expect/collection/src/wrappers.txt @@ -4,7 +4,7 @@ severe: [INVALID_METHOD_OVERRIDE] Invalid override. The type of _DelegatingItera severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.map' and 'Iterable.expand' (package:collection/src/wrappers.dart, line 97, col 7) severe: [INVALID_METHOD_OVERRIDE] Base class introduces an invalid override. The type of _DelegatingIterableBase.expand (((E) → Iterable) → Iterable) is not a subtype of Iterable.expand (((E) → Iterable) → Iterable). (package:collection/src/wrappers.dart, line 97, col 25) severe: [INVALID_METHOD_OVERRIDE] Base class introduces an invalid override. The type of _DelegatingIterableBase.map (((E) → dynamic) → Iterable) is not a subtype of Iterable.map (((E) → T) → Iterable). (package:collection/src/wrappers.dart, line 97, col 25) -severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.expand' and 'Iterable.map' (package:collection/src/wrappers.dart, line 194, col 7) +severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.map' and 'Iterable.expand' (package:collection/src/wrappers.dart, line 194, col 7) severe: [INVALID_METHOD_OVERRIDE] Base class introduces an invalid override. The type of _DelegatingIterableBase.expand (((E) → Iterable) → Iterable) is not a subtype of Iterable.expand (((E) → Iterable) → Iterable). (package:collection/src/wrappers.dart, line 194, col 24) severe: [INVALID_METHOD_OVERRIDE] Base class introduces an invalid override. The type of _DelegatingIterableBase.map (((E) → dynamic) → Iterable) is not a subtype of Iterable.map (((E) → T) → Iterable). (package:collection/src/wrappers.dart, line 194, col 24) severe: [AnalyzerMessage] Missing concrete implementation of 'Iterable.expand' and 'Iterable.map' (package:collection/src/wrappers.dart, line 245, col 7) diff --git a/pkg/dev_compiler/test/codegen/expect/collection/wrappers.js b/pkg/dev_compiler/test/codegen/expect/collection/wrappers.js deleted file mode 100644 index d0f23a4eda12..000000000000 --- a/pkg/dev_compiler/test/codegen/expect/collection/wrappers.js +++ /dev/null @@ -1,809 +0,0 @@ -dart_library.library('collection/wrappers', null, /* Imports */[ - 'dart/_runtime', - 'collection/src/canonicalized_map', - 'dart/core', - 'dart/math', - 'dart/collection' -], /* Lazy imports */[ - 'collection/src/unmodifiable_wrappers' -], function(exports, dart, canonicalized_map, core, math, collection, unmodifiable_wrappers) { - 'use strict'; - let dartx = dart.dartx; - dart.export(exports, canonicalized_map); - dart.export(exports, unmodifiable_wrappers); - const _base = Symbol('_base'); - const _DelegatingIterableBase$ = dart.generic(function(E) { - class _DelegatingIterableBase extends core.Object { - _DelegatingIterableBase() { - } - any(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.any](test); - } - contains(element) { - return this[_base][dartx.contains](element); - } - elementAt(index) { - return this[_base][dartx.elementAt](index); - } - every(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.every](test); - } - expand(f) { - dart.as(f, dart.functionType(core.Iterable, [E])); - return this[_base][dartx.expand](f); - } - get first() { - return this[_base][dartx.first]; - } - firstWhere(test, opts) { - dart.as(test, dart.functionType(core.bool, [E])); - let orElse = opts && 'orElse' in opts ? opts.orElse : null; - dart.as(orElse, dart.functionType(E, [])); - return this[_base][dartx.firstWhere](test, {orElse: orElse}); - } - fold(initialValue, combine) { - dart.as(combine, dart.functionType(dart.dynamic, [dart.dynamic, E])); - return this[_base][dartx.fold](initialValue, combine); - } - forEach(f) { - dart.as(f, dart.functionType(dart.void, [E])); - return this[_base][dartx.forEach](f); - } - get isEmpty() { - return this[_base][dartx.isEmpty]; - } - get isNotEmpty() { - return this[_base][dartx.isNotEmpty]; - } - get iterator() { - return this[_base][dartx.iterator]; - } - [Symbol.iterator]() { - return new dart.JsIterator(this.iterator); - } - join(separator) { - if (separator === void 0) separator = ""; - return this[_base][dartx.join](separator); - } - get last() { - return this[_base][dartx.last]; - } - lastWhere(test, opts) { - dart.as(test, dart.functionType(core.bool, [E])); - let orElse = opts && 'orElse' in opts ? opts.orElse : null; - dart.as(orElse, dart.functionType(E, [])); - return this[_base][dartx.lastWhere](test, {orElse: orElse}); - } - get length() { - return this[_base][dartx.length]; - } - map(f) { - dart.as(f, dart.functionType(dart.dynamic, [E])); - return this[_base][dartx.map](f); - } - reduce(combine) { - dart.as(combine, dart.functionType(E, [E, E])); - return this[_base][dartx.reduce](combine); - } - get single() { - return this[_base][dartx.single]; - } - singleWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.singleWhere](test); - } - skip(n) { - return this[_base][dartx.skip](n); - } - skipWhile(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.skipWhile](test); - } - take(n) { - return this[_base][dartx.take](n); - } - takeWhile(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.takeWhile](test); - } - toList(opts) { - let growable = opts && 'growable' in opts ? opts.growable : true; - return this[_base][dartx.toList]({growable: growable}); - } - toSet() { - return this[_base][dartx.toSet](); - } - where(test) { - dart.as(test, dart.functionType(core.bool, [E])); - return this[_base][dartx.where](test); - } - toString() { - return dart.toString(this[_base]); - } - } - _DelegatingIterableBase[dart.implements] = () => [core.Iterable$(E)]; - dart.setSignature(_DelegatingIterableBase, { - constructors: () => ({_DelegatingIterableBase: [_DelegatingIterableBase$(E), []]}), - methods: () => ({ - any: [core.bool, [dart.functionType(core.bool, [E])]], - contains: [core.bool, [core.Object]], - elementAt: [E, [core.int]], - every: [core.bool, [dart.functionType(core.bool, [E])]], - expand: [core.Iterable, [dart.functionType(core.Iterable, [E])]], - firstWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functionType(E, [])}], - fold: [dart.dynamic, [dart.dynamic, dart.functionType(dart.dynamic, [dart.dynamic, E])]], - forEach: [dart.void, [dart.functionType(dart.void, [E])]], - join: [core.String, [], [core.String]], - lastWhere: [E, [dart.functionType(core.bool, [E])], {orElse: dart.functionType(E, [])}], - map: [core.Iterable, [dart.functionType(dart.dynamic, [E])]], - reduce: [E, [dart.functionType(E, [E, E])]], - singleWhere: [E, [dart.functionType(core.bool, [E])]], - skip: [core.Iterable$(E), [core.int]], - skipWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]], - take: [core.Iterable$(E), [core.int]], - takeWhile: [core.Iterable$(E), [dart.functionType(core.bool, [E])]], - toList: [core.List$(E), [], {growable: core.bool}], - toSet: [core.Set$(E), []], - where: [core.Iterable$(E), [dart.functionType(core.bool, [E])]] - }) - }); - dart.defineExtensionMembers(_DelegatingIterableBase, [ - 'any', - 'contains', - 'elementAt', - 'every', - 'expand', - 'firstWhere', - 'fold', - 'forEach', - 'join', - 'lastWhere', - 'map', - 'reduce', - 'singleWhere', - 'skip', - 'skipWhile', - 'take', - 'takeWhile', - 'toList', - 'toSet', - 'where', - 'toString', - 'first', - 'isEmpty', - 'isNotEmpty', - 'iterator', - 'last', - 'length', - 'single' - ]); - return _DelegatingIterableBase; - }); - let _DelegatingIterableBase = _DelegatingIterableBase$(); - const DelegatingIterable$ = dart.generic(function(E) { - class DelegatingIterable extends _DelegatingIterableBase$(E) { - DelegatingIterable(base) { - this[_base] = base; - super._DelegatingIterableBase(); - } - } - dart.setSignature(DelegatingIterable, { - constructors: () => ({DelegatingIterable: [DelegatingIterable$(E), [core.Iterable$(E)]]}) - }); - return DelegatingIterable; - }); - let DelegatingIterable = DelegatingIterable$(); - const _listBase = Symbol('_listBase'); - const DelegatingList$ = dart.generic(function(E) { - class DelegatingList extends DelegatingIterable$(E) { - DelegatingList(base) { - super.DelegatingIterable(base); - } - get [_listBase]() { - return dart.as(this[_base], core.List$(E)); - } - get(index) { - return this[_listBase][dartx.get](index); - } - set(index, value) { - dart.as(value, E); - this[_listBase][dartx.set](index, value); - return value; - } - add(value) { - dart.as(value, E); - this[_listBase][dartx.add](value); - } - addAll(iterable) { - dart.as(iterable, core.Iterable$(E)); - this[_listBase][dartx.addAll](iterable); - } - asMap() { - return this[_listBase][dartx.asMap](); - } - clear() { - this[_listBase][dartx.clear](); - } - fillRange(start, end, fillValue) { - if (fillValue === void 0) fillValue = null; - dart.as(fillValue, E); - this[_listBase][dartx.fillRange](start, end, fillValue); - } - getRange(start, end) { - return this[_listBase][dartx.getRange](start, end); - } - indexOf(element, start) { - dart.as(element, E); - if (start === void 0) start = 0; - return this[_listBase][dartx.indexOf](element, start); - } - insert(index, element) { - dart.as(element, E); - this[_listBase][dartx.insert](index, element); - } - insertAll(index, iterable) { - dart.as(iterable, core.Iterable$(E)); - this[_listBase][dartx.insertAll](index, iterable); - } - lastIndexOf(element, start) { - dart.as(element, E); - if (start === void 0) start = null; - return this[_listBase][dartx.lastIndexOf](element, start); - } - set length(newLength) { - this[_listBase][dartx.length] = newLength; - } - remove(value) { - return this[_listBase][dartx.remove](value); - } - removeAt(index) { - return this[_listBase][dartx.removeAt](index); - } - removeLast() { - return this[_listBase][dartx.removeLast](); - } - removeRange(start, end) { - this[_listBase][dartx.removeRange](start, end); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_listBase][dartx.removeWhere](test); - } - replaceRange(start, end, iterable) { - dart.as(iterable, core.Iterable$(E)); - this[_listBase][dartx.replaceRange](start, end, iterable); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_listBase][dartx.retainWhere](test); - } - get reversed() { - return this[_listBase][dartx.reversed]; - } - setAll(index, iterable) { - dart.as(iterable, core.Iterable$(E)); - this[_listBase][dartx.setAll](index, iterable); - } - setRange(start, end, iterable, skipCount) { - dart.as(iterable, core.Iterable$(E)); - if (skipCount === void 0) skipCount = 0; - this[_listBase][dartx.setRange](start, end, iterable, skipCount); - } - shuffle(random) { - if (random === void 0) random = null; - this[_listBase][dartx.shuffle](random); - } - sort(compare) { - if (compare === void 0) compare = null; - dart.as(compare, dart.functionType(core.int, [E, E])); - this[_listBase][dartx.sort](compare); - } - sublist(start, end) { - if (end === void 0) end = null; - return this[_listBase][dartx.sublist](start, end); - } - } - DelegatingList[dart.implements] = () => [core.List$(E)]; - dart.setSignature(DelegatingList, { - constructors: () => ({DelegatingList: [DelegatingList$(E), [core.List$(E)]]}), - methods: () => ({ - get: [E, [core.int]], - set: [dart.void, [core.int, E]], - add: [dart.void, [E]], - addAll: [dart.void, [core.Iterable$(E)]], - asMap: [core.Map$(core.int, E), []], - clear: [dart.void, []], - fillRange: [dart.void, [core.int, core.int], [E]], - getRange: [core.Iterable$(E), [core.int, core.int]], - indexOf: [core.int, [E], [core.int]], - insert: [dart.void, [core.int, E]], - insertAll: [dart.void, [core.int, core.Iterable$(E)]], - lastIndexOf: [core.int, [E], [core.int]], - remove: [core.bool, [core.Object]], - removeAt: [E, [core.int]], - removeLast: [E, []], - removeRange: [dart.void, [core.int, core.int]], - removeWhere: [dart.void, [dart.functionType(core.bool, [E])]], - replaceRange: [dart.void, [core.int, core.int, core.Iterable$(E)]], - retainWhere: [dart.void, [dart.functionType(core.bool, [E])]], - setAll: [dart.void, [core.int, core.Iterable$(E)]], - setRange: [dart.void, [core.int, core.int, core.Iterable$(E)], [core.int]], - shuffle: [dart.void, [], [math.Random]], - sort: [dart.void, [], [dart.functionType(core.int, [E, E])]], - sublist: [core.List$(E), [core.int], [core.int]] - }) - }); - dart.defineExtensionMembers(DelegatingList, [ - 'get', - 'set', - 'add', - 'addAll', - 'asMap', - 'clear', - 'fillRange', - 'getRange', - 'indexOf', - 'insert', - 'insertAll', - 'lastIndexOf', - 'remove', - 'removeAt', - 'removeLast', - 'removeRange', - 'removeWhere', - 'replaceRange', - 'retainWhere', - 'setAll', - 'setRange', - 'shuffle', - 'sort', - 'sublist', - 'length', - 'reversed' - ]); - return DelegatingList; - }); - let DelegatingList = DelegatingList$(); - const _setBase = Symbol('_setBase'); - const DelegatingSet$ = dart.generic(function(E) { - class DelegatingSet extends DelegatingIterable$(E) { - DelegatingSet(base) { - super.DelegatingIterable(base); - } - get [_setBase]() { - return dart.as(this[_base], core.Set$(E)); - } - add(value) { - dart.as(value, E); - return this[_setBase].add(value); - } - addAll(elements) { - dart.as(elements, core.Iterable$(E)); - this[_setBase].addAll(elements); - } - clear() { - this[_setBase].clear(); - } - containsAll(other) { - return this[_setBase].containsAll(other); - } - difference(other) { - dart.as(other, core.Set$(E)); - return this[_setBase].difference(other); - } - intersection(other) { - return this[_setBase].intersection(other); - } - lookup(element) { - return this[_setBase].lookup(element); - } - remove(value) { - return this[_setBase].remove(value); - } - removeAll(elements) { - this[_setBase].removeAll(elements); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_setBase].removeWhere(test); - } - retainAll(elements) { - this[_setBase].retainAll(elements); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_setBase].retainWhere(test); - } - union(other) { - dart.as(other, core.Set$(E)); - return this[_setBase].union(other); - } - toSet() { - return new (DelegatingSet$(E))(this[_setBase].toSet()); - } - } - DelegatingSet[dart.implements] = () => [core.Set$(E)]; - dart.setSignature(DelegatingSet, { - constructors: () => ({DelegatingSet: [DelegatingSet$(E), [core.Set$(E)]]}), - methods: () => ({ - add: [core.bool, [E]], - addAll: [dart.void, [core.Iterable$(E)]], - clear: [dart.void, []], - containsAll: [core.bool, [core.Iterable$(core.Object)]], - difference: [core.Set$(E), [core.Set$(E)]], - intersection: [core.Set$(E), [core.Set$(core.Object)]], - lookup: [E, [core.Object]], - remove: [core.bool, [core.Object]], - removeAll: [dart.void, [core.Iterable$(core.Object)]], - removeWhere: [dart.void, [dart.functionType(core.bool, [E])]], - retainAll: [dart.void, [core.Iterable$(core.Object)]], - retainWhere: [dart.void, [dart.functionType(core.bool, [E])]], - union: [core.Set$(E), [core.Set$(E)]], - toSet: [core.Set$(E), []] - }) - }); - dart.defineExtensionMembers(DelegatingSet, ['toSet']); - return DelegatingSet; - }); - let DelegatingSet = DelegatingSet$(); - const _baseQueue = Symbol('_baseQueue'); - const DelegatingQueue$ = dart.generic(function(E) { - class DelegatingQueue extends DelegatingIterable$(E) { - DelegatingQueue(queue) { - super.DelegatingIterable(queue); - } - get [_baseQueue]() { - return dart.as(this[_base], collection.Queue$(E)); - } - add(value) { - dart.as(value, E); - this[_baseQueue].add(value); - } - addAll(iterable) { - dart.as(iterable, core.Iterable$(E)); - this[_baseQueue].addAll(iterable); - } - addFirst(value) { - dart.as(value, E); - this[_baseQueue].addFirst(value); - } - addLast(value) { - dart.as(value, E); - this[_baseQueue].addLast(value); - } - clear() { - this[_baseQueue].clear(); - } - remove(object) { - return this[_baseQueue].remove(object); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_baseQueue].removeWhere(test); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [E])); - this[_baseQueue].retainWhere(test); - } - removeFirst() { - return this[_baseQueue].removeFirst(); - } - removeLast() { - return this[_baseQueue].removeLast(); - } - } - DelegatingQueue[dart.implements] = () => [collection.Queue$(E)]; - dart.setSignature(DelegatingQueue, { - constructors: () => ({DelegatingQueue: [DelegatingQueue$(E), [collection.Queue$(E)]]}), - methods: () => ({ - add: [dart.void, [E]], - addAll: [dart.void, [core.Iterable$(E)]], - addFirst: [dart.void, [E]], - addLast: [dart.void, [E]], - clear: [dart.void, []], - remove: [core.bool, [core.Object]], - removeWhere: [dart.void, [dart.functionType(core.bool, [E])]], - retainWhere: [dart.void, [dart.functionType(core.bool, [E])]], - removeFirst: [E, []], - removeLast: [E, []] - }) - }); - return DelegatingQueue; - }); - let DelegatingQueue = DelegatingQueue$(); - const DelegatingMap$ = dart.generic(function(K, V) { - class DelegatingMap extends core.Object { - DelegatingMap(base) { - this[_base] = base; - } - get(key) { - return this[_base].get(key); - } - set(key, value) { - dart.as(key, K); - dart.as(value, V); - this[_base].set(key, value); - return value; - } - addAll(other) { - dart.as(other, core.Map$(K, V)); - this[_base].addAll(other); - } - clear() { - this[_base].clear(); - } - containsKey(key) { - return this[_base].containsKey(key); - } - containsValue(value) { - return this[_base].containsValue(value); - } - forEach(f) { - dart.as(f, dart.functionType(dart.void, [K, V])); - this[_base].forEach(f); - } - get isEmpty() { - return this[_base].isEmpty; - } - get isNotEmpty() { - return this[_base].isNotEmpty; - } - get keys() { - return this[_base].keys; - } - get length() { - return this[_base].length; - } - putIfAbsent(key, ifAbsent) { - dart.as(key, K); - dart.as(ifAbsent, dart.functionType(V, [])); - return this[_base].putIfAbsent(key, ifAbsent); - } - remove(key) { - return this[_base].remove(key); - } - get values() { - return this[_base].values; - } - toString() { - return dart.toString(this[_base]); - } - } - DelegatingMap[dart.implements] = () => [core.Map$(K, V)]; - dart.setSignature(DelegatingMap, { - constructors: () => ({DelegatingMap: [DelegatingMap$(K, V), [core.Map$(K, V)]]}), - methods: () => ({ - get: [V, [core.Object]], - set: [dart.void, [K, V]], - addAll: [dart.void, [core.Map$(K, V)]], - clear: [dart.void, []], - containsKey: [core.bool, [core.Object]], - containsValue: [core.bool, [core.Object]], - forEach: [dart.void, [dart.functionType(dart.void, [K, V])]], - putIfAbsent: [V, [K, dart.functionType(V, [])]], - remove: [V, [core.Object]] - }) - }); - return DelegatingMap; - }); - let DelegatingMap = DelegatingMap$(); - const _baseMap = Symbol('_baseMap'); - const MapKeySet$ = dart.generic(function(E) { - class MapKeySet extends dart.mixin(_DelegatingIterableBase$(E), unmodifiable_wrappers.UnmodifiableSetMixin$(E)) { - MapKeySet(base) { - this[_baseMap] = base; - super._DelegatingIterableBase(); - } - get [_base]() { - return this[_baseMap].keys; - } - contains(element) { - return this[_baseMap].containsKey(element); - } - get isEmpty() { - return this[_baseMap].isEmpty; - } - get isNotEmpty() { - return this[_baseMap].isNotEmpty; - } - get length() { - return this[_baseMap].length; - } - toString() { - return `{${this[_base][dartx.join](', ')}}`; - } - containsAll(other) { - return other[dartx.every](dart.bind(this, 'contains')); - } - difference(other) { - dart.as(other, core.Set$(E)); - return this.where(dart.fn(element => !dart.notNull(other.contains(element)), core.bool, [E]))[dartx.toSet](); - } - intersection(other) { - return this.where(dart.bind(other, 'contains'))[dartx.toSet](); - } - lookup(element) { - dart.as(element, E); - return dart.throw(new core.UnsupportedError("MapKeySet doesn't support lookup().")); - } - union(other) { - dart.as(other, core.Set$(E)); - return (() => { - let _ = this.toSet(); - _.addAll(other); - return _; - })(); - } - } - dart.setSignature(MapKeySet, { - constructors: () => ({MapKeySet: [exports.MapKeySet$(E), [core.Map$(E, dart.dynamic)]]}), - methods: () => ({ - containsAll: [core.bool, [core.Iterable$(core.Object)]], - difference: [core.Set$(E), [core.Set$(E)]], - intersection: [core.Set$(E), [core.Set$(core.Object)]], - lookup: [E, [E]], - union: [core.Set$(E), [core.Set$(E)]] - }) - }); - dart.defineExtensionMembers(MapKeySet, [ - 'contains', - 'toString', - 'isEmpty', - 'isNotEmpty', - 'length' - ]); - return MapKeySet; - }); - dart.defineLazyClassGeneric(exports, 'MapKeySet', {get: MapKeySet$}); - const _keyForValue = Symbol('_keyForValue'); - const MapValueSet$ = dart.generic(function(K, V) { - class MapValueSet extends _DelegatingIterableBase$(V) { - MapValueSet(base, keyForValue) { - this[_baseMap] = base; - this[_keyForValue] = keyForValue; - super._DelegatingIterableBase(); - } - get [_base]() { - return this[_baseMap].values; - } - contains(element) { - if (element != null && !dart.is(element, V)) return false; - return this[_baseMap].containsKey(dart.dcall(this[_keyForValue], element)); - } - get isEmpty() { - return this[_baseMap].isEmpty; - } - get isNotEmpty() { - return this[_baseMap].isNotEmpty; - } - get length() { - return this[_baseMap].length; - } - toString() { - return dart.toString(this.toSet()); - } - add(value) { - dart.as(value, V); - let key = dart.as(dart.dcall(this[_keyForValue], value), K); - let result = false; - this[_baseMap].putIfAbsent(key, dart.fn(() => { - result = true; - return value; - }, V, [])); - return result; - } - addAll(elements) { - dart.as(elements, core.Iterable$(V)); - return elements[dartx.forEach](dart.bind(this, 'add')); - } - clear() { - return this[_baseMap].clear(); - } - containsAll(other) { - return other[dartx.every](dart.bind(this, 'contains')); - } - difference(other) { - dart.as(other, core.Set$(V)); - return this.where(dart.fn(element => !dart.notNull(other.contains(element)), core.bool, [V]))[dartx.toSet](); - } - intersection(other) { - return this.where(dart.bind(other, 'contains'))[dartx.toSet](); - } - lookup(element) { - return this[_baseMap].get(dart.dcall(this[_keyForValue], element)); - } - remove(value) { - if (value != null && !dart.is(value, V)) return false; - let key = dart.dcall(this[_keyForValue], value); - if (!dart.notNull(this[_baseMap].containsKey(key))) return false; - this[_baseMap].remove(key); - return true; - } - removeAll(elements) { - return elements[dartx.forEach](dart.bind(this, 'remove')); - } - removeWhere(test) { - dart.as(test, dart.functionType(core.bool, [V])); - let toRemove = []; - this[_baseMap].forEach(dart.fn((key, value) => { - dart.as(key, K); - dart.as(value, V); - if (dart.notNull(test(value))) toRemove[dartx.add](key); - }, dart.void, [K, V])); - toRemove[dartx.forEach](dart.bind(this[_baseMap], 'remove')); - } - retainAll(elements) { - let valuesToRetain = core.Set$(V).identity(); - for (let element of elements) { - if (element != null && !dart.is(element, V)) continue; - let key = dart.dcall(this[_keyForValue], element); - if (!dart.notNull(this[_baseMap].containsKey(key))) continue; - valuesToRetain.add(this[_baseMap].get(key)); - } - let keysToRemove = []; - this[_baseMap].forEach(dart.fn((k, v) => { - dart.as(k, K); - dart.as(v, V); - if (!dart.notNull(valuesToRetain.contains(v))) keysToRemove[dartx.add](k); - }, dart.void, [K, V])); - keysToRemove[dartx.forEach](dart.bind(this[_baseMap], 'remove')); - } - retainWhere(test) { - dart.as(test, dart.functionType(core.bool, [V])); - return this.removeWhere(dart.fn(element => !dart.notNull(test(element)), core.bool, [V])); - } - union(other) { - dart.as(other, core.Set$(V)); - return (() => { - let _ = this.toSet(); - _.addAll(other); - return _; - })(); - } - } - MapValueSet[dart.implements] = () => [core.Set$(V)]; - dart.setSignature(MapValueSet, { - constructors: () => ({MapValueSet: [MapValueSet$(K, V), [core.Map$(K, V), dart.functionType(K, [V])]]}), - methods: () => ({ - add: [core.bool, [V]], - addAll: [dart.void, [core.Iterable$(V)]], - clear: [dart.void, []], - containsAll: [core.bool, [core.Iterable$(core.Object)]], - difference: [core.Set$(V), [core.Set$(V)]], - intersection: [core.Set$(V), [core.Set$(core.Object)]], - lookup: [V, [core.Object]], - remove: [core.bool, [core.Object]], - removeAll: [dart.void, [core.Iterable$(core.Object)]], - removeWhere: [dart.void, [dart.functionType(core.bool, [V])]], - retainAll: [dart.void, [core.Iterable$(core.Object)]], - retainWhere: [dart.void, [dart.functionType(core.bool, [V])]], - union: [core.Set$(V), [core.Set$(V)]] - }) - }); - dart.defineExtensionMembers(MapValueSet, [ - 'contains', - 'toString', - 'isEmpty', - 'isNotEmpty', - 'length' - ]); - return MapValueSet; - }); - let MapValueSet = MapValueSet$(); - // Exports: - exports.DelegatingIterable$ = DelegatingIterable$; - exports.DelegatingIterable = DelegatingIterable; - exports.DelegatingList$ = DelegatingList$; - exports.DelegatingList = DelegatingList; - exports.DelegatingSet$ = DelegatingSet$; - exports.DelegatingSet = DelegatingSet; - exports.DelegatingQueue$ = DelegatingQueue$; - exports.DelegatingQueue = DelegatingQueue; - exports.DelegatingMap$ = DelegatingMap$; - exports.DelegatingMap = DelegatingMap; - exports.MapKeySet$ = MapKeySet$; - exports.MapValueSet$ = MapValueSet$; - exports.MapValueSet = MapValueSet; -}); diff --git a/pkg/dev_compiler/test/codegen/expect/language-all.js b/pkg/dev_compiler/test/codegen/expect/language-all.js index d02176154e29..1b51d3c398a6 100644 --- a/pkg/dev_compiler/test/codegen/expect/language-all.js +++ b/pkg/dev_compiler/test/codegen/expect/language-all.js @@ -26391,253 +26391,6 @@ dart_library.library('language/built_in_identifier_prefix_library_typedef', null exports.C$ = C$; exports.C = C; }); -dart_library.library('language/built_in_identifier_test_01_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - class PseudoKWTest extends core.Object { - static testMain() { - let abstract = 0; - let as = 0; - let dynamic = 0; - let export$ = 0; - let external = 0; - let factory = 0; - let get = 0; - let implements$ = 0; - let import$ = 0; - let library = 0; - let operator = 0; - let part = 0; - let set = 0; - let static$ = 0; - let typedef = 0; - let native = 0; - { - function factory(set) { - return; - } - dart.fn(factory, dart.void, [dart.dynamic]); - } - get: - while (import$ > 0) { - break get; - } - return static$ + library * operator; - } - } - dart.setSignature(PseudoKWTest, { - statics: () => ({testMain: [dart.dynamic, []]}), - names: ['testMain'] - }); - function typedef(x) { - return `typedef ${x}`; - } - dart.fn(typedef); - function static$(abstract) { - return dart.equals(abstract, true); - } - dart.fn(static$); - class A extends core.Object { - A() { - this.typedef = 0; - this.operator = "smooth"; - } - set(x) { - this.typedef = dart.as(x, core.int); - } - get() { - return dart.notNull(this.typedef) - 5; - } - static static() { - return 1; - } - static check() { - let o = new A(); - o.set(55); - expect.Expect.equals(50, o.get()); - A.static(); - } - } - dart.setSignature(A, { - methods: () => ({ - set: [dart.dynamic, [dart.dynamic]], - get: [dart.dynamic, []] - }), - statics: () => ({ - static: [dart.dynamic, []], - check: [dart.dynamic, []] - }), - names: ['static', 'check'] - }); - class B extends core.Object { - B() { - this.set = 100; - } - get get() { - return this.set; - } - set get(get) { - return this.set = dart.asInt(2 * dart.notNull(dart.as(dart.dload(get, 'get'), core.num))); - } - static() { - let set = new B(); - set.get = set; - expect.Expect.equals(200, set.get); - } - operator() { - return 1; - } - } - dart.setSignature(B, { - methods: () => ({ - static: [dart.dynamic, []], - operator: [core.int, []] - }) - }); - class C extends core.Object { - static get set() { - return 111; - } - static set set(set) {} - } - C.operator = 5; - C.get = null; - function main() { - PseudoKWTest.testMain(); - A.check(); - new B().static(); - expect.Expect.equals(1, new B().operator()); - expect.Expect.equals(1, A.static()); - typedef("T"); - expect.Expect.equals("typedef T", typedef("T")); - static$("true"); - expect.Expect.equals(false, static$("true")); - expect.Expect.equals(5, C.operator); - expect.Expect.equals(null, C.get); - C.set = 0; - expect.Expect.equals(111, C.set); - } - dart.fn(main); - // Exports: - exports.PseudoKWTest = PseudoKWTest; - exports.typedef = typedef; - exports.static = static$; - exports.A = A; - exports.B = B; - exports.C = C; - exports.main = main; -}); -dart_library.library('language/built_in_identifier_test_none_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - class PseudoKWTest extends core.Object { - static testMain() { - let as = 0; - let dynamic = 0; - let export$ = 0; - let factory = 0; - let get = 0; - let implements$ = 0; - let import$ = 0; - let library = 0; - let operator = 0; - let part = 0; - let set = 0; - let typedef = 0; - let native = 0; - { - function factory(set) { - } - dart.fn(factory, dart.void, [dart.dynamic]); - } - get: - while (import$ > 0) { - break get; - } - return library * operator; - } - } - dart.setSignature(PseudoKWTest, { - statics: () => ({testMain: [dart.dynamic, []]}), - names: ['testMain'] - }); - class A extends core.Object { - A() { - this.typedef = 0; - this.operator = "smooth"; - } - set(x) { - this.typedef = dart.as(x, core.int); - } - get() { - return dart.notNull(this.typedef) - 5; - } - static check() { - let o = new A(); - o.set(55); - expect.Expect.equals(50, o.get()); - } - } - dart.setSignature(A, { - methods: () => ({ - set: [dart.dynamic, [dart.dynamic]], - get: [dart.dynamic, []] - }), - statics: () => ({check: [dart.dynamic, []]}), - names: ['check'] - }); - class B extends core.Object { - B() { - this.set = 100; - } - get get() { - return this.set; - } - set get(get) { - return this.set = dart.asInt(2 * dart.notNull(dart.as(dart.dload(get, 'get'), core.num))); - } - operator() { - return 1; - } - } - dart.setSignature(B, { - methods: () => ({operator: [core.int, []]}) - }); - class C extends core.Object { - static get set() { - return 111; - } - static set set(set) {} - } - C.operator = 5; - C.get = null; - function main() { - PseudoKWTest.testMain(); - A.check(); - expect.Expect.equals(1, new B().operator()); - expect.Expect.equals(5, C.operator); - expect.Expect.equals(null, C.get); - C.set = 0; - expect.Expect.equals(111, C.set); - } - dart.fn(main); - // Exports: - exports.PseudoKWTest = PseudoKWTest; - exports.A = A; - exports.B = B; - exports.C = C; - exports.main = main; -}); dart_library.library('language/call_argument_inference_test', null, /* Imports */[ 'dart/_runtime', 'dart/core', @@ -60664,131 +60417,6 @@ dart_library.library('language/function_getter_test', null, /* Imports */[ exports.A = A; exports.main = main; }); -dart_library.library('language/function_literals_test', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - const IntFunc = dart.typedef('IntFunc', () => dart.functionType(core.int, [dart.dynamic])); - class FunctionLiteralsTest extends core.Object { - static checkIntFunction(expected, f, arg) { - expect.Expect.equals(expected, dart.dcall(f, arg)); - } - static checkIntFuncFunction(expected, f, arg) { - expect.Expect.equals(expected, dart.dcall(dart.dcall(f, arg), arg)); - } - func1(x) { - return x; - } - func2(x) { - return dart.as(x, core.int); - } - func3(x) { - return x; - } - func4(x) { - return dart.as(x, core.int); - } - FunctionLiteralsTest() { - } - static testMain() { - let test = new FunctionLiteralsTest(); - test.testArrow(); - test.testArrowArrow(); - test.testArrowBlock(); - test.testBlock(); - test.testBlockArrow(); - test.testBlockBlock(); - test.testFunctionRef(); - } - testArrow() { - FunctionLiteralsTest.checkIntFunction(42, dart.fn(x => dart.as(x, core.int), core.int, [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFunction(42, dart.fn(x => x, core.int, [core.int]), 42); - } - testArrowArrow() { - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => dart.fn(y => dart.as(dart.dsend(x, '+', y), core.int), core.int, [dart.dynamic]), dart.functionType(core.int, [dart.dynamic]), [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.as(dart.fn(x => dart.fn(y => dart.notNull(x) + dart.notNull(dart.as(y, core.num)), core.num, [dart.dynamic]), dart.functionType(core.num, [dart.dynamic]), [core.int]), __CastType0), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => dart.fn(y => dart.as(dart.dsend(x, '+', y), core.int), core.int, [dart.dynamic]), dart.functionType(core.int, [dart.dynamic]), [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.as(dart.fn(x => dart.fn(y => dart.notNull(x) + dart.notNull(dart.as(y, core.num)), core.num, [dart.dynamic]), dart.functionType(core.num, [dart.dynamic]), [core.int]), dart.functionType(IntFunc, [dart.dynamic])), 42); - } - testArrowBlock() { - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => dart.fn(y => { - return dart.as(dart.dsend(x, '+', y), core.int); - }, core.int, [dart.dynamic]), dart.functionType(core.int, [dart.dynamic]), [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => dart.fn(y => { - return dart.asInt(dart.notNull(x) + dart.notNull(dart.as(y, core.num))); - }, core.int, [dart.dynamic]), dart.functionType(core.int, [dart.dynamic]), [core.int]), 42); - } - testBlock() { - FunctionLiteralsTest.checkIntFunction(42, dart.fn(x => { - return dart.as(x, core.int); - }, core.int, [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFunction(42, dart.fn(x => { - return x; - }, core.int, [core.int]), 42); - } - testBlockArrow() { - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => { - return dart.fn(y => dart.as(dart.dsend(x, '+', y), core.int), core.int, [dart.dynamic]); - }, IntFunc, [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => { - return dart.as(dart.fn(y => dart.notNull(x) + dart.notNull(dart.as(y, core.num)), core.num, [dart.dynamic]), IntFunc); - }, IntFunc, [core.int]), 42); - } - testBlockBlock() { - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => { - return dart.fn(y => { - return dart.as(dart.dsend(x, '+', y), core.int); - }, core.int, [dart.dynamic]); - }, IntFunc, [dart.dynamic]), 42); - FunctionLiteralsTest.checkIntFuncFunction(84, dart.fn(x => { - return dart.fn(y => { - return dart.asInt(dart.notNull(x) + dart.notNull(dart.as(y, core.num))); - }, core.int, [dart.dynamic]); - }, IntFunc, [core.int]), 42); - } - testFunctionRef() { - FunctionLiteralsTest.checkIntFunction(42, dart.bind(this, 'func1'), 42); - FunctionLiteralsTest.checkIntFunction(42, dart.bind(this, 'func2'), 42); - FunctionLiteralsTest.checkIntFunction(42, dart.bind(this, 'func3'), 42); - FunctionLiteralsTest.checkIntFunction(42, dart.bind(this, 'func4'), 42); - } - } - dart.setSignature(FunctionLiteralsTest, { - constructors: () => ({FunctionLiteralsTest: [FunctionLiteralsTest, []]}), - methods: () => ({ - func1: [core.int, [core.int]], - func2: [core.int, [dart.dynamic]], - func3: [core.int, [core.int]], - func4: [core.int, [dart.dynamic]], - testArrow: [dart.void, []], - testArrowArrow: [dart.void, []], - testArrowBlock: [dart.void, []], - testBlock: [dart.void, []], - testBlockArrow: [dart.void, []], - testBlockBlock: [dart.void, []], - testFunctionRef: [dart.void, []] - }), - statics: () => ({ - checkIntFunction: [dart.void, [dart.dynamic, dart.functionType(core.int, [dart.dynamic]), dart.dynamic]], - checkIntFuncFunction: [dart.void, [dart.dynamic, dart.functionType(IntFunc, [dart.dynamic]), dart.dynamic]], - testMain: [dart.void, []] - }), - names: ['checkIntFunction', 'checkIntFuncFunction', 'testMain'] - }); - function main() { - FunctionLiteralsTest.testMain(); - } - dart.fn(main); - const __CastType0 = dart.typedef('__CastType0', () => dart.functionType(IntFunc, [dart.dynamic])); - // Exports: - exports.IntFunc = IntFunc; - exports.FunctionLiteralsTest = FunctionLiteralsTest; - exports.main = main; -}); dart_library.library('language/function_propagation_test', null, /* Imports */[ 'dart/_runtime', 'dart/core', @@ -72913,129 +72541,6 @@ dart_library.library('language/if_null_assignment_static_test_03_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_05_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - (() => { - let t = super.b; - return t == null ? super.b = new A() : t; - })().a; - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); dart_library.library('language/if_null_assignment_static_test_08_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', @@ -73282,129 +72787,6 @@ dart_library.library('language/if_null_assignment_static_test_10_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_12_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - (() => { - let t = exports.b; - return t == null ? exports.b = new A() : t; - })().a; - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); dart_library.library('language/if_null_assignment_static_test_15_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', @@ -73504,378 +72886,7 @@ dart_library.library('language/if_null_assignment_static_test_15_multi', null, / if (!dart.notNull(exports.checkedMode)) { } (() => { - let o = ClassWithStaticGetters, t = o.a; - return t == null ? o.a = new A() : t; - })().a; - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); -dart_library.library('language/if_null_assignment_static_test_17_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - } - (() => { - let o = ClassWithStaticGetters, t = o.a; - return t == null ? o.a = new B() : t; - })().a; - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); -dart_library.library('language/if_null_assignment_static_test_19_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - (() => { - let o = ClassWithStaticGetters, t = o.b; - return t == null ? o.b = new A() : t; - })().a; - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); -dart_library.library('language/if_null_assignment_static_test_22_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - (() => { - let o = new ClassWithInstanceGetters(), t = o.a; + let o = ClassWithStaticGetters, t = o.a; return t == null ? o.a = new A() : t; })().a; if (!dart.notNull(exports.checkedMode)) { @@ -73884,6 +72895,8 @@ dart_library.library('language/if_null_assignment_static_test_22_multi', null, / } if (!dart.notNull(exports.checkedMode)) { } + if (!dart.notNull(exports.checkedMode)) { + } } dart.fn(main); // Exports: @@ -73897,7 +72910,7 @@ dart_library.library('language/if_null_assignment_static_test_22_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_24_multi', null, /* Imports */[ +dart_library.library('language/if_null_assignment_static_test_17_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', 'expect/expect' @@ -73995,10 +73008,8 @@ dart_library.library('language/if_null_assignment_static_test_24_multi', null, / new DerivedClass().derivedTest(); if (!dart.notNull(exports.checkedMode)) { } - if (!dart.notNull(exports.checkedMode)) { - } (() => { - let o = new ClassWithInstanceGetters(), t = o.a; + let o = ClassWithStaticGetters, t = o.a; return t == null ? o.a = new B() : t; })().a; if (!dart.notNull(exports.checkedMode)) { @@ -74007,6 +73018,8 @@ dart_library.library('language/if_null_assignment_static_test_24_multi', null, / } if (!dart.notNull(exports.checkedMode)) { } + if (!dart.notNull(exports.checkedMode)) { + } } dart.fn(main); // Exports: @@ -74020,7 +73033,7 @@ dart_library.library('language/if_null_assignment_static_test_24_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_26_multi', null, /* Imports */[ +dart_library.library('language/if_null_assignment_static_test_22_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', 'expect/expect' @@ -74120,11 +73133,11 @@ dart_library.library('language/if_null_assignment_static_test_26_multi', null, / } if (!dart.notNull(exports.checkedMode)) { } + (() => { + let o = new ClassWithInstanceGetters(), t = o.a; + return t == null ? o.a = new A() : t; + })().a; if (!dart.notNull(exports.checkedMode)) { - (() => { - let o = new ClassWithInstanceGetters(), t = o.b; - return t == null ? o.b = new A() : t; - })().a; } if (!dart.notNull(exports.checkedMode)) { } @@ -74143,7 +73156,7 @@ dart_library.library('language/if_null_assignment_static_test_26_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_29_multi', null, /* Imports */[ +dart_library.library('language/if_null_assignment_static_test_24_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', 'expect/expect' @@ -74243,16 +73256,16 @@ dart_library.library('language/if_null_assignment_static_test_29_multi', null, / } if (!dart.notNull(exports.checkedMode)) { } - if (!dart.notNull(exports.checkedMode)) { - } (() => { - let o = dart.list([null], A), i = 0, t = o[dartx.get](i); - return t == null ? o[dartx.set](i, new A()) : t; + let o = new ClassWithInstanceGetters(), t = o.a; + return t == null ? o.a = new B() : t; })().a; if (!dart.notNull(exports.checkedMode)) { } if (!dart.notNull(exports.checkedMode)) { } + if (!dart.notNull(exports.checkedMode)) { + } } dart.fn(main); // Exports: @@ -74266,7 +73279,7 @@ dart_library.library('language/if_null_assignment_static_test_29_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_31_multi', null, /* Imports */[ +dart_library.library('language/if_null_assignment_static_test_29_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', 'expect/expect' @@ -74370,7 +73383,7 @@ dart_library.library('language/if_null_assignment_static_test_31_multi', null, / } (() => { let o = dart.list([null], A), i = 0, t = o[dartx.get](i); - return t == null ? o[dartx.set](i, new B()) : t; + return t == null ? o[dartx.set](i, new A()) : t; })().a; if (!dart.notNull(exports.checkedMode)) { } @@ -74389,7 +73402,7 @@ dart_library.library('language/if_null_assignment_static_test_31_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_33_multi', null, /* Imports */[ +dart_library.library('language/if_null_assignment_static_test_31_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', 'expect/expect' @@ -74491,11 +73504,11 @@ dart_library.library('language/if_null_assignment_static_test_33_multi', null, / } if (!dart.notNull(exports.checkedMode)) { } + (() => { + let o = dart.list([null], A), i = 0, t = o[dartx.get](i); + return t == null ? o[dartx.set](i, new B()) : t; + })().a; if (!dart.notNull(exports.checkedMode)) { - (() => { - let o = dart.list([null], B), i = 0, t = o[dartx.get](i); - return t == null ? o[dartx.set](i, new A()) : t; - })().a; } if (!dart.notNull(exports.checkedMode)) { } @@ -74758,129 +73771,6 @@ dart_library.library('language/if_null_assignment_static_test_38_multi', null, / exports.DerivedClass = DerivedClass; exports.main = main; }); -dart_library.library('language/if_null_assignment_static_test_40_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core', - 'expect/expect' -], /* Lazy imports */[ -], function(exports, dart, core, expect) { - 'use strict'; - let dartx = dart.dartx; - dart.copyProperties(exports, { - get checkedMode() { - let checked = false; - dart.assert(checked = true); - return checked; - } - }); - function noMethod(e) { - return dart.is(e, core.NoSuchMethodError); - } - dart.fn(noMethod); - function bad() { - expect.Expect.fail('Should not be executed'); - } - dart.fn(bad); - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends A { - C() { - this.c = null; - super.A(); - } - } - dart.copyProperties(exports, { - get a() { - return null; - }, - set a(value) {}, - get b() { - return null; - }, - set b(value) {} - }); - class ClassWithStaticGetters extends core.Object { - static get a() { - return null; - } - static set a(value) {} - static get b() { - return null; - } - static set b(value) {} - } - class ClassWithInstanceGetters extends core.Object { - get a() { - return null; - } - set a(value) {} - get b() { - return null; - } - set b(value) {} - } - class DerivedClass extends ClassWithInstanceGetters { - get a() { - return dart.as(bad(), A); - } - set a(value) { - bad(); - } - get b() { - return dart.as(bad(), B); - } - set b(value) { - bad(); - } - derivedTest() { - if (!dart.notNull(exports.checkedMode)) { - } - } - } - dart.setSignature(DerivedClass, { - methods: () => ({derivedTest: [dart.void, []]}) - }); - function main() { - let _ = null; - let t = _; - t == null ? _ = null : t; - new DerivedClass().derivedTest(); - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - } - if (!dart.notNull(exports.checkedMode)) { - (() => { - let o = new ClassWithInstanceGetters(), t = dart.nullSafe(o, _ => _.b); - return t == null ? (o == null ? null : o.b = new A()) : t; - })().a; - } - } - dart.fn(main); - // Exports: - exports.noMethod = noMethod; - exports.bad = bad; - exports.A = A; - exports.B = B; - exports.C = C; - exports.ClassWithStaticGetters = ClassWithStaticGetters; - exports.ClassWithInstanceGetters = ClassWithInstanceGetters; - exports.DerivedClass = DerivedClass; - exports.main = main; -}); dart_library.library('language/if_null_assignment_static_test_none_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core', @@ -141388,103 +140278,6 @@ dart_library.library('language/type_promotion_more_specific_test_03_multi', null exports.testInterface = testInterface; exports.testGeneric = testGeneric; }); -dart_library.library('language/type_promotion_more_specific_test_04_multi', null, /* Imports */[ - 'dart/_runtime', - 'dart/core' -], /* Lazy imports */[ -], function(exports, dart, core) { - 'use strict'; - let dartx = dart.dartx; - class A extends core.Object { - A() { - this.a = null; - } - } - class B extends A { - B() { - this.b = null; - super.A(); - } - } - class C extends core.Object { - C() { - this.c = null; - } - } - const D$ = dart.generic(function(T) { - class D extends core.Object { - D(d) { - this.d = d; - } - } - dart.setSignature(D, { - constructors: () => ({D: [D$(T), [T]]}) - }); - return D; - }); - let D = D$(); - const E$ = dart.generic(function(T) { - class E extends D$(T) { - E(e) { - this.e = dart.as(e, T); - super.D(dart.as(e, T)); - } - } - dart.setSignature(E, { - constructors: () => ({E: [E$(T), [dart.dynamic]]}) - }); - return E; - }); - let E = E$(); - function main() { - testInterface(); - testGeneric(); - } - dart.fn(main, dart.void, []); - function testInterface() { - let x = null; - let y = null; - let a = new B(); - if (dart.is(a, B)) { - } - if (dart.is(a, C)) { - } - let b = new B(); - if (dart.is(b, A)) { - } - if (dart.is(x, A)) { - y = dart.dload(x, 'b'); - } - } - dart.fn(testInterface, dart.void, []); - function testGeneric() { - let x = null; - let y = null; - let d1 = new (E$(B))(null); - if (dart.is(d1, E)) { - } - if (dart.is(d1, E$(A))) { - } - let d2 = new (E$(B))(null); - if (dart.is(d2, E)) { - } - let d3 = new (E$(B))(new B()); - if (dart.is(d3, E$(B))) { - } - } - dart.fn(testGeneric); - // Exports: - exports.A = A; - exports.B = B; - exports.C = C; - exports.D$ = D$; - exports.D = D; - exports.E$ = E$; - exports.E = E; - exports.main = main; - exports.testInterface = testInterface; - exports.testGeneric = testGeneric; -}); dart_library.library('language/type_promotion_more_specific_test_05_multi', null, /* Imports */[ 'dart/_runtime', 'dart/core'