Version 1.20.0-dev.5.0
Merge commit '4fce5e9022acabf3673694e96370e752eb597676' into dev
diff --git a/DEPS b/DEPS
index e53f378..e7993ab 100644
--- a/DEPS
+++ b/DEPS
@@ -28,7 +28,7 @@
"github_dartlang": "https://github.com/dart-lang/%s.git",
"gyp_rev": "@6ee91ad8659871916f9aa840d42e1513befdf638",
- "co19_rev": "@3f0a4bc9a080a792cdf5f093147a900f99ea301f",
+ "co19_rev": "@d4767b4caea3c5828ad8e053cd051d44a59061af",
# Revisions of GN/Mojo/Flutter related dependencies.
"base_revision": "@672b04e54b937ec899429a6bd5409c5a6300d151",
@@ -70,7 +70,7 @@
"isolate_tag": "@0.2.3",
"jinja2_rev": "@2222b31554f03e62600cd7e383376a7c187967a1",
"json_rpc_2_tag": "@2.0.2",
- "kernel_rev": "@9509d282a62fe025f8d6242bb233b02e0a7fee04",
+ "kernel_rev": "@9677d68402ea15d0eca6430d64f631bb3e505499",
"linter_tag": "@0.1.26",
"logging_tag": "@0.11.3+1",
"markdown_rev": "@4aaadf3d940bb172e1f6285af4d2b1710d309982",
diff --git a/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart b/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart
index bcfca4e..3f8c69a 100644
--- a/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart
+++ b/pkg/analysis_server/benchmark/integration/instrumentation_input_converter.dart
@@ -6,8 +6,8 @@
import 'dart:convert';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:logging/logging.dart';
import 'input_converter.dart';
diff --git a/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart b/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart
index 3490860..85ba24f 100644
--- a/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart
+++ b/pkg/analysis_server/benchmark/integration/log_file_input_converter.dart
@@ -6,7 +6,7 @@
import 'dart:convert';
-import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:logging/logging.dart';
import 'input_converter.dart';
diff --git a/pkg/analysis_server/lib/src/analysis_logger.dart b/pkg/analysis_server/lib/src/analysis_logger.dart
index 8b9c9b6..9aff46d 100644
--- a/pkg/analysis_server/lib/src/analysis_logger.dart
+++ b/pkg/analysis_server/lib/src/analysis_logger.dart
@@ -5,8 +5,8 @@
library analysis.logger;
import 'package:analysis_server/src/analysis_server.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:logging/logging.dart' as logging;
/**
diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
index c8a653a..00d113e 100644
--- a/pkg/analysis_server/lib/src/analysis_server.dart
+++ b/pkg/analysis_server/lib/src/analysis_server.dart
@@ -6,7 +6,7 @@
import 'dart:async';
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'dart:math' show max;
@@ -33,8 +33,7 @@
import 'package:analyzer/src/context/builder.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
-import 'package:analyzer/src/generated/java_io.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -401,7 +400,7 @@
for (String pattern in patterns) {
try {
_analyzedFilesGlobs
- .add(new Glob(JavaFile.pathContext.separator, pattern));
+ .add(new Glob(resourceProvider.pathContext.separator, pattern));
} catch (exception, stackTrace) {
AnalysisEngine.instance.logger.logError(
'Invalid glob pattern: "$pattern"',
diff --git a/pkg/analysis_server/lib/src/context_manager.dart b/pkg/analysis_server/lib/src/context_manager.dart
index 5c47909..14c64d4 100644
--- a/pkg/analysis_server/lib/src/context_manager.dart
+++ b/pkg/analysis_server/lib/src/context_manager.dart
@@ -7,7 +7,7 @@
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analyzer/file_system/file_system.dart';
@@ -25,7 +25,7 @@
import 'package:analyzer/src/context/context.dart' as context;
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analysis_server/lib/src/domain_analysis.dart b/pkg/analysis_server/lib/src/domain_analysis.dart
index 6dc2c43..1c00252 100644
--- a/pkg/analysis_server/lib/src/domain_analysis.dart
+++ b/pkg/analysis_server/lib/src/domain_analysis.dart
@@ -5,7 +5,7 @@
library domain.analysis;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/plugin/analysis/analysis_domain.dart';
import 'package:analysis_server/src/analysis_server.dart';
@@ -21,9 +21,9 @@
import 'package:analysis_server/src/services/dependencies/reachable_source_collector.dart';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/engine.dart' as engine;
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/task/model.dart' show ResultDescriptor;
diff --git a/pkg/analysis_server/lib/src/domain_diagnostic.dart b/pkg/analysis_server/lib/src/domain_diagnostic.dart
index df32e9e..1f2609c 100644
--- a/pkg/analysis_server/lib/src/domain_diagnostic.dart
+++ b/pkg/analysis_server/lib/src/domain_diagnostic.dart
@@ -5,7 +5,7 @@
library analysis_server.src.domain_diagnostic;
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/plugin/protocol/protocol.dart';
import 'package:analysis_server/src/analysis_server.dart';
diff --git a/pkg/analysis_server/lib/src/domain_execution.dart b/pkg/analysis_server/lib/src/domain_execution.dart
index 4954152..5524426 100644
--- a/pkg/analysis_server/lib/src/domain_execution.dart
+++ b/pkg/analysis_server/lib/src/domain_execution.dart
@@ -6,7 +6,7 @@
import 'dart:async';
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/plugin/protocol/protocol.dart';
import 'package:analysis_server/src/analysis_server.dart';
diff --git a/pkg/analysis_server/lib/src/domains/analysis/navigation.dart b/pkg/analysis_server/lib/src/domains/analysis/navigation.dart
index c991353..73f8b73 100644
--- a/pkg/analysis_server/lib/src/domains/analysis/navigation.dart
+++ b/pkg/analysis_server/lib/src/domains/analysis/navigation.dart
@@ -10,9 +10,9 @@
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/collections.dart';
import 'package:analysis_server/src/protocol_server.dart' as protocol;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart'
show AnalysisContext, AnalysisEngine;
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/source.dart' show Source, SourceRange;
/**
diff --git a/pkg/analysis_server/lib/src/domains/analysis/occurrences.dart b/pkg/analysis_server/lib/src/domains/analysis/occurrences.dart
index 2c3668d..34b3a24 100644
--- a/pkg/analysis_server/lib/src/domains/analysis/occurrences.dart
+++ b/pkg/analysis_server/lib/src/domains/analysis/occurrences.dart
@@ -7,9 +7,9 @@
import 'package:analysis_server/plugin/analysis/occurrences/occurrences_core.dart';
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/protocol_server.dart' as protocol;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart'
show AnalysisContext, AnalysisEngine;
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/source.dart' show Source;
/**
diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart
index 864f04f..0a00a17 100644
--- a/pkg/analysis_server/lib/src/protocol_server.dart
+++ b/pkg/analysis_server/lib/src/protocol_server.dart
@@ -13,11 +13,11 @@
import 'package:analyzer/dart/ast/visitor.dart' as engine;
import 'package:analyzer/dart/element/element.dart' as engine;
import 'package:analyzer/dart/element/type.dart' as engine;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/source/error_processor.dart';
import 'package:analyzer/src/dart/ast/utilities.dart' as engine;
import 'package:analyzer/src/generated/engine.dart' as engine;
import 'package:analyzer/src/generated/error.dart' as engine;
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart' as engine;
import 'package:analyzer/src/generated/utilities_dart.dart' as engine;
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
index f05284d..ef95f10 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/completion_manager.dart
@@ -22,11 +22,11 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/context/context.dart' show AnalysisFutureHelper;
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/dart.dart';
import 'package:analyzer/task/dart.dart';
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
index 0cf9318..d535ef4 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/type_member_contributor.dart
@@ -331,6 +331,15 @@
}
}
String identifier = element.displayName;
+
+ if (relevance == DART_RELEVANCE_DEFAULT && identifier != null) {
+ // Decrease relevance of suggestions starting with $
+ // https://github.com/dart-lang/sdk/issues/27303
+ if (identifier.startsWith(r'$')) {
+ relevance = DART_RELEVANCE_LOW;
+ }
+ }
+
int alreadyGenerated = _completionTypesGenerated.putIfAbsent(
identifier, () => _COMPLETION_TYPE_NONE);
if (element is MethodElement) {
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
index 949ec9c..01176aa 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/uri_contributor.dart
@@ -5,7 +5,7 @@
library services.completion.contributor.dart.importuri;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
import 'package:analyzer/dart/ast/ast.dart';
diff --git a/pkg/analysis_server/lib/src/services/correction/assist.dart b/pkg/analysis_server/lib/src/services/correction/assist.dart
index 2bcf316..a1a5387 100644
--- a/pkg/analysis_server/lib/src/services/correction/assist.dart
+++ b/pkg/analysis_server/lib/src/services/correction/assist.dart
@@ -8,8 +8,8 @@
import 'package:analysis_server/plugin/edit/assist/assist_core.dart';
import 'package:analysis_server/src/plugin/server_plugin.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
/**
diff --git a/pkg/analysis_server/lib/src/services/correction/fix.dart b/pkg/analysis_server/lib/src/services/correction/fix.dart
index e25f0b4..05ec763 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix.dart
@@ -9,10 +9,10 @@
import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
import 'package:analysis_server/src/plugin/server_plugin.dart';
import 'package:analysis_server/src/services/correction/fix_internal.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/parser.dart';
/**
diff --git a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
index dff8dff..6b8ee68 100644
--- a/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
+++ b/pkg/analysis_server/lib/src/services/correction/fix_internal.dart
@@ -6,7 +6,7 @@
import 'dart:async';
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/plugin/edit/fix/fix_core.dart';
import 'package:analysis_server/plugin/edit/fix/fix_dart.dart';
diff --git a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
index 4a25e6d..f8c8919 100644
--- a/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
+++ b/pkg/analysis_server/lib/src/services/refactoring/move_file.dart
@@ -5,7 +5,7 @@
library services.src.refactoring.move_file;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/src/protocol_server.dart' hide Element;
import 'package:analysis_server/src/services/correction/status.dart';
@@ -181,6 +181,7 @@
}
}
}
+
updateUriElements(library.imports);
updateUriElements(library.exports);
}
diff --git a/pkg/analysis_server/lib/src/services/search/search_engine.dart b/pkg/analysis_server/lib/src/services/search/search_engine.dart
index e6d2738..72ca482 100644
--- a/pkg/analysis_server/lib/src/services/search/search_engine.dart
+++ b/pkg/analysis_server/lib/src/services/search/search_engine.dart
@@ -10,8 +10,8 @@
import 'package:analyzer/dart/element/visitor.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisContext;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/source.dart';
+import 'package:analyzer/src/generated/utilities_general.dart';
/**
* Instances of the enum [MatchKind] represent the kind of reference that was
@@ -175,8 +175,9 @@
String get file => unitSource.fullName;
@override
- int get hashCode =>
- JavaArrays.makeHashCode([libraryUri, unitUri, kind, sourceRange]);
+ int get hashCode {
+ return JenkinsSmiHash.hash4(libraryUri, unitUri, kind, sourceRange);
+ }
/**
* Return the [LibraryElement] for the [libraryUri] in the [context].
diff --git a/pkg/analysis_server/lib/src/single_context_manager.dart b/pkg/analysis_server/lib/src/single_context_manager.dart
index 058d77e..9f4db07 100644
--- a/pkg/analysis_server/lib/src/single_context_manager.dart
+++ b/pkg/analysis_server/lib/src/single_context_manager.dart
@@ -5,7 +5,7 @@
library analysis_server.src.single_context_manager;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:math' as math;
import 'package:analysis_server/src/context_manager.dart';
diff --git a/pkg/analysis_server/lib/src/source/caching_pub_package_map_provider.dart b/pkg/analysis_server/lib/src/source/caching_pub_package_map_provider.dart
index 48abf8e..964e7de 100644
--- a/pkg/analysis_server/lib/src/source/caching_pub_package_map_provider.dart
+++ b/pkg/analysis_server/lib/src/source/caching_pub_package_map_provider.dart
@@ -5,7 +5,7 @@
library source.caching_pub_package_map_provider;
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analyzer/file_system/file_system.dart';
diff --git a/pkg/analysis_server/lib/src/status/get_handler.dart b/pkg/analysis_server/lib/src/status/get_handler.dart
index 157225f..54293cd 100644
--- a/pkg/analysis_server/lib/src/status/get_handler.dart
+++ b/pkg/analysis_server/lib/src/status/get_handler.dart
@@ -27,6 +27,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/source/error_processor.dart';
import 'package:analyzer/source/sdk_ext.dart';
@@ -36,7 +37,6 @@
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analysis_server/lib/src/status/tree_writer.dart b/pkg/analysis_server/lib/src/status/tree_writer.dart
index daa7966..65e2cb0 100644
--- a/pkg/analysis_server/lib/src/status/tree_writer.dart
+++ b/pkg/analysis_server/lib/src/status/tree_writer.dart
@@ -6,9 +6,9 @@
import 'dart:convert';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/generated/constant.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
/**
diff --git a/pkg/analysis_server/lib/src/watch_manager.dart b/pkg/analysis_server/lib/src/watch_manager.dart
index 04973b9..270627b 100644
--- a/pkg/analysis_server/lib/src/watch_manager.dart
+++ b/pkg/analysis_server/lib/src/watch_manager.dart
@@ -6,7 +6,7 @@
import 'dart:async';
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:watcher/watcher.dart';
diff --git a/pkg/analysis_server/test/abstract_context.dart b/pkg/analysis_server/test/abstract_context.dart
index c0d22f1..d7b70df 100644
--- a/pkg/analysis_server/test/abstract_context.dart
+++ b/pkg/analysis_server/test/abstract_context.dart
@@ -7,11 +7,11 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source_io.dart';
diff --git a/pkg/analysis_server/test/analysis_server_test.dart b/pkg/analysis_server/test/analysis_server_test.dart
index 5b4efed..ed50563 100644
--- a/pkg/analysis_server/test/analysis_server_test.dart
+++ b/pkg/analysis_server/test/analysis_server_test.dart
@@ -13,12 +13,12 @@
import 'package:analysis_server/src/domain_server.dart';
import 'package:analysis_server/src/operation/operation.dart';
import 'package:analysis_server/src/plugin/server_plugin.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:plugin/manager.dart';
diff --git a/pkg/analysis_server/test/completion_test_support.dart b/pkg/analysis_server/test/completion_test_support.dart
index 1ef8e4c..e477c5b 100644
--- a/pkg/analysis_server/test/completion_test_support.dart
+++ b/pkg/analysis_server/test/completion_test_support.dart
@@ -8,7 +8,6 @@
import 'dart:collection';
import 'package:analysis_server/plugin/protocol/protocol.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:unittest/unittest.dart';
import 'domain_completion_test.dart';
@@ -162,8 +161,7 @@
String value = result.substring(2);
LocationSpec test = tests[id];
if (test == null) {
- throw new StateError(
- "Invalid location result id: $id for: $result");
+ throw new StateError("Invalid location result id: $id for: $result");
}
test.source = modifiedSource;
if (sign == '+') {
diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart
index 1aa02fe..c00648c 100644
--- a/pkg/analysis_server/test/context_manager_test.dart
+++ b/pkg/analysis_server/test/context_manager_test.dart
@@ -5,6 +5,7 @@
library test.context.directory.manager;
import 'dart:collection';
+import 'dart:io' as io;
import 'package:analysis_server/src/context_manager.dart';
import 'package:analyzer/file_system/file_system.dart';
@@ -15,7 +16,6 @@
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -154,8 +154,10 @@
var context = contexts[0];
var source = context.sourceFactory.forUri('dart:foobar');
expect(source, isNotNull);
- expect(source.fullName,
- '/my/proj/sdk_ext/entry.dart'.replaceAll('/', JavaFile.separator));
+ expect(
+ source.fullName,
+ '/my/proj/sdk_ext/entry.dart'
+ .replaceAll('/', io.Platform.pathSeparator));
// We can't find dart:core because we didn't list it in our
// embedded_libs map.
expect(context.sourceFactory.forUri('dart:core'), isNull);
@@ -1771,7 +1773,7 @@
'**/${AnalysisEngine.ANALYSIS_OPTIONS_YAML_FILE}'
];
return patterns
- .map((pattern) => new Glob(JavaFile.pathContext.separator, pattern))
+ .map((pattern) => new Glob(posix.separator, pattern))
.toList();
}
@@ -2193,8 +2195,10 @@
// Sanity check embedder libs.
var source = context.sourceFactory.forUri('dart:foobar');
expect(source, isNotNull);
- expect(source.fullName,
- '/my/proj/sdk_ext/entry.dart'.replaceAll('/', JavaFile.separator));
+ expect(
+ source.fullName,
+ '/my/proj/sdk_ext/entry.dart'
+ .replaceAll('/', io.Platform.pathSeparator));
}
test_embedder_options() async {
@@ -2287,8 +2291,10 @@
// Sanity check embedder libs.
var source = context.sourceFactory.forUri('dart:foobar');
expect(source, isNotNull);
- expect(source.fullName,
- '/my/proj/sdk_ext/entry.dart'.replaceAll('/', JavaFile.separator));
+ expect(
+ source.fullName,
+ '/my/proj/sdk_ext/entry.dart'
+ .replaceAll('/', io.Platform.pathSeparator));
}
test_error_filter_analysis_option() async {
diff --git a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
index 1a74e78..b3dfba3 100644
--- a/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/type_member_contributor_test.dart
@@ -2992,9 +2992,9 @@
test_MethodInvocation_no_semicolon() async {
// MethodInvocation ExpressionStatement Block
- addTestSource('''
+ addTestSource(r'''
main() { }
- class I {X get f => new A();get _g => new A();}
+ class I {X get f => new A();get _g => new A(); F $p; void $q(){}}
class A implements I {
var b; X _c;
X get d => new A();get _e => new A();
@@ -3007,6 +3007,8 @@
expect(replacementLength, 0);
assertSuggestGetter('f', 'X');
assertSuggestGetter('_g', null);
+ assertSuggestField(r'$p', 'dynamic', relevance: DART_RELEVANCE_LOW);
+ assertSuggestMethod(r'$q', 'I', 'void', relevance: DART_RELEVANCE_LOW);
assertNotSuggested('b');
assertNotSuggested('_c');
assertNotSuggested('d');
diff --git a/pkg/analysis_server/test/single_context_manager_test.dart b/pkg/analysis_server/test/single_context_manager_test.dart
index d85214a..62376bf 100644
--- a/pkg/analysis_server/test/single_context_manager_test.dart
+++ b/pkg/analysis_server/test/single_context_manager_test.dart
@@ -4,12 +4,11 @@
library test.analysis_server.src.single_context_manager;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analysis_server/src/single_context_manager.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -45,7 +44,7 @@
'**/*.${AnalysisEngine.SUFFIX_HTML}',
];
return patterns
- .map((pattern) => new Glob(JavaFile.pathContext.separator, pattern))
+ .map((pattern) => new Glob(posix.separator, pattern))
.toList();
}
diff --git a/pkg/analysis_server/test/source/caching_put_package_map_provider_test.dart b/pkg/analysis_server/test/source/caching_put_package_map_provider_test.dart
index de239de..4b78803 100644
--- a/pkg/analysis_server/test/source/caching_put_package_map_provider_test.dart
+++ b/pkg/analysis_server/test/source/caching_put_package_map_provider_test.dart
@@ -5,7 +5,7 @@
library test.source.caching_pub_package_map_provider;
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analysis_server/src/source/caching_pub_package_map_provider.dart';
diff --git a/pkg/analysis_server/test/utils.dart b/pkg/analysis_server/test/utils.dart
index 2ca53b7..e87a3c8 100644
--- a/pkg/analysis_server/test/utils.dart
+++ b/pkg/analysis_server/test/utils.dart
@@ -4,11 +4,8 @@
library analysis_server.test.utils;
-import 'package:analyzer/src/generated/java_io.dart';
-import 'package:path/path.dart' as path;
import 'package:unittest/unittest.dart';
void initializeTestEnvironment() {
groupSep = ' | ';
- JavaFile.pathContext = path.posix;
}
diff --git a/pkg/analyzer/CHANGELOG.md b/pkg/analyzer/CHANGELOG.md
index 3610f49..f47e10a 100644
--- a/pkg/analyzer/CHANGELOG.md
+++ b/pkg/analyzer/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.29.0-alpha.0
+* Removed `Element.docRange`.
+
## 0.28.2-alpha.0
* Corresponds with the analyzer/server in the `1.20.0-dev.1.0 ` SDK.
diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index b829bee..307ad1b 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -590,15 +590,6 @@
String get displayName;
/**
- * Return the source range of the documentation comment for this element,
- * or `null` if this element does not or cannot have a documentation.
- *
- * Deprecated. Use [documentationComment] instead.
- */
- @deprecated
- SourceRange get docRange;
-
- /**
* Return the content of the documentation comment (including delimiters) for
* this element, or `null` if this element does not or cannot have
* documentation.
@@ -1491,11 +1482,6 @@
List<CompilationUnitElement> get units;
/**
- * Return a list containing all directly and indirectly imported libraries.
- */
- List<LibraryElement> get visibleLibraries;
-
- /**
* Return a list containing all of the imports that share the given [prefix],
* or an empty array if there are no such imports.
*/
@@ -1506,13 +1492,6 @@
* `null` if this library does not define a class with the given name.
*/
ClassElement getType(String className);
-
- /**
- * Return `true` if this library is up to date with respect to the given
- * [timeStamp]. If any transitively referenced Source is newer than the time
- * stamp, this method returns false.
- */
- bool isUpToDate(int timeStamp);
}
/**
diff --git a/pkg/analyzer/lib/exception/exception.dart b/pkg/analyzer/lib/exception/exception.dart
new file mode 100644
index 0000000..8014115
--- /dev/null
+++ b/pkg/analyzer/lib/exception/exception.dart
@@ -0,0 +1,99 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library analyzer.exception.exception;
+
+/**
+ * An exception that occurred during the analysis of one or more sources.
+ */
+class AnalysisException implements Exception {
+ /**
+ * The message that explains why the exception occurred.
+ */
+ final String message;
+
+ /**
+ * The exception that caused this exception, or `null` if this exception was
+ * not caused by another exception.
+ */
+ final CaughtException cause;
+
+ /**
+ * Initialize a newly created exception to have the given [message] and
+ * [cause].
+ */
+ AnalysisException([this.message = 'Exception', this.cause = null]);
+
+ String toString() {
+ StringBuffer buffer = new StringBuffer();
+ buffer.write("AnalysisException: ");
+ buffer.writeln(message);
+ if (cause != null) {
+ buffer.write('Caused by ');
+ cause._writeOn(buffer);
+ }
+ return buffer.toString();
+ }
+}
+
+/**
+ * An exception that was caught and has an associated stack trace.
+ */
+class CaughtException implements Exception {
+ /**
+ * The exception that was caught.
+ */
+ final Object exception;
+
+ /**
+ * The stack trace associated with the exception.
+ */
+ StackTrace stackTrace;
+
+ /**
+ * Initialize a newly created caught exception to have the given [exception]
+ * and [stackTrace].
+ */
+ CaughtException(this.exception, stackTrace) {
+ if (stackTrace == null) {
+ try {
+ throw this;
+ } catch (_, st) {
+ stackTrace = st;
+ }
+ }
+ this.stackTrace = stackTrace;
+ }
+
+ @override
+ String toString() {
+ StringBuffer buffer = new StringBuffer();
+ _writeOn(buffer);
+ return buffer.toString();
+ }
+
+ /**
+ * Write a textual representation of the caught exception and its associated
+ * stack trace.
+ */
+ void _writeOn(StringBuffer buffer) {
+ if (exception is AnalysisException) {
+ AnalysisException analysisException = exception;
+ buffer.writeln(analysisException.message);
+ if (stackTrace != null) {
+ buffer.writeln(stackTrace.toString());
+ }
+ CaughtException cause = analysisException.cause;
+ if (cause != null) {
+ buffer.write('Caused by ');
+ cause._writeOn(buffer);
+ }
+ } else {
+ buffer.writeln(exception.toString());
+ if (stackTrace != null) {
+ buffer.writeln(stackTrace.toString());
+ }
+ }
+ }
+}
diff --git a/pkg/analyzer/lib/file_system/memory_file_system.dart b/pkg/analyzer/lib/file_system/memory_file_system.dart
index 0ba9b94..7dd097c 100644
--- a/pkg/analyzer/lib/file_system/memory_file_system.dart
+++ b/pkg/analyzer/lib/file_system/memory_file_system.dart
@@ -7,7 +7,7 @@
import 'dart:async';
import 'dart:collection';
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/source_io.dart';
diff --git a/pkg/analyzer/lib/file_system/physical_file_system.dart b/pkg/analyzer/lib/file_system/physical_file_system.dart
index ad430c0..a9cf94b 100644
--- a/pkg/analyzer/lib/file_system/physical_file_system.dart
+++ b/pkg/analyzer/lib/file_system/physical_file_system.dart
@@ -5,7 +5,7 @@
library analyzer.file_system.physical_file_system;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analyzer/file_system/file_system.dart';
@@ -43,7 +43,7 @@
* A `dart:io` based implementation of [ResourceProvider].
*/
class PhysicalResourceProvider implements ResourceProvider {
- static final NORMALIZE_EOL_ALWAYS =
+ static final FileReadMode NORMALIZE_EOL_ALWAYS =
(String string) => string.replaceAll(new RegExp('\r\n?'), '\n');
static final PhysicalResourceProvider INSTANCE =
@@ -62,7 +62,7 @@
final AbsolutePathContext absolutePathContext =
new AbsolutePathContext(io.Platform.isWindows);
- PhysicalResourceProvider(String fileReadMode(String s)) {
+ PhysicalResourceProvider(FileReadMode fileReadMode) {
if (fileReadMode != null) {
FileBasedSource.fileReadMode = fileReadMode;
}
diff --git a/pkg/analyzer/lib/source/analysis_options_provider.dart b/pkg/analyzer/lib/source/analysis_options_provider.dart
index fbacdfb..cdd912c 100644
--- a/pkg/analyzer/lib/source/analysis_options_provider.dart
+++ b/pkg/analyzer/lib/source/analysis_options_provider.dart
@@ -4,7 +4,7 @@
library analyzer.source.analysis_options_provider;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -58,6 +58,7 @@
throw new OptionsFormatException('Unable to parse YAML document.');
}
}
+
YamlNode doc = safelyLoadYamlNode();
// Empty options.
diff --git a/pkg/analyzer/lib/source/embedder.dart b/pkg/analyzer/lib/source/embedder.dart
index ffcbfed..f09ec1b 100644
--- a/pkg/analyzer/lib/source/embedder.dart
+++ b/pkg/analyzer/lib/source/embedder.dart
@@ -6,12 +6,12 @@
library analyzer.source.embedder;
import 'dart:collection' show HashMap;
-import 'dart:core' hide Resource;
+import 'dart:core';
+import 'dart:io' as io;
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/source/package_map_provider.dart'
show PackageMapProvider;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_io.dart' show JavaFile;
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/sdk_io.dart';
@@ -75,7 +75,7 @@
srcPath = library.path;
} else {
String libraryPath = library.path;
- int index = libraryPath.lastIndexOf(JavaFile.separator);
+ int index = libraryPath.lastIndexOf(io.Platform.pathSeparator);
if (index == -1) {
index = libraryPath.lastIndexOf('/');
if (index == -1) {
@@ -85,11 +85,11 @@
String prefix = libraryPath.substring(0, index + 1);
srcPath = '$prefix$relativePath';
}
- String filePath = srcPath.replaceAll('/', JavaFile.separator);
+ String filePath = srcPath.replaceAll('/', io.Platform.pathSeparator);
try {
JavaFile file = new JavaFile(filePath);
- return new FileBasedSource(file, parseUriWithException(dartUri));
- } on URISyntaxException {
+ return new FileBasedSource(file, Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
diff --git a/pkg/analyzer/lib/source/package_map_resolver.dart b/pkg/analyzer/lib/source/package_map_resolver.dart
index 4325582..056016f 100644
--- a/pkg/analyzer/lib/source/package_map_resolver.dart
+++ b/pkg/analyzer/lib/source/package_map_resolver.dart
@@ -4,7 +4,7 @@
library analyzer.source.package_map_resolver;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analyzer/lib/source/pub_package_map_provider.dart b/pkg/analyzer/lib/source/pub_package_map_provider.dart
index c562232..3b2d731 100644
--- a/pkg/analyzer/lib/source/pub_package_map_provider.dart
+++ b/pkg/analyzer/lib/source/pub_package_map_provider.dart
@@ -6,7 +6,7 @@
import 'dart:collection';
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analyzer/file_system/file_system.dart';
diff --git a/pkg/analyzer/lib/source/sdk_ext.dart b/pkg/analyzer/lib/source/sdk_ext.dart
index f25d65e..70682eb 100644
--- a/pkg/analyzer/lib/source/sdk_ext.dart
+++ b/pkg/analyzer/lib/source/sdk_ext.dart
@@ -5,7 +5,7 @@
library analyzer.source.sdk_ext;
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/source/package_map_provider.dart'
diff --git a/pkg/analyzer/lib/src/context/builder.dart b/pkg/analyzer/lib/src/context/builder.dart
index 42e9d0f..b1f2f97 100644
--- a/pkg/analyzer/lib/src/context/builder.dart
+++ b/pkg/analyzer/lib/src/context/builder.dart
@@ -5,7 +5,7 @@
library analyzer.src.context.context_builder;
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/context/declared_variables.dart';
import 'package:analyzer/file_system/file_system.dart';
diff --git a/pkg/analyzer/lib/src/context/cache.dart b/pkg/analyzer/lib/src/context/cache.dart
index 74bd8aa..bf981e5 100644
--- a/pkg/analyzer/lib/src/context/cache.dart
+++ b/pkg/analyzer/lib/src/context/cache.dart
@@ -7,9 +7,9 @@
import 'dart:async';
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/task/model.dart';
diff --git a/pkg/analyzer/lib/src/context/context.dart b/pkg/analyzer/lib/src/context/context.dart
index 3dfa30c..ba82c4d 100644
--- a/pkg/analyzer/lib/src/context/context.dart
+++ b/pkg/analyzer/lib/src/context/context.dart
@@ -10,6 +10,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
import 'package:analyzer/plugin/resolver_provider.dart';
import 'package:analyzer/plugin/task.dart';
@@ -22,8 +23,6 @@
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/incremental_resolver.dart';
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/sdk.dart' show DartSdk;
import 'package:analyzer/src/generated/source.dart';
@@ -292,6 +291,8 @@
this._options.enableAssertInitializer !=
options.enableAssertInitializer ||
this._options.enableAssertMessage != options.enableAssertMessage ||
+ this._options.enableInitializingFormalAccess !=
+ options.enableInitializingFormalAccess ||
((options is AnalysisOptionsImpl)
? this._options.strongModeHints != options.strongModeHints
: false) ||
@@ -323,6 +324,8 @@
this._options.enableAssertMessage = options.enableAssertMessage;
this._options.enableStrictCallChecks = options.enableStrictCallChecks;
this._options.enableAsync = options.enableAsync;
+ this._options.enableInitializingFormalAccess =
+ options.enableInitializingFormalAccess;
this._options.enableSuperMixins = options.enableSuperMixins;
this._options.enableTiming = options.enableTiming;
this._options.hint = options.hint;
@@ -654,9 +657,6 @@
_contentRangeChanged(source, change.contents, change.offset,
change.oldLength, change.newLength);
});
- for (Source source in changeSet.deletedSources) {
- _sourceDeleted(source);
- }
for (Source source in removedSources) {
_sourceRemoved(source);
}
@@ -1888,20 +1888,31 @@
.firstWhere((unit) => unit != null, orElse: () => null);
// If we have the old unit, we can try to update it.
if (oldUnit != null) {
- CompilationUnit newUnit = parseCompilationUnit(source);
- IncrementalCompilationUnitElementBuilder builder =
- new IncrementalCompilationUnitElementBuilder(oldUnit, newUnit);
- builder.build();
- CompilationUnitElementDelta unitDelta = builder.unitDelta;
- if (!unitDelta.hasDirectiveChange) {
- unitEntry.setValueIncremental(
- COMPILATION_UNIT_CONSTANTS, builder.unitConstants, false);
- DartDelta dartDelta = new DartDelta(source);
- unitDelta.addedDeclarations.forEach(dartDelta.elementChanged);
- unitDelta.removedDeclarations.forEach(dartDelta.elementChanged);
- unitDelta.classDeltas.values.forEach(dartDelta.classChanged);
- entry.setState(CONTENT, CacheState.INVALID, delta: dartDelta);
- return;
+ // Safely parse the source.
+ CompilationUnit newUnit;
+ try {
+ newUnit = parseCompilationUnit(source);
+ } catch (_) {
+ // The source might have been removed by this time.
+ // We cannot perform incremental invalidation.
+ }
+ // If the new unit was parsed successfully, continue.
+ if (newUnit != null) {
+ IncrementalCompilationUnitElementBuilder builder =
+ new IncrementalCompilationUnitElementBuilder(
+ oldUnit, newUnit);
+ builder.build();
+ CompilationUnitElementDelta unitDelta = builder.unitDelta;
+ if (!unitDelta.hasDirectiveChange) {
+ unitEntry.setValueIncremental(
+ COMPILATION_UNIT_CONSTANTS, builder.unitConstants, false);
+ DartDelta dartDelta = new DartDelta(source);
+ unitDelta.addedDeclarations.forEach(dartDelta.elementChanged);
+ unitDelta.removedDeclarations.forEach(dartDelta.elementChanged);
+ unitDelta.classDeltas.values.forEach(dartDelta.classChanged);
+ entry.setState(CONTENT, CacheState.INVALID, delta: dartDelta);
+ return;
+ }
}
}
}
@@ -1917,37 +1928,6 @@
}
/**
- * Record that the give [source] has been deleted.
- */
- void _sourceDeleted(Source source) {
- // TODO(brianwilkerson) Implement or remove this.
-// SourceEntry sourceEntry = _cache.get(source);
-// if (sourceEntry is HtmlEntry) {
-// HtmlEntry htmlEntry = sourceEntry;
-// htmlEntry.recordContentError(new CaughtException(
-// new AnalysisException("This source was marked as being deleted"),
-// null));
-// } else if (sourceEntry is DartEntry) {
-// DartEntry dartEntry = sourceEntry;
-// HashSet<Source> libraries = new HashSet<Source>();
-// for (Source librarySource in getLibrariesContaining(source)) {
-// libraries.add(librarySource);
-// for (Source dependentLibrary
-// in getLibrariesDependingOn(librarySource)) {
-// libraries.add(dependentLibrary);
-// }
-// }
-// for (Source librarySource in libraries) {
-// _invalidateLibraryResolution(librarySource);
-// }
-// dartEntry.recordContentError(new CaughtException(
-// new AnalysisException("This source was marked as being deleted"),
-// null));
-// }
- _removeFromPriorityOrder(source);
- }
-
- /**
* Record that the given [source] has been removed.
*/
void _sourceRemoved(Source source) {
diff --git a/pkg/analyzer/lib/src/context/source.dart b/pkg/analyzer/lib/src/context/source.dart
index d6f5c15..1f7c3b5 100644
--- a/pkg/analyzer/lib/src/context/source.dart
+++ b/pkg/analyzer/lib/src/context/source.dart
@@ -6,12 +6,11 @@
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_dart.dart' as utils;
@@ -159,7 +158,7 @@
try {
// Force the creation of an escaped URI to deal with spaces, etc.
return _internalResolveUri(containingSource, FastUri.parse(containedUri));
- } on URISyntaxException {
+ } on FormatException {
return null;
} catch (exception, stackTrace) {
String containingFullName =
diff --git a/pkg/analyzer/lib/src/dart/ast/ast.dart b/pkg/analyzer/lib/src/dart/ast/ast.dart
index 90928c8..d5ed4cf 100644
--- a/pkg/analyzer/lib/src/dart/ast/ast.dart
+++ b/pkg/analyzer/lib/src/dart/ast/ast.dart
@@ -10,12 +10,12 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/source.dart' show LineInfo, Source;
@@ -938,9 +938,9 @@
@override
String toSource() {
- PrintStringWriter writer = new PrintStringWriter();
- accept(new ToSourceVisitor(writer));
- return writer.toString();
+ StringBuffer buffer = new StringBuffer();
+ accept(new ToSourceVisitor(buffer));
+ return buffer.toString();
}
@override
@@ -10526,7 +10526,7 @@
@override
UriValidationCode validate() {
- StringLiteral uriLiteral = uri;
+ StringLiteral uriLiteral = this.uri;
if (uriLiteral is StringInterpolation) {
return UriValidationCode.URI_WITH_INTERPOLATION;
}
@@ -10537,9 +10537,13 @@
if (this is ImportDirective && uriContent.startsWith(_DART_EXT_SCHEME)) {
return UriValidationCode.URI_WITH_DART_EXT_SCHEME;
}
+ Uri uri;
try {
- parseUriWithException(Uri.encodeFull(uriContent));
- } on URISyntaxException {
+ uri = Uri.parse(Uri.encodeFull(uriContent));
+ } on FormatException {
+ return UriValidationCode.INVALID_URI;
+ }
+ if (uri.path.isEmpty) {
return UriValidationCode.INVALID_URI;
}
return null;
diff --git a/pkg/analyzer/lib/src/dart/ast/utilities.dart b/pkg/analyzer/lib/src/dart/ast/utilities.dart
index 2c0db3b..c128343 100644
--- a/pkg/analyzer/lib/src/dart/ast/utilities.dart
+++ b/pkg/analyzer/lib/src/dart/ast/utilities.dart
@@ -10,10 +10,9 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap;
import 'package:analyzer/src/generated/utilities_dart.dart';
@@ -6696,15 +6695,15 @@
*/
class ToSourceVisitor implements AstVisitor<Object> {
/**
- * The writer to which the source is to be written.
+ * The buffer to which the source is to be written.
*/
- final PrintWriter _writer;
+ final StringBuffer _buffer;
/**
* Initialize a newly created visitor to write source code representing the
- * visited nodes to the given [writer].
+ * visited nodes to the given [_buffer].
*/
- ToSourceVisitor(this._writer);
+ ToSourceVisitor(this._buffer);
@override
Object visitAdjacentStrings(AdjacentStrings node) {
@@ -6714,7 +6713,7 @@
@override
Object visitAnnotation(Annotation node) {
- _writer.print('@');
+ _buffer.write('@');
_visitNode(node.name);
_visitNodeWithPrefix(".", node.constructorName);
_visitNode(node.arguments);
@@ -6723,45 +6722,45 @@
@override
Object visitArgumentList(ArgumentList node) {
- _writer.print('(');
+ _buffer.write('(');
_visitNodeListWithSeparator(node.arguments, ", ");
- _writer.print(')');
+ _buffer.write(')');
return null;
}
@override
Object visitAsExpression(AsExpression node) {
_visitNode(node.expression);
- _writer.print(" as ");
+ _buffer.write(" as ");
_visitNode(node.type);
return null;
}
@override
Object visitAssertStatement(AssertStatement node) {
- _writer.print("assert (");
+ _buffer.write("assert (");
_visitNode(node.condition);
if (node.message != null) {
- _writer.print(', ');
+ _buffer.write(', ');
_visitNode(node.message);
}
- _writer.print(");");
+ _buffer.write(");");
return null;
}
@override
Object visitAssignmentExpression(AssignmentExpression node) {
_visitNode(node.leftHandSide);
- _writer.print(' ');
- _writer.print(node.operator.lexeme);
- _writer.print(' ');
+ _buffer.write(' ');
+ _buffer.write(node.operator.lexeme);
+ _buffer.write(' ');
_visitNode(node.rightHandSide);
return null;
}
@override
Object visitAwaitExpression(AwaitExpression node) {
- _writer.print("await ");
+ _buffer.write("await ");
_visitNode(node.expression);
return null;
}
@@ -6769,18 +6768,18 @@
@override
Object visitBinaryExpression(BinaryExpression node) {
_visitNode(node.leftOperand);
- _writer.print(' ');
- _writer.print(node.operator.lexeme);
- _writer.print(' ');
+ _buffer.write(' ');
+ _buffer.write(node.operator.lexeme);
+ _buffer.write(' ');
_visitNode(node.rightOperand);
return null;
}
@override
Object visitBlock(Block node) {
- _writer.print('{');
+ _buffer.write('{');
_visitNodeListWithSeparator(node.statements, " ");
- _writer.print('}');
+ _buffer.write('}');
return null;
}
@@ -6788,11 +6787,11 @@
Object visitBlockFunctionBody(BlockFunctionBody node) {
Token keyword = node.keyword;
if (keyword != null) {
- _writer.print(keyword.lexeme);
+ _buffer.write(keyword.lexeme);
if (node.star != null) {
- _writer.print('*');
+ _buffer.write('*');
}
- _writer.print(' ');
+ _buffer.write(' ');
}
_visitNode(node.block);
return null;
@@ -6800,15 +6799,15 @@
@override
Object visitBooleanLiteral(BooleanLiteral node) {
- _writer.print(node.literal.lexeme);
+ _buffer.write(node.literal.lexeme);
return null;
}
@override
Object visitBreakStatement(BreakStatement node) {
- _writer.print("break");
+ _buffer.write("break");
_visitNodeWithPrefix(" ", node.label);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -6824,14 +6823,14 @@
_visitNodeWithPrefix("on ", node.exceptionType);
if (node.catchKeyword != null) {
if (node.exceptionType != null) {
- _writer.print(' ');
+ _buffer.write(' ');
}
- _writer.print("catch (");
+ _buffer.write("catch (");
_visitNode(node.exceptionParameter);
_visitNodeWithPrefix(", ", node.stackTraceParameter);
- _writer.print(") ");
+ _buffer.write(") ");
} else {
- _writer.print(" ");
+ _buffer.write(" ");
}
_visitNode(node.body);
return null;
@@ -6841,15 +6840,15 @@
Object visitClassDeclaration(ClassDeclaration node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
_visitTokenWithSuffix(node.abstractKeyword, " ");
- _writer.print("class ");
+ _buffer.write("class ");
_visitNode(node.name);
_visitNode(node.typeParameters);
_visitNodeWithPrefix(" ", node.extendsClause);
_visitNodeWithPrefix(" ", node.withClause);
_visitNodeWithPrefix(" ", node.implementsClause);
- _writer.print(" {");
+ _buffer.write(" {");
_visitNodeListWithSeparator(node.members, " ");
- _writer.print("}");
+ _buffer.write("}");
return null;
}
@@ -6857,16 +6856,16 @@
Object visitClassTypeAlias(ClassTypeAlias node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
if (node.abstractKeyword != null) {
- _writer.print("abstract ");
+ _buffer.write("abstract ");
}
- _writer.print("class ");
+ _buffer.write("class ");
_visitNode(node.name);
_visitNode(node.typeParameters);
- _writer.print(" = ");
+ _buffer.write(" = ");
_visitNode(node.superclass);
_visitNodeWithPrefix(" ", node.withClause);
_visitNodeWithPrefix(" ", node.implementsClause);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -6891,19 +6890,19 @@
@override
Object visitConditionalExpression(ConditionalExpression node) {
_visitNode(node.condition);
- _writer.print(" ? ");
+ _buffer.write(" ? ");
_visitNode(node.thenExpression);
- _writer.print(" : ");
+ _buffer.write(" : ");
_visitNode(node.elseExpression);
return null;
}
@override
Object visitConfiguration(Configuration node) {
- _writer.print('if (');
+ _buffer.write('if (');
_visitNode(node.name);
_visitNodeWithPrefix(" == ", node.value);
- _writer.print(') ');
+ _buffer.write(') ');
_visitNode(node.libraryUri);
return null;
}
@@ -6927,7 +6926,7 @@
Object visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
_visitTokenWithSuffix(node.thisKeyword, ".");
_visitNode(node.fieldName);
- _writer.print(" = ");
+ _buffer.write(" = ");
_visitNode(node.expression);
return null;
}
@@ -6941,9 +6940,9 @@
@override
Object visitContinueStatement(ContinueStatement node) {
- _writer.print("continue");
+ _buffer.write("continue");
_visitNodeWithPrefix(" ", node.label);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -6960,8 +6959,8 @@
Object visitDefaultFormalParameter(DefaultFormalParameter node) {
_visitNode(node.parameter);
if (node.separator != null) {
- _writer.print(" ");
- _writer.print(node.separator.lexeme);
+ _buffer.write(" ");
+ _buffer.write(node.separator.lexeme);
_visitNodeWithPrefix(" ", node.defaultValue);
}
return null;
@@ -6969,11 +6968,11 @@
@override
Object visitDoStatement(DoStatement node) {
- _writer.print("do ");
+ _buffer.write("do ");
_visitNode(node.body);
- _writer.print(" while (");
+ _buffer.write(" while (");
_visitNode(node.condition);
- _writer.print(");");
+ _buffer.write(");");
return null;
}
@@ -6985,19 +6984,19 @@
@override
Object visitDoubleLiteral(DoubleLiteral node) {
- _writer.print(node.literal.lexeme);
+ _buffer.write(node.literal.lexeme);
return null;
}
@override
Object visitEmptyFunctionBody(EmptyFunctionBody node) {
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitEmptyStatement(EmptyStatement node) {
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@@ -7011,21 +7010,21 @@
@override
Object visitEnumDeclaration(EnumDeclaration node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("enum ");
+ _buffer.write("enum ");
_visitNode(node.name);
- _writer.print(" {");
+ _buffer.write(" {");
_visitNodeListWithSeparator(node.constants, ", ");
- _writer.print("}");
+ _buffer.write("}");
return null;
}
@override
Object visitExportDirective(ExportDirective node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("export ");
+ _buffer.write("export ");
_visitNode(node.uri);
_visitNodeListWithSeparatorAndPrefix(" ", node.combinators, " ");
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@@ -7033,13 +7032,13 @@
Object visitExpressionFunctionBody(ExpressionFunctionBody node) {
Token keyword = node.keyword;
if (keyword != null) {
- _writer.print(keyword.lexeme);
- _writer.print(' ');
+ _buffer.write(keyword.lexeme);
+ _buffer.write(' ');
}
- _writer.print("=> ");
+ _buffer.write("=> ");
_visitNode(node.expression);
if (node.semicolon != null) {
- _writer.print(';');
+ _buffer.write(';');
}
return null;
}
@@ -7047,13 +7046,13 @@
@override
Object visitExpressionStatement(ExpressionStatement node) {
_visitNode(node.expression);
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitExtendsClause(ExtendsClause node) {
- _writer.print("extends ");
+ _buffer.write("extends ");
_visitNode(node.superclass);
return null;
}
@@ -7063,7 +7062,7 @@
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
_visitTokenWithSuffix(node.staticKeyword, " ");
_visitNode(node.fields);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -7072,7 +7071,7 @@
_visitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' ');
_visitTokenWithSuffix(node.keyword, " ");
_visitNodeWithSuffix(node.type, " ");
- _writer.print("this.");
+ _buffer.write("this.");
_visitNode(node.identifier);
_visitNode(node.typeParameters);
_visitNode(node.parameters);
@@ -7083,17 +7082,17 @@
Object visitForEachStatement(ForEachStatement node) {
DeclaredIdentifier loopVariable = node.loopVariable;
if (node.awaitKeyword != null) {
- _writer.print("await ");
+ _buffer.write("await ");
}
- _writer.print("for (");
+ _buffer.write("for (");
if (loopVariable == null) {
_visitNode(node.identifier);
} else {
_visitNode(loopVariable);
}
- _writer.print(" in ");
+ _buffer.write(" in ");
_visitNode(node.iterable);
- _writer.print(") ");
+ _buffer.write(") ");
_visitNode(node.body);
return null;
}
@@ -7101,46 +7100,46 @@
@override
Object visitFormalParameterList(FormalParameterList node) {
String groupEnd = null;
- _writer.print('(');
+ _buffer.write('(');
NodeList<FormalParameter> parameters = node.parameters;
int size = parameters.length;
for (int i = 0; i < size; i++) {
FormalParameter parameter = parameters[i];
if (i > 0) {
- _writer.print(", ");
+ _buffer.write(", ");
}
if (groupEnd == null && parameter is DefaultFormalParameter) {
if (parameter.kind == ParameterKind.NAMED) {
groupEnd = "}";
- _writer.print('{');
+ _buffer.write('{');
} else {
groupEnd = "]";
- _writer.print('[');
+ _buffer.write('[');
}
}
parameter.accept(this);
}
if (groupEnd != null) {
- _writer.print(groupEnd);
+ _buffer.write(groupEnd);
}
- _writer.print(')');
+ _buffer.write(')');
return null;
}
@override
Object visitForStatement(ForStatement node) {
Expression initialization = node.initialization;
- _writer.print("for (");
+ _buffer.write("for (");
if (initialization != null) {
_visitNode(initialization);
} else {
_visitNode(node.variables);
}
- _writer.print(";");
+ _buffer.write(";");
_visitNodeWithPrefix(" ", node.condition);
- _writer.print(";");
+ _buffer.write(";");
_visitNodeListWithSeparatorAndPrefix(" ", node.updaters, ", ");
- _writer.print(") ");
+ _buffer.write(") ");
_visitNode(node.body);
return null;
}
@@ -7167,7 +7166,7 @@
_visitNode(node.typeParameters);
_visitNode(node.parameters);
if (node.body is! EmptyFunctionBody) {
- _writer.print(' ');
+ _buffer.write(' ');
}
_visitNode(node.body);
return null;
@@ -7184,12 +7183,12 @@
@override
Object visitFunctionTypeAlias(FunctionTypeAlias node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("typedef ");
+ _buffer.write("typedef ");
_visitNodeWithSuffix(node.returnType, " ");
_visitNode(node.name);
_visitNode(node.typeParameters);
_visitNode(node.parameters);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -7205,16 +7204,16 @@
@override
Object visitHideCombinator(HideCombinator node) {
- _writer.print("hide ");
+ _buffer.write("hide ");
_visitNodeListWithSeparator(node.hiddenNames, ", ");
return null;
}
@override
Object visitIfStatement(IfStatement node) {
- _writer.print("if (");
+ _buffer.write("if (");
_visitNode(node.condition);
- _writer.print(") ");
+ _buffer.write(") ");
_visitNode(node.thenStatement);
_visitNodeWithPrefix(" else ", node.elseStatement);
return null;
@@ -7222,7 +7221,7 @@
@override
Object visitImplementsClause(ImplementsClause node) {
- _writer.print("implements ");
+ _buffer.write("implements ");
_visitNodeListWithSeparator(node.interfaces, ", ");
return null;
}
@@ -7230,27 +7229,27 @@
@override
Object visitImportDirective(ImportDirective node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("import ");
+ _buffer.write("import ");
_visitNode(node.uri);
if (node.deferredKeyword != null) {
- _writer.print(" deferred");
+ _buffer.write(" deferred");
}
_visitNodeWithPrefix(" as ", node.prefix);
_visitNodeListWithSeparatorAndPrefix(" ", node.combinators, " ");
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitIndexExpression(IndexExpression node) {
if (node.isCascaded) {
- _writer.print("..");
+ _buffer.write("..");
} else {
_visitNode(node.target);
}
- _writer.print('[');
+ _buffer.write('[');
_visitNode(node.index);
- _writer.print(']');
+ _buffer.write(']');
return null;
}
@@ -7264,18 +7263,18 @@
@override
Object visitIntegerLiteral(IntegerLiteral node) {
- _writer.print(node.literal.lexeme);
+ _buffer.write(node.literal.lexeme);
return null;
}
@override
Object visitInterpolationExpression(InterpolationExpression node) {
if (node.rightBracket != null) {
- _writer.print("\${");
+ _buffer.write("\${");
_visitNode(node.expression);
- _writer.print("}");
+ _buffer.write("}");
} else {
- _writer.print("\$");
+ _buffer.write("\$");
_visitNode(node.expression);
}
return null;
@@ -7283,7 +7282,7 @@
@override
Object visitInterpolationString(InterpolationString node) {
- _writer.print(node.contents.lexeme);
+ _buffer.write(node.contents.lexeme);
return null;
}
@@ -7291,9 +7290,9 @@
Object visitIsExpression(IsExpression node) {
_visitNode(node.expression);
if (node.notOperator == null) {
- _writer.print(" is ");
+ _buffer.write(" is ");
} else {
- _writer.print(" is! ");
+ _buffer.write(" is! ");
}
_visitNode(node.type);
return null;
@@ -7302,7 +7301,7 @@
@override
Object visitLabel(Label node) {
_visitNode(node.label);
- _writer.print(":");
+ _buffer.write(":");
return null;
}
@@ -7316,48 +7315,48 @@
@override
Object visitLibraryDirective(LibraryDirective node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("library ");
+ _buffer.write("library ");
_visitNode(node.name);
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitLibraryIdentifier(LibraryIdentifier node) {
- _writer.print(node.name);
+ _buffer.write(node.name);
return null;
}
@override
Object visitListLiteral(ListLiteral node) {
if (node.constKeyword != null) {
- _writer.print(node.constKeyword.lexeme);
- _writer.print(' ');
+ _buffer.write(node.constKeyword.lexeme);
+ _buffer.write(' ');
}
_visitNodeWithSuffix(node.typeArguments, " ");
- _writer.print("[");
+ _buffer.write("[");
_visitNodeListWithSeparator(node.elements, ", ");
- _writer.print("]");
+ _buffer.write("]");
return null;
}
@override
Object visitMapLiteral(MapLiteral node) {
if (node.constKeyword != null) {
- _writer.print(node.constKeyword.lexeme);
- _writer.print(' ');
+ _buffer.write(node.constKeyword.lexeme);
+ _buffer.write(' ');
}
_visitNodeWithSuffix(node.typeArguments, " ");
- _writer.print("{");
+ _buffer.write("{");
_visitNodeListWithSeparator(node.entries, ", ");
- _writer.print("}");
+ _buffer.write("}");
return null;
}
@override
Object visitMapLiteralEntry(MapLiteralEntry node) {
_visitNode(node.key);
- _writer.print(" : ");
+ _buffer.write(" : ");
_visitNode(node.value);
return null;
}
@@ -7382,11 +7381,11 @@
@override
Object visitMethodInvocation(MethodInvocation node) {
if (node.isCascaded) {
- _writer.print("..");
+ _buffer.write("..");
} else {
if (node.target != null) {
node.target.accept(this);
- _writer.print(node.operator.lexeme);
+ _buffer.write(node.operator.lexeme);
}
}
_visitNode(node.methodName);
@@ -7404,69 +7403,69 @@
@override
Object visitNativeClause(NativeClause node) {
- _writer.print("native ");
+ _buffer.write("native ");
_visitNode(node.name);
return null;
}
@override
Object visitNativeFunctionBody(NativeFunctionBody node) {
- _writer.print("native ");
+ _buffer.write("native ");
_visitNode(node.stringLiteral);
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitNullLiteral(NullLiteral node) {
- _writer.print("null");
+ _buffer.write("null");
return null;
}
@override
Object visitParenthesizedExpression(ParenthesizedExpression node) {
- _writer.print('(');
+ _buffer.write('(');
_visitNode(node.expression);
- _writer.print(')');
+ _buffer.write(')');
return null;
}
@override
Object visitPartDirective(PartDirective node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("part ");
+ _buffer.write("part ");
_visitNode(node.uri);
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitPartOfDirective(PartOfDirective node) {
_visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
- _writer.print("part of ");
+ _buffer.write("part of ");
_visitNode(node.libraryName);
- _writer.print(';');
+ _buffer.write(';');
return null;
}
@override
Object visitPostfixExpression(PostfixExpression node) {
_visitNode(node.operand);
- _writer.print(node.operator.lexeme);
+ _buffer.write(node.operator.lexeme);
return null;
}
@override
Object visitPrefixedIdentifier(PrefixedIdentifier node) {
_visitNode(node.prefix);
- _writer.print('.');
+ _buffer.write('.');
_visitNode(node.identifier);
return null;
}
@override
Object visitPrefixExpression(PrefixExpression node) {
- _writer.print(node.operator.lexeme);
+ _buffer.write(node.operator.lexeme);
_visitNode(node.operand);
return null;
}
@@ -7474,10 +7473,10 @@
@override
Object visitPropertyAccess(PropertyAccess node) {
if (node.isCascaded) {
- _writer.print("..");
+ _buffer.write("..");
} else {
_visitNode(node.target);
- _writer.print(node.operator.lexeme);
+ _buffer.write(node.operator.lexeme);
}
_visitNode(node.propertyName);
return null;
@@ -7486,7 +7485,7 @@
@override
Object visitRedirectingConstructorInvocation(
RedirectingConstructorInvocation node) {
- _writer.print("this");
+ _buffer.write("this");
_visitNodeWithPrefix(".", node.constructorName);
_visitNode(node.argumentList);
return null;
@@ -7494,7 +7493,7 @@
@override
Object visitRethrowExpression(RethrowExpression node) {
- _writer.print("rethrow");
+ _buffer.write("rethrow");
return null;
}
@@ -7502,24 +7501,24 @@
Object visitReturnStatement(ReturnStatement node) {
Expression expression = node.expression;
if (expression == null) {
- _writer.print("return;");
+ _buffer.write("return;");
} else {
- _writer.print("return ");
+ _buffer.write("return ");
expression.accept(this);
- _writer.print(";");
+ _buffer.write(";");
}
return null;
}
@override
Object visitScriptTag(ScriptTag node) {
- _writer.print(node.scriptTag.lexeme);
+ _buffer.write(node.scriptTag.lexeme);
return null;
}
@override
Object visitShowCombinator(ShowCombinator node) {
- _writer.print("show ");
+ _buffer.write("show ");
_visitNodeListWithSeparator(node.shownNames, ", ");
return null;
}
@@ -7535,13 +7534,13 @@
@override
Object visitSimpleIdentifier(SimpleIdentifier node) {
- _writer.print(node.token.lexeme);
+ _buffer.write(node.token.lexeme);
return null;
}
@override
Object visitSimpleStringLiteral(SimpleStringLiteral node) {
- _writer.print(node.literal.lexeme);
+ _buffer.write(node.literal.lexeme);
return null;
}
@@ -7553,7 +7552,7 @@
@override
Object visitSuperConstructorInvocation(SuperConstructorInvocation node) {
- _writer.print("super");
+ _buffer.write("super");
_visitNodeWithPrefix(".", node.constructorName);
_visitNode(node.argumentList);
return null;
@@ -7561,16 +7560,16 @@
@override
Object visitSuperExpression(SuperExpression node) {
- _writer.print("super");
+ _buffer.write("super");
return null;
}
@override
Object visitSwitchCase(SwitchCase node) {
_visitNodeListWithSeparatorAndSuffix(node.labels, " ", " ");
- _writer.print("case ");
+ _buffer.write("case ");
_visitNode(node.expression);
- _writer.print(": ");
+ _buffer.write(": ");
_visitNodeListWithSeparator(node.statements, " ");
return null;
}
@@ -7578,43 +7577,43 @@
@override
Object visitSwitchDefault(SwitchDefault node) {
_visitNodeListWithSeparatorAndSuffix(node.labels, " ", " ");
- _writer.print("default: ");
+ _buffer.write("default: ");
_visitNodeListWithSeparator(node.statements, " ");
return null;
}
@override
Object visitSwitchStatement(SwitchStatement node) {
- _writer.print("switch (");
+ _buffer.write("switch (");
_visitNode(node.expression);
- _writer.print(") {");
+ _buffer.write(") {");
_visitNodeListWithSeparator(node.members, " ");
- _writer.print("}");
+ _buffer.write("}");
return null;
}
@override
Object visitSymbolLiteral(SymbolLiteral node) {
- _writer.print("#");
+ _buffer.write("#");
List<Token> components = node.components;
for (int i = 0; i < components.length; i++) {
if (i > 0) {
- _writer.print(".");
+ _buffer.write(".");
}
- _writer.print(components[i].lexeme);
+ _buffer.write(components[i].lexeme);
}
return null;
}
@override
Object visitThisExpression(ThisExpression node) {
- _writer.print("this");
+ _buffer.write("this");
return null;
}
@override
Object visitThrowExpression(ThrowExpression node) {
- _writer.print("throw ");
+ _buffer.write("throw ");
_visitNode(node.expression);
return null;
}
@@ -7627,7 +7626,7 @@
@override
Object visitTryStatement(TryStatement node) {
- _writer.print("try ");
+ _buffer.write("try ");
_visitNode(node.body);
_visitNodeListWithSeparatorAndPrefix(" ", node.catchClauses, " ");
_visitNodeWithPrefix(" finally ", node.finallyBlock);
@@ -7636,9 +7635,9 @@
@override
Object visitTypeArgumentList(TypeArgumentList node) {
- _writer.print('<');
+ _buffer.write('<');
_visitNodeListWithSeparator(node.arguments, ", ");
- _writer.print('>');
+ _buffer.write('>');
return null;
}
@@ -7659,9 +7658,9 @@
@override
Object visitTypeParameterList(TypeParameterList node) {
- _writer.print('<');
+ _buffer.write('<');
_visitNodeListWithSeparator(node.typeParameters, ", ");
- _writer.print('>');
+ _buffer.write('>');
return null;
}
@@ -7685,22 +7684,22 @@
@override
Object visitVariableDeclarationStatement(VariableDeclarationStatement node) {
_visitNode(node.variables);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@override
Object visitWhileStatement(WhileStatement node) {
- _writer.print("while (");
+ _buffer.write("while (");
_visitNode(node.condition);
- _writer.print(") ");
+ _buffer.write(") ");
_visitNode(node.body);
return null;
}
@override
Object visitWithClause(WithClause node) {
- _writer.print("with ");
+ _buffer.write("with ");
_visitNodeListWithSeparator(node.mixinTypes, ", ");
return null;
}
@@ -7708,12 +7707,12 @@
@override
Object visitYieldStatement(YieldStatement node) {
if (node.star != null) {
- _writer.print("yield* ");
+ _buffer.write("yield* ");
} else {
- _writer.print("yield ");
+ _buffer.write("yield ");
}
_visitNode(node.expression);
- _writer.print(";");
+ _buffer.write(";");
return null;
}
@@ -7723,7 +7722,7 @@
*/
void _visitFunctionWithPrefix(String prefix, FunctionBody body) {
if (body is! EmptyFunctionBody) {
- _writer.print(prefix);
+ _buffer.write(prefix);
}
_visitNode(body);
}
@@ -7752,7 +7751,7 @@
int size = nodes.length;
for (int i = 0; i < size; i++) {
if (i > 0) {
- _writer.print(separator);
+ _buffer.write(separator);
}
nodes[i].accept(this);
}
@@ -7768,10 +7767,10 @@
if (nodes != null) {
int size = nodes.length;
if (size > 0) {
- _writer.print(prefix);
+ _buffer.write(prefix);
for (int i = 0; i < size; i++) {
if (i > 0) {
- _writer.print(separator);
+ _buffer.write(separator);
}
nodes[i].accept(this);
}
@@ -7790,11 +7789,11 @@
if (size > 0) {
for (int i = 0; i < size; i++) {
if (i > 0) {
- _writer.print(separator);
+ _buffer.write(separator);
}
nodes[i].accept(this);
}
- _writer.print(suffix);
+ _buffer.write(suffix);
}
}
}
@@ -7805,7 +7804,7 @@
*/
void _visitNodeWithPrefix(String prefix, AstNode node) {
if (node != null) {
- _writer.print(prefix);
+ _buffer.write(prefix);
node.accept(this);
}
}
@@ -7817,7 +7816,7 @@
void _visitNodeWithSuffix(AstNode node, String suffix) {
if (node != null) {
node.accept(this);
- _writer.print(suffix);
+ _buffer.write(suffix);
}
}
@@ -7827,8 +7826,8 @@
*/
void _visitTokenWithSuffix(Token token, String suffix) {
if (token != null) {
- _writer.print(token.lexeme);
- _writer.print(suffix);
+ _buffer.write(token.lexeme);
+ _buffer.write(suffix);
}
}
}
diff --git a/pkg/analyzer/lib/src/dart/constant/evaluation.dart b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
index 8c48f49..ffd2cc8 100644
--- a/pkg/analyzer/lib/src/dart/constant/evaluation.dart
+++ b/pkg/analyzer/lib/src/dart/constant/evaluation.dart
@@ -21,7 +21,6 @@
import 'package:analyzer/src/generated/engine.dart'
show AnalysisEngine, RecordingErrorListener;
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/resolver.dart' show TypeProvider;
import 'package:analyzer/src/generated/type_system.dart'
show TypeSystem, TypeSystemImpl;
@@ -655,10 +654,9 @@
}
fieldMap[fieldName] = argumentValue;
}
- } else {
- String name = baseParameter.name;
- parameterMap[name] = argumentValue;
}
+ String name = baseParameter.name;
+ parameterMap[name] = argumentValue;
}
}
ConstantVisitor initializerVisitor = new ConstantVisitor(
@@ -859,9 +857,7 @@
* (i.e. whether it is allowed for a call to the Symbol constructor).
*/
static bool isValidPublicSymbol(String name) =>
- name.isEmpty ||
- name == "void" ||
- new JavaPatternMatcher(_PUBLIC_SYMBOL_PATTERN, name).matches();
+ name.isEmpty || name == "void" || _PUBLIC_SYMBOL_PATTERN.hasMatch(name);
}
/**
@@ -1139,6 +1135,48 @@
*/
TypeSystem get _typeSystem => evaluationEngine.typeSystem;
+ /**
+ * Given a [type] that may contain free type variables, evaluate them against
+ * the current lexical environment and return the substituted type.
+ */
+ DartType evaluateType(DartType type) {
+ if (type is TypeParameterType) {
+ // Constants may only refer to type parameters in strong mode.
+ if (!evaluationEngine.strongMode) {
+ return null;
+ }
+
+ String name = type.name;
+ if (_lexicalEnvironment != null) {
+ return _lexicalEnvironment[name]?.toTypeValue() ?? type;
+ }
+ return type;
+ }
+ if (type is ParameterizedType) {
+ List<DartType> typeArguments;
+ for (int i = 0; i < type.typeArguments.length; i++) {
+ DartType ta = type.typeArguments[i];
+ DartType t = evaluateType(ta);
+ if (!identical(t, ta)) {
+ if (typeArguments == null) {
+ typeArguments = type.typeArguments.toList(growable: false);
+ }
+ typeArguments[i] = t;
+ }
+ }
+ if (typeArguments == null) return type;
+ return type.substitute2(typeArguments, type.typeArguments);
+ }
+ return type;
+ }
+
+ /**
+ * Given a [type], returns the constant value that contains that type value.
+ */
+ DartObjectImpl typeConstant(DartType type) {
+ return new DartObjectImpl(_typeProvider.typeType, new TypeState(type));
+ }
+
@override
DartObjectImpl visitAdjacentStrings(AdjacentStrings node) {
DartObjectImpl result = null;
@@ -1519,48 +1557,6 @@
}
/**
- * Given a [type], returns the constant value that contains that type value.
- */
- DartObjectImpl typeConstant(DartType type) {
- return new DartObjectImpl(_typeProvider.typeType, new TypeState(type));
- }
-
- /**
- * Given a [type] that may contain free type variables, evaluate them against
- * the current lexical environment and return the substituted type.
- */
- DartType evaluateType(DartType type) {
- if (type is TypeParameterType) {
- // Constants may only refer to type parameters in strong mode.
- if (!evaluationEngine.strongMode) {
- return null;
- }
-
- String name = type.name;
- if (_lexicalEnvironment != null) {
- return _lexicalEnvironment[name]?.toTypeValue() ?? type;
- }
- return type;
- }
- if (type is ParameterizedType) {
- List<DartType> typeArguments;
- for (int i = 0; i < type.typeArguments.length; i++) {
- DartType ta = type.typeArguments[i];
- DartType t = evaluateType(ta);
- if (!identical(t, ta)) {
- if (typeArguments == null) {
- typeArguments = type.typeArguments.toList(growable: false);
- }
- typeArguments[i] = t;
- }
- }
- if (typeArguments == null) return type;
- return type.substitute2(typeArguments, type.typeArguments);
- }
- return type;
- }
-
- /**
* Create an error associated with the given [node]. The error will have the
* given error [code].
*/
diff --git a/pkg/analyzer/lib/src/dart/element/builder.dart b/pkg/analyzer/lib/src/dart/element/builder.dart
index 6f06b5c..2cf5a0b 100644
--- a/pkg/analyzer/lib/src/dart/element/builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/builder.dart
@@ -11,11 +11,11 @@
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index 820a132..00cad13 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -584,18 +584,6 @@
}
@override
- SourceRange get docRange {
- if (_unlinkedClass != null) {
- UnlinkedDocumentationComment comment =
- _unlinkedClass.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedClass != null) {
return _unlinkedClass?.documentationComment?.text;
@@ -743,6 +731,7 @@
ResynthesizerContext context = enclosingUnit.resynthesizerContext;
_interfaces = _unlinkedClass.interfaces
.map((EntityRef t) => context.resolveTypeRef(t, this))
+ .where((DartType type) => type is InterfaceType)
.toList(growable: false);
}
return _interfaces ?? const <InterfaceType>[];
@@ -849,6 +838,7 @@
ResynthesizerContext context = enclosingUnit.resynthesizerContext;
_mixins = _unlinkedClass.mixins
.map((EntityRef t) => context.resolveTypeRef(t, this))
+ .where((DartType type) => type is InterfaceType)
.toList(growable: false);
}
return _mixins ?? const <InterfaceType>[];
@@ -879,8 +869,13 @@
InterfaceType get supertype {
if (_unlinkedClass != null && _supertype == null) {
if (_unlinkedClass.supertype != null) {
- _supertype = enclosingUnit.resynthesizerContext
+ DartType type = enclosingUnit.resynthesizerContext
.resolveTypeRef(_unlinkedClass.supertype, this);
+ if (type is InterfaceType) {
+ _supertype = type;
+ } else {
+ _supertype = context.typeProvider.objectType;
+ }
} else if (_unlinkedClass.hasNoSupertype) {
return null;
} else {
@@ -1251,26 +1246,26 @@
}
bool _safeIsOrInheritsProxy(
- ClassElement classElt, HashSet<ClassElement> visitedClassElts) {
- if (visitedClassElts.contains(classElt)) {
+ ClassElement element, HashSet<ClassElement> visited) {
+ if (visited.contains(element)) {
return false;
}
- visitedClassElts.add(classElt);
- if (classElt.isProxy) {
+ visited.add(element);
+ if (element.isProxy) {
return true;
- } else if (classElt.supertype != null &&
- _safeIsOrInheritsProxy(classElt.supertype.element, visitedClassElts)) {
+ } else if (element.supertype != null &&
+ _safeIsOrInheritsProxy(element.supertype.element, visited)) {
return true;
}
- List<InterfaceType> supertypes = classElt.interfaces;
+ List<InterfaceType> supertypes = element.interfaces;
for (int i = 0; i < supertypes.length; i++) {
- if (_safeIsOrInheritsProxy(supertypes[i].element, visitedClassElts)) {
+ if (_safeIsOrInheritsProxy(supertypes[i].element, visited)) {
return true;
}
}
- supertypes = classElt.mixins;
+ supertypes = element.mixins;
for (int i = 0; i < supertypes.length; i++) {
- if (_safeIsOrInheritsProxy(supertypes[i].element, visitedClassElts)) {
+ if (_safeIsOrInheritsProxy(supertypes[i].element, visited)) {
return true;
}
}
@@ -1814,18 +1809,6 @@
: super(enumElement);
@override
- SourceRange get docRange {
- if (_unlinkedEnumValue != null) {
- UnlinkedDocumentationComment comment =
- _unlinkedEnumValue.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedEnumValue != null) {
return _unlinkedEnumValue?.documentationComment?.text;
@@ -2693,17 +2676,6 @@
String _docComment;
/**
- * The offset to the beginning of the documentation comment,
- * or `null` if this element does not have a documentation comment.
- */
- int _docRangeOffset;
-
- /**
- * The length of the documentation comment range for this element.
- */
- int _docRangeLength;
-
- /**
* The offset of the beginning of the element's code in the file that contains
* the element, or `null` if the element is synthetic.
*/
@@ -2756,14 +2728,6 @@
String get displayName => _name;
@override
- SourceRange get docRange {
- if (_docRangeOffset != null && _docRangeLength != null) {
- return new SourceRange(_docRangeOffset, _docRangeLength);
- }
- return null;
- }
-
- @override
String get documentationComment => _docComment;
/**
@@ -3108,15 +3072,6 @@
}
/**
- * Set the documentation comment source range for this element.
- */
- void setDocRange(int offset, int length) {
- assert(!isResynthesized);
- _docRangeOffset = offset;
- _docRangeLength = length;
- }
-
- /**
* Set whether the given [modifier] is associated with this element to
* correspond to the given [value].
*/
@@ -3402,17 +3357,6 @@
}
@override
- SourceRange get docRange {
- if (_unlinkedEnum != null) {
- UnlinkedDocumentationComment comment = _unlinkedEnum.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedEnum != null) {
return _unlinkedEnum?.documentationComment?.text;
@@ -3666,18 +3610,6 @@
}
@override
- SourceRange get docRange {
- if (serializedExecutable != null) {
- UnlinkedDocumentationComment comment =
- serializedExecutable.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (serializedExecutable != null) {
return serializedExecutable?.documentationComment?.text;
@@ -4644,18 +4576,6 @@
String get displayName => name;
@override
- SourceRange get docRange {
- if (_unlinkedTypedef != null) {
- UnlinkedDocumentationComment comment =
- _unlinkedTypedef.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedTypedef != null) {
return _unlinkedTypedef?.documentationComment?.text;
@@ -5413,18 +5333,6 @@
}
@override
- SourceRange get docRange {
- if (_unlinkedDefiningUnit != null) {
- UnlinkedDocumentationComment comment =
- _unlinkedDefiningUnit.libraryDocumentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedDefiningUnit != null) {
return _unlinkedDefiningUnit?.libraryDocumentationComment?.text;
@@ -5792,13 +5700,6 @@
}
@override
- List<LibraryElement> get visibleLibraries {
- HashSet<LibraryElement> visibleLibraries = new HashSet<LibraryElement>();
- _addVisibleLibraries(visibleLibraries, false);
- return visibleLibraries.toList(growable: false);
- }
-
- @override
accept(ElementVisitor visitor) => visitor.visitLibraryElement(this);
/**
@@ -5914,12 +5815,6 @@
invalidate(this);
}
- @override
- bool isUpToDate(int timeStamp) {
- Set<LibraryElement> visitedLibraries = new Set();
- return _safeIsUpToDate(this, timeStamp, visitedLibraries);
- }
-
/**
* Set whether the library has the given [capability] to
* correspond to the given [value].
@@ -5940,36 +5835,6 @@
}
/**
- * Recursively fills set of visible libraries for
- * [getVisibleElementsLibraries].
- */
- void _addVisibleLibraries(
- Set<LibraryElement> visibleLibraries, bool includeExports) {
- // maybe already processed
- if (!visibleLibraries.add(this)) {
- return;
- }
- // add imported libraries
- for (ImportElement importElement in imports) {
- LibraryElement importedLibrary = importElement.importedLibrary;
- if (importedLibrary != null) {
- (importedLibrary as LibraryElementImpl)
- ._addVisibleLibraries(visibleLibraries, true);
- }
- }
- // add exported libraries
- if (includeExports) {
- for (ExportElement exportElement in exports) {
- LibraryElement exportedLibrary = exportElement.exportedLibrary;
- if (exportedLibrary != null) {
- (exportedLibrary as LibraryElementImpl)
- ._addVisibleLibraries(visibleLibraries, true);
- }
- }
- }
- }
-
- /**
* Return `true` if the [library] has the given [capability].
*/
static bool hasResolutionCapability(
@@ -5977,44 +5842,6 @@
return library is LibraryElementImpl &&
BooleanArray.get(library._resolutionCapabilities, capability.index);
}
-
- /**
- * Return `true` if the given [library] is up to date with respect to the
- * given [timeStamp]. The set of [visitedLibraries] is used to prevent
- * infinite recursion in the case of mutually dependent libraries.
- */
- static bool _safeIsUpToDate(LibraryElement library, int timeStamp,
- Set<LibraryElement> visitedLibraries) {
- if (!visitedLibraries.contains(library)) {
- visitedLibraries.add(library);
- AnalysisContext context = library.context;
- // Check the defining compilation unit.
- if (timeStamp <
- context
- .getModificationStamp(library.definingCompilationUnit.source)) {
- return false;
- }
- // Check the parted compilation units.
- for (CompilationUnitElement element in library.parts) {
- if (timeStamp < context.getModificationStamp(element.source)) {
- return false;
- }
- }
- // Check the imported libraries.
- for (LibraryElement importedLibrary in library.importedLibraries) {
- if (!_safeIsUpToDate(importedLibrary, timeStamp, visitedLibraries)) {
- return false;
- }
- }
- // Check the exported libraries.
- for (LibraryElement exportedLibrary in library.exportedLibraries) {
- if (!_safeIsUpToDate(exportedLibrary, timeStamp, visitedLibraries)) {
- return false;
- }
- }
- }
- return true;
- }
}
/**
@@ -6483,9 +6310,6 @@
String get displayName => _name;
@override
- SourceRange get docRange => null;
-
- @override
String get documentationComment => null;
@override
@@ -6769,18 +6593,6 @@
}
@override
- SourceRange get docRange {
- if (_unlinkedVariable != null) {
- UnlinkedDocumentationComment comment =
- _unlinkedVariable.documentationComment;
- return comment != null
- ? new SourceRange(comment.offset, comment.length)
- : null;
- }
- return super.docRange;
- }
-
- @override
String get documentationComment {
if (_unlinkedVariable != null) {
return _unlinkedVariable?.documentationComment?.text;
diff --git a/pkg/analyzer/lib/src/dart/element/handle.dart b/pkg/analyzer/lib/src/dart/element/handle.dart
index 6823b99..9538b2a 100644
--- a/pkg/analyzer/lib/src/dart/element/handle.dart
+++ b/pkg/analyzer/lib/src/dart/element/handle.dart
@@ -340,10 +340,6 @@
@override
String get displayName => actualElement.displayName;
- @deprecated
- @override
- SourceRange get docRange => actualElement.docRange;
-
@override
String get documentationComment => actualElement.documentationComment;
@@ -812,17 +808,11 @@
List<CompilationUnitElement> get units => actualElement.units;
@override
- List<LibraryElement> get visibleLibraries => actualElement.visibleLibraries;
-
- @override
List<ImportElement> getImportsWithPrefix(PrefixElement prefixElement) =>
actualElement.getImportsWithPrefix(prefixElement);
@override
ClassElement getType(String className) => actualElement.getType(className);
-
- @override
- bool isUpToDate(int timeStamp) => actualElement.isUpToDate(timeStamp);
}
/**
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index e309af2..5ee9634 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -12,7 +12,6 @@
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart'
show AnalysisContext, AnalysisEngine;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
@@ -447,10 +446,6 @@
@override
String get displayName => _baseElement.displayName;
- @deprecated
- @override
- SourceRange get docRange => _baseElement.docRange;
-
@override
String get documentationComment => _baseElement.documentationComment;
diff --git a/pkg/analyzer/lib/src/dart/element/type.dart b/pkg/analyzer/lib/src/dart/element/type.dart
index de73679..914c8e0 100644
--- a/pkg/analyzer/lib/src/dart/element/type.dart
+++ b/pkg/analyzer/lib/src/dart/element/type.dart
@@ -13,7 +13,6 @@
import 'package:analyzer/src/dart/element/member.dart';
import 'package:analyzer/src/generated/engine.dart'
show AnalysisContext, AnalysisEngine;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/type_system.dart';
import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
diff --git a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
index 476334b..e31ef5f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/inheritance_manager.dart
@@ -8,12 +8,12 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/member.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/type_system.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
diff --git a/pkg/analyzer/lib/src/dart/resolver/scope.dart b/pkg/analyzer/lib/src/dart/resolver/scope.dart
index dbe05b1..e554947 100644
--- a/pkg/analyzer/lib/src/dart/resolver/scope.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/scope.dart
@@ -11,7 +11,6 @@
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -21,7 +20,7 @@
class BlockScope extends EnclosedScope {
/**
* Initialize a newly created scope, enclosed within the [enclosingScope],
- * based on the given [classElement].
+ * based on the given [block].
*/
BlockScope(Scope enclosingScope, Block block) : super(enclosingScope) {
if (block == null) {
@@ -114,6 +113,30 @@
}
/**
+ * The scope defined for the initializers in a constructor.
+ */
+class ConstructorInitializerScope extends EnclosedScope {
+ /**
+ * Initialize a newly created scope, enclosed within the [enclosingScope].
+ */
+ ConstructorInitializerScope(Scope enclosingScope, ConstructorElement element)
+ : super(enclosingScope) {
+ _initializeFieldFormalParameters(element);
+ }
+
+ /**
+ * Initialize the local scope with all of the field formal parameters.
+ */
+ void _initializeFieldFormalParameters(ConstructorElement element) {
+ for (ParameterElement parameter in element.parameters) {
+ if (parameter is FieldFormalParameterElement) {
+ define(parameter);
+ }
+ }
+ }
+}
+
+/**
* A scope that is lexically enclosed in another scope.
*/
class EnclosedScope extends Scope {
@@ -128,10 +151,6 @@
*/
EnclosedScope(this.enclosingScope);
- @deprecated
- @override
- AnalysisErrorListener get errorListener => enclosingScope.errorListener;
-
@override
Element internalLookup(
Identifier identifier, String name, LibraryElement referencingLibrary) {
@@ -364,10 +383,6 @@
*/
final LibraryElement _definingLibrary;
- @deprecated
- @override
- final AnalysisErrorListener errorListener;
-
/**
* A list of the namespaces representing the names that are available in this scope from imported
* libraries.
@@ -382,10 +397,9 @@
/**
* Initialize a newly created scope representing the names imported into the
- * [_definingLibrary]. The [errorListener] is no longer used and should be
- * omitted.
+ * [_definingLibrary].
*/
- LibraryImportScope(this._definingLibrary, [this.errorListener]) {
+ LibraryImportScope(this._definingLibrary) {
_createImportedNamespaces();
}
@@ -567,12 +581,10 @@
class LibraryScope extends EnclosedScope {
/**
* Initialize a newly created scope representing the names defined in the
- * [definingLibrary]. The [errorListener] is no longer used and should be
- * omitted.
+ * [definingLibrary].
*/
- LibraryScope(LibraryElement definingLibrary,
- [@deprecated AnalysisErrorListener errorListener])
- : super(new LibraryImportScope(definingLibrary, errorListener)) {
+ LibraryScope(LibraryElement definingLibrary)
+ : super(new LibraryImportScope(definingLibrary)) {
_defineTopLevelNames(definingLibrary);
}
@@ -988,17 +1000,9 @@
Scope get enclosingScope => null;
/**
- * Return the listener that is to be informed when an error is encountered.
- */
- @deprecated
- AnalysisErrorListener get errorListener;
-
- /**
* Add the given [element] to this scope. If there is already an element with
- * the given name defined in this scope, then an error will be generated and
- * the original element will continue to be mapped to the name. If there is an
- * element with the given name in an enclosing scope, then a warning will be
- * generated but the given element will hide the inherited element.
+ * the given name defined in this scope, then the original element will
+ * continue to be mapped to the name.
*/
void define(Element element) {
String name = _getName(element);
diff --git a/pkg/analyzer/lib/src/dart/sdk/sdk.dart b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
index 07e30c8..675ce9b 100644
--- a/pkg/analyzer/lib/src/dart/sdk/sdk.dart
+++ b/pkg/analyzer/lib/src/dart/sdk/sdk.dart
@@ -9,6 +9,7 @@
import 'dart:io' as io;
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/src/context/context.dart';
@@ -16,8 +17,6 @@
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/sdk.dart';
@@ -145,8 +144,8 @@
return null;
}
try {
- return file.createSource(parseUriWithException(path));
- } on URISyntaxException catch (exception, stackTrace) {
+ return file.createSource(Uri.parse(path));
+ } on FormatException catch (exception, stackTrace) {
AnalysisEngine.instance.logger.logInformation(
"Failed to create URI: $path",
new CaughtException(exception, stackTrace));
@@ -208,8 +207,8 @@
String filePath = srcPath.replaceAll('/', separator);
try {
File file = resourceProvider.getFile(filePath);
- return file.createSource(parseUriWithException(dartUri));
- } on URISyntaxException {
+ return file.createSource(Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
@@ -332,8 +331,8 @@
String filePath = srcPath.replaceAll('/', separator);
try {
File file = resourceProvider.getFile(filePath);
- return file.createSource(parseUriWithException(dartUri));
- } on URISyntaxException {
+ return file.createSource(Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
@@ -646,8 +645,8 @@
if (!relativePath.isEmpty) {
file = file.parent.getChildAssumingFile(relativePath);
}
- return file.createSource(parseUriWithException(dartUri));
- } on URISyntaxException {
+ return file.createSource(Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
diff --git a/pkg/analyzer/lib/src/generated/bazel.dart b/pkg/analyzer/lib/src/generated/bazel.dart
index 8198f46..debd300 100644
--- a/pkg/analyzer/lib/src/generated/bazel.dart
+++ b/pkg/analyzer/lib/src/generated/bazel.dart
@@ -4,7 +4,7 @@
library analyzer.src.generated.bazel;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analyzer/lib/src/generated/engine.dart b/pkg/analyzer/lib/src/generated/engine.dart
index 8975ccd..c3093a2 100644
--- a/pkg/analyzer/lib/src/generated/engine.dart
+++ b/pkg/analyzer/lib/src/generated/engine.dart
@@ -10,6 +10,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/instrumentation/instrumentation.dart';
import 'package:analyzer/plugin/resolver_provider.dart';
import 'package:analyzer/src/cancelable_future.dart';
@@ -1076,6 +1077,12 @@
bool get enableGenericMethods => null;
/**
+ * Return `true` if access to field formal parameters should be allowed in a
+ * constructor's initializer list.
+ */
+ bool get enableInitializingFormalAccess;
+
+ /**
* Return `true` to enable the lazy compound assignment operators '&&=' and
* '||='.
*/
@@ -1227,6 +1234,9 @@
bool enableGenericMethods = false;
@override
+ bool enableInitializingFormalAccess = false;
+
+ @override
bool enableLazyAssignmentOperators = false;
@override
@@ -1324,6 +1334,7 @@
enableAsync = options.enableAsync;
enableStrictCallChecks = options.enableStrictCallChecks;
enableGenericMethods = options.enableGenericMethods;
+ enableInitializingFormalAccess = options.enableInitializingFormalAccess;
enableSuperMixins = options.enableSuperMixins;
enableTiming = options.enableTiming;
generateImplicitErrors = options.generateImplicitErrors;
@@ -1772,12 +1783,6 @@
final List<SourceContainer> removedContainers = new List<SourceContainer>();
/**
- * A list containing the sources that have been deleted.
- */
- @deprecated
- final List<Source> deletedSources = new List<Source>();
-
- /**
* Return a table mapping the sources whose content has been changed to the
* current content of those sources.
*/
@@ -1792,8 +1797,7 @@
_changedContent.isEmpty &&
changedRanges.isEmpty &&
removedSources.isEmpty &&
- removedContainers.isEmpty &&
- deletedSources.isEmpty;
+ removedContainers.isEmpty;
/**
* Record that the specified [source] has been added and that its content is
@@ -1835,14 +1839,6 @@
}
/**
- * Record that the specified [source] has been deleted.
- */
- @deprecated
- void deletedSource(Source source) {
- deletedSources.add(source);
- }
-
- /**
* Record that the specified source [container] has been removed.
*/
void removedContainer(SourceContainer container) {
@@ -1872,8 +1868,6 @@
needsSeparator =
_appendSources2(buffer, changedRanges, needsSeparator, "changedRanges");
needsSeparator = _appendSources(
- buffer, deletedSources, needsSeparator, "deletedSources");
- needsSeparator = _appendSources(
buffer, removedSources, needsSeparator, "removedSources");
int count = removedContainers.length;
if (count > 0) {
@@ -2680,10 +2674,9 @@
/**
* Return `true` if any sources were removed or deleted.
*/
- bool get wereSourcesRemovedOrDeleted =>
+ bool get wereSourcesRemoved =>
_changeSet.removedSources.length > 0 ||
- _changeSet.removedContainers.length > 0 ||
- _changeSet.deletedSources.length > 0;
+ _changeSet.removedContainers.length > 0;
}
/**
diff --git a/pkg/analyzer/lib/src/generated/incremental_resolver.dart b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
index 85b0d31..bebf33e 100644
--- a/pkg/analyzer/lib/src/generated/incremental_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/incremental_resolver.dart
@@ -11,6 +11,7 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -25,7 +26,6 @@
import 'package:analyzer/src/generated/error_verifier.dart';
import 'package:analyzer/src/generated/incremental_logger.dart'
show logger, LoggingTimer;
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -331,8 +331,7 @@
void _prepareResolutionContext(AstNode node) {
if (_resolutionContext == null) {
- _resolutionContext =
- ResolutionContextBuilder.contextFor(node, errorListener);
+ _resolutionContext = ResolutionContextBuilder.contextFor(node);
}
}
@@ -1054,11 +1053,6 @@
*/
class ResolutionContextBuilder {
/**
- * The listener to which analysis errors will be reported.
- */
- final AnalysisErrorListener _errorListener;
-
- /**
* The class containing the enclosing [CompilationUnitElement].
*/
CompilationUnitElement _enclosingUnit;
@@ -1075,12 +1069,6 @@
*/
ClassElement _enclosingClass;
- /**
- * Initialize a newly created scope builder to generate a scope that will
- * report errors to the given listener.
- */
- ResolutionContextBuilder(this._errorListener);
-
Scope _scopeFor(AstNode node) {
if (node is CompilationUnit) {
return _scopeForAstNode(node);
@@ -1181,19 +1169,16 @@
* Return the context in which the given AST structure should be resolved.
*
* [node] - the root of the AST structure to be resolved.
- * [errorListener] - the listener to which analysis errors will be reported.
*
* Throws [AnalysisException] if the AST structure has not been resolved or
* is not part of a [CompilationUnit]
*/
- static ResolutionContext contextFor(
- AstNode node, AnalysisErrorListener errorListener) {
+ static ResolutionContext contextFor(AstNode node) {
if (node == null) {
throw new AnalysisException("Cannot create context: node is null");
}
// build scope
- ResolutionContextBuilder builder =
- new ResolutionContextBuilder(errorListener);
+ ResolutionContextBuilder builder = new ResolutionContextBuilder();
Scope scope = builder._scopeFor(node);
// prepare context
ResolutionContext context = new ResolutionContext();
diff --git a/pkg/analyzer/lib/src/generated/incremental_scanner.dart b/pkg/analyzer/lib/src/generated/incremental_scanner.dart
deleted file mode 100644
index a0bd238..0000000
--- a/pkg/analyzer/lib/src/generated/incremental_scanner.dart
+++ /dev/null
@@ -1,251 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@deprecated
-library analyzer.src.generated.incremental_scanner;
-
-import "dart:math" as math;
-
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap;
-
-/**
- * An `IncrementalScanner` is a scanner that scans a subset of a string and
- * inserts the resulting tokens into the middle of an existing token stream.
- */
-@deprecated
-class IncrementalScanner {
- /**
- * The source being scanned.
- */
- final Source source;
-
- /**
- * The reader used to access the characters in the source.
- */
- final CharacterReader reader;
-
- /**
- * The error listener that will be informed of any errors that are found
- * during the scan.
- *
- * TODO(brianwilkerson) Replace this with a list of errors so that we can
- * update the errors.
- */
- final AnalysisErrorListener errorListener;
-
- final AnalysisOptions _options;
-
- /**
- * A map from tokens that were copied to the copies of the tokens.
- */
- TokenMap _tokenMap = new TokenMap();
-
- /**
- * The token immediately to the left of the range of tokens that were
- * modified.
- */
- Token leftToken;
-
- /**
- * The token immediately to the right of the range of tokens that were
- * modified.
- */
- Token rightToken;
-
- /**
- * A flag indicating whether there were any non-comment tokens changed (other
- * than having their position updated) as a result of the modification.
- */
- bool hasNonWhitespaceChange = false;
-
- /**
- * Initialize a newly created scanner to scan characters within the given
- * [source]. The content of the source can be read using the given [reader].
- * Any errors that are found will be reported to the given [errorListener].
- * [_options] will determine how scanning is to be performed.
- */
- IncrementalScanner(
- this.source, this.reader, this.errorListener, this._options);
-
- /**
- * Return a map from tokens that were copied to the copies of the tokens.
- *
- * @return a map from tokens that were copied to the copies of the tokens
- */
- TokenMap get tokenMap => _tokenMap;
-
- /**
- * Given the [stream] of tokens scanned from the original source, the modified
- * source (the result of replacing one contiguous range of characters with
- * another string of characters), and a specification of the modification that
- * was made, update the token stream to reflect the modified source. Return
- * the first token in the updated token stream.
- *
- * The [stream] is expected to be the first non-EOF token in the token stream.
- *
- * The modification is specified by the [index] of the first character in both
- * the original and modified source that was affected by the modification, the
- * number of characters removed from the original source (the [removedLength])
- * and the number of characters added to the modified source (the
- * [insertedLength]).
- */
- Token rescan(Token stream, int index, int removedLength, int insertedLength) {
- Token leftEof = stream.previous;
- //
- // Compute the delta between the character index of characters after the
- // modified region in the original source and the index of the corresponding
- // character in the modified source.
- //
- int delta = insertedLength - removedLength;
- //
- // Skip past the tokens whose end is less than the replacement start. (If
- // the replacement start is equal to the end of an existing token, then it
- // means that the existing token might have been modified, so we need to
- // rescan it.)
- //
- while (stream.type != TokenType.EOF && stream.end < index) {
- _tokenMap.put(stream, stream);
- stream = stream.next;
- }
- Token oldFirst = stream;
- Token oldLeftToken = stream.previous;
- leftToken = oldLeftToken;
- //
- // Skip past tokens until we find a token whose offset is greater than the
- // end of the removed region. (If the end of the removed region is equal to
- // the beginning of an existing token, then it means that the existing token
- // might have been modified, so we need to rescan it.)
- //
- int removedEnd = index + (removedLength == 0 ? 0 : removedLength - 1);
- while (stream.type != TokenType.EOF && stream.offset <= removedEnd) {
- stream = stream.next;
- }
- //
- // Figure out which region of characters actually needs to be re-scanned.
- //
- Token oldLast;
- Token oldRightToken;
- if (stream.type != TokenType.EOF && removedEnd + 1 == stream.offset) {
- oldLast = stream;
- stream = stream.next;
- oldRightToken = stream;
- } else {
- oldLast = stream.previous;
- oldRightToken = stream;
- }
- //
- // Compute the range of characters that are known to need to be rescanned.
- // If the index is within an existing token, then we need to start at the
- // beginning of the token.
- //
- int scanStart = math.max(oldLeftToken.end, 0);
- int scanEnd = oldRightToken.offset + delta;
- //
- // Rescan the characters that need to be rescanned.
- //
- Token replacementStart = _scanRange(scanStart, scanEnd);
- oldLeftToken.setNext(replacementStart);
- Token replacementEnd = _findEof(replacementStart).previous;
- replacementEnd.setNext(stream);
- //
- // Apply the delta to the tokens after the last new token.
- //
- _updateOffsets(stream, delta);
- rightToken = stream;
- //
- // If the index is immediately after an existing token and the inserted
- // characters did not change that original token, then adjust the leftToken
- // to be the next token. For example, in "a; c;" --> "a;b c;", the leftToken
- // was ";", but this code advances it to "b" since "b" is the first new
- // token.
- //
- Token newFirst = leftToken.next;
- while (!identical(newFirst, rightToken) &&
- !identical(oldFirst, oldRightToken) &&
- newFirst.type != TokenType.EOF &&
- _equalTokens(oldFirst, newFirst)) {
- _tokenMap.put(oldFirst, newFirst);
- oldLeftToken = oldFirst;
- oldFirst = oldFirst.next;
- leftToken = newFirst;
- newFirst = newFirst.next;
- }
- Token newLast = rightToken.previous;
- while (!identical(newLast, leftToken) &&
- !identical(oldLast, oldLeftToken) &&
- newLast.type != TokenType.EOF &&
- _equalTokens(oldLast, newLast)) {
- _tokenMap.put(oldLast, newLast);
- oldRightToken = oldLast;
- oldLast = oldLast.previous;
- rightToken = newLast;
- newLast = newLast.previous;
- }
- hasNonWhitespaceChange = !identical(leftToken.next, rightToken) ||
- !identical(oldLeftToken.next, oldRightToken);
- //
- // TODO(brianwilkerson) Begin tokens are not getting associated with the
- // corresponding end tokens (because the end tokens have not been copied
- // when we're copying the begin tokens). This could have implications for
- // parsing.
- // TODO(brianwilkerson) Update the lineInfo.
- //
- return leftEof.next;
- }
-
- /**
- * Return `true` if the [oldToken] and the [newToken] are equal to each other.
- * For the purposes of the incremental scanner, two tokens are equal if they
- * have the same type and lexeme.
- */
- bool _equalTokens(Token oldToken, Token newToken) =>
- oldToken.type == newToken.type &&
- oldToken.length == newToken.length &&
- oldToken.lexeme == newToken.lexeme;
-
- /**
- * Given a [token], return the EOF token that follows the token.
- */
- Token _findEof(Token token) {
- while (token.type != TokenType.EOF) {
- token = token.next;
- }
- return token;
- }
-
- /**
- * Scan the token between the [start] (inclusive) and [end] (exclusive)
- * offsets.
- */
- Token _scanRange(int start, int end) {
- Scanner scanner = new Scanner(
- source, new CharacterRangeReader(reader, start, end), errorListener);
- return scanner.tokenize();
- }
-
- /**
- * Update the offsets of every token from the given [token] to the end of the
- * stream by adding the given [delta].
- */
- void _updateOffsets(Token token, int delta) {
- while (token.type != TokenType.EOF) {
- _tokenMap.put(token, token);
- token.offset += delta;
- Token comment = token.precedingComments;
- while (comment != null) {
- comment.offset += delta;
- comment = comment.next;
- }
- token = token.next;
- }
- _tokenMap.put(token, token);
- token.offset += delta;
- }
-}
diff --git a/pkg/analyzer/lib/src/generated/java_core.dart b/pkg/analyzer/lib/src/generated/java_core.dart
index 074bb3c..382fa0d 100644
--- a/pkg/analyzer/lib/src/generated/java_core.dart
+++ b/pkg/analyzer/lib/src/generated/java_core.dart
@@ -39,59 +39,6 @@
});
}
-/// Parses given string to [Uri], throws [URISyntaxException] if invalid.
-Uri parseUriWithException(String str) {
- Uri uri;
- try {
- uri = Uri.parse(str);
- } on FormatException catch (e) {
- throw new URISyntaxException(e.toString());
- }
- if (uri.path.isEmpty) {
- throw new URISyntaxException('empty path');
- }
- return uri;
-}
-
-/**
- * Very limited printf implementation, supports only %s and %d.
- */
-String _printf(String fmt, List args) {
- StringBuffer sb = new StringBuffer();
- bool markFound = false;
- int argIndex = 0;
- for (int i = 0; i < fmt.length; i++) {
- int c = fmt.codeUnitAt(i);
- if (c == 0x25) {
- if (markFound) {
- sb.writeCharCode(c);
- markFound = false;
- } else {
- markFound = true;
- }
- continue;
- }
- if (markFound) {
- markFound = false;
- // %d
- if (c == 0x64) {
- sb.write(args[argIndex++]);
- continue;
- }
- // %s
- if (c == 0x73) {
- sb.write(args[argIndex++]);
- continue;
- }
- // unknown
- throw new ArgumentError('[$fmt][$i] = 0x${c.toRadixString(16)}');
- } else {
- sb.writeCharCode(c);
- }
- }
- return sb.toString();
-}
-
class Character {
static const int MAX_VALUE = 0xffff;
static const int MAX_CODE_POINT = 0x10ffff;
@@ -150,85 +97,3 @@
int compareTo(E other) => ordinal - other.ordinal;
String toString() => name;
}
-
-class JavaArrays {
- static int makeHashCode(List a) {
- // TODO(rnystrom): This is not used by analyzer, but is called by
- // analysis_server. Move this code there and remove it from here.
- if (a == null) {
- return 0;
- }
- int result = 1;
- for (var element in a) {
- result = 31 * result + (element == null ? 0 : element.hashCode);
- }
- return result;
- }
-}
-
-class JavaPatternMatcher {
- Iterator<Match> _matches;
- Match _match;
- JavaPatternMatcher(RegExp re, String input) {
- _matches = re.allMatches(input).iterator;
- }
- int end() => _match.end;
- bool find() {
- if (!_matches.moveNext()) {
- return false;
- }
- _match = _matches.current;
- return true;
- }
-
- String group(int i) => _match[i];
- bool matches() => find();
- int start() => _match.start;
-}
-
-class JavaString {
- static int indexOf(String target, String str, int fromIndex) {
- if (fromIndex > target.length) return -1;
- if (fromIndex < 0) fromIndex = 0;
- return target.indexOf(str, fromIndex);
- }
-
- static int lastIndexOf(String target, String str, int fromIndex) {
- if (fromIndex > target.length) return -1;
- if (fromIndex < 0) fromIndex = 0;
- return target.lastIndexOf(str, fromIndex);
- }
-}
-
-class PrintStringWriter extends PrintWriter {
- final StringBuffer _sb = new StringBuffer();
-
- void print(x) {
- _sb.write(x);
- }
-
- String toString() => _sb.toString();
-}
-
-abstract class PrintWriter {
- void newLine() {
- this.print('\n');
- }
-
- void print(x);
-
- void printf(String fmt, List args) {
- this.print(_printf(fmt, args));
- }
-
- void println(String s) {
- this.print(s);
- this.newLine();
- }
-}
-
-class URISyntaxException implements Exception {
- final String message;
- URISyntaxException(this.message);
- String toString() => "URISyntaxException: $message";
-}
diff --git a/pkg/analyzer/lib/src/generated/java_engine.dart b/pkg/analyzer/lib/src/generated/java_engine.dart
index 0190ddd..784fcb1 100644
--- a/pkg/analyzer/lib/src/generated/java_engine.dart
+++ b/pkg/analyzer/lib/src/generated/java_engine.dart
@@ -7,107 +7,13 @@
import 'package:analyzer/src/generated/interner.dart';
import 'package:analyzer/src/generated/java_core.dart';
+export 'package:analyzer/exception/exception.dart';
+
/**
* A predicate is a one-argument function that returns a boolean value.
*/
typedef bool Predicate<E>(E argument);
-/**
- * Instances of the class `AnalysisException` represent an exception that
- * occurred during the analysis of one or more sources.
- */
-class AnalysisException implements Exception {
- /**
- * The message that explains why the exception occurred.
- */
- final String message;
-
- /**
- * The exception that caused this exception, or `null` if this exception was
- * not caused by another exception.
- */
- final CaughtException cause;
-
- /**
- * Initialize a newly created exception to have the given [message] and
- * [cause].
- */
- AnalysisException([this.message = 'Exception', this.cause = null]);
-
- String toString() {
- StringBuffer buffer = new StringBuffer();
- buffer.write("AnalysisException: ");
- buffer.writeln(message);
- if (cause != null) {
- buffer.write('Caused by ');
- cause._writeOn(buffer);
- }
- return buffer.toString();
- }
-}
-
-/**
- * Instances of the class `CaughtException` represent an exception that was
- * caught and has an associated stack trace.
- */
-class CaughtException implements Exception {
- /**
- * The exception that was caught.
- */
- final Object exception;
-
- /**
- * The stack trace associated with the exception.
- */
- StackTrace stackTrace;
-
- /**
- * Initialize a newly created caught exception to have the given [exception]
- * and [stackTrace].
- */
- CaughtException(this.exception, stackTrace) {
- if (stackTrace == null) {
- try {
- throw this;
- } catch (_, st) {
- stackTrace = st;
- }
- }
- this.stackTrace = stackTrace;
- }
-
- @override
- String toString() {
- StringBuffer buffer = new StringBuffer();
- _writeOn(buffer);
- return buffer.toString();
- }
-
- /**
- * Write a textual representation of the caught exception and its associated
- * stack trace.
- */
- void _writeOn(StringBuffer buffer) {
- if (exception is AnalysisException) {
- AnalysisException analysisException = exception;
- buffer.writeln(analysisException.message);
- if (stackTrace != null) {
- buffer.writeln(stackTrace.toString());
- }
- CaughtException cause = analysisException.cause;
- if (cause != null) {
- buffer.write('Caused by ');
- cause._writeOn(buffer);
- }
- } else {
- buffer.writeln(exception.toString());
- if (stackTrace != null) {
- buffer.writeln(stackTrace.toString());
- }
- }
- }
-}
-
class FileNameUtilities {
static String getExtension(String fileName) {
if (fileName == null) {
diff --git a/pkg/analyzer/lib/src/generated/package.dart b/pkg/analyzer/lib/src/generated/package.dart
index a9576d1..b715e3b 100644
--- a/pkg/analyzer/lib/src/generated/package.dart
+++ b/pkg/analyzer/lib/src/generated/package.dart
@@ -6,11 +6,11 @@
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/context/builder.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_general.dart';
diff --git a/pkg/analyzer/lib/src/generated/parser.dart b/pkg/analyzer/lib/src/generated/parser.dart
index 4eaece9..8e7bbe1 100644
--- a/pkg/analyzer/lib/src/generated/parser.dart
+++ b/pkg/analyzer/lib/src/generated/parser.dart
@@ -9,10 +9,8 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/ast/token.dart';
-import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine;
@@ -22,7 +20,6 @@
import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
-import 'package:analyzer/src/generated/utilities_collection.dart' show TokenMap;
import 'package:analyzer/src/generated/utilities_dart.dart';
export 'package:analyzer/src/dart/ast/utilities.dart' show ResolutionCopier;
@@ -534,1432 +531,6 @@
}
/**
- * A dispatcher that will invoke the right parse method when re-parsing a
- * specified child of the visited node. All of the methods in this class assume
- * that the parser is positioned to parse the replacement for the node. All of
- * the methods will throw an [IncrementalParseException] if the node could not
- * be parsed for some reason.
- */
-@deprecated
-class IncrementalParseDispatcher implements AstVisitor<AstNode> {
- /**
- * The parser used to parse the replacement for the node.
- */
- final Parser _parser;
-
- /**
- * The node that is to be replaced.
- */
- final AstNode _oldNode;
-
- /**
- * Initialize a newly created dispatcher to parse a single node that will
- * use the [_parser] to replace the [_oldNode].
- */
- IncrementalParseDispatcher(this._parser, this._oldNode);
-
- @override
- AstNode visitAdjacentStrings(AdjacentStrings node) {
- if (node.strings.contains(_oldNode)) {
- return _parser.parseStringLiteral();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitAnnotation(Annotation node) {
- if (identical(_oldNode, node.name)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.constructorName)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.arguments)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitArgumentList(ArgumentList node) {
- if (node.arguments.contains(_oldNode)) {
- return _parser.parseArgument();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitAsExpression(AsExpression node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseBitwiseOrExpression();
- } else if (identical(_oldNode, node.type)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitAssertStatement(AssertStatement node) {
- if (identical(_oldNode, node.condition)) {
- return _parser.parseExpression2();
- }
- if (identical(_oldNode, node.message)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitAssignmentExpression(AssignmentExpression node) {
- if (identical(_oldNode, node.leftHandSide)) {
- // TODO(brianwilkerson) If the assignment is part of a cascade section,
- // then we don't have a single parse method that will work.
- // Otherwise, we can parse a conditional expression, but need to ensure
- // that the resulting expression is assignable.
-// return parser.parseConditionalExpression();
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.rightHandSide)) {
- if (_isCascadeAllowedInAssignment(node)) {
- return _parser.parseExpression2();
- }
- return _parser.parseExpressionWithoutCascade();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitAwaitExpression(AwaitExpression node) {
- if (identical(_oldNode, node.expression)) {
- // TODO(brianwilkerson) Depending on precedence,
- // this might not be sufficient.
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitBinaryExpression(BinaryExpression node) {
- if (identical(_oldNode, node.leftOperand)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.rightOperand)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitBlock(Block node) {
- if (node.statements.contains(_oldNode)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitBlockFunctionBody(BlockFunctionBody node) {
- if (identical(_oldNode, node.block)) {
- return _parser.parseBlock();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitBooleanLiteral(BooleanLiteral node) => _notAChild(node);
-
- @override
- AstNode visitBreakStatement(BreakStatement node) {
- if (identical(_oldNode, node.label)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitCascadeExpression(CascadeExpression node) {
- if (identical(_oldNode, node.target)) {
- return _parser.parseConditionalExpression();
- } else if (node.cascadeSections.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitCatchClause(CatchClause node) {
- if (identical(_oldNode, node.exceptionType)) {
- return _parser.parseTypeName();
- } else if (identical(_oldNode, node.exceptionParameter)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.stackTraceParameter)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.body)) {
- return _parser.parseBlock();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitClassDeclaration(ClassDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- // Changing the class name changes whether a member is interpreted as a
- // constructor or not, so we'll just have to re-parse the entire class.
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.typeParameters)) {
- return _parser.parseTypeParameterList();
- } else if (identical(_oldNode, node.extendsClause)) {
- return _parser.parseExtendsClause();
- } else if (identical(_oldNode, node.withClause)) {
- return _parser.parseWithClause();
- } else if (identical(_oldNode, node.implementsClause)) {
- return _parser.parseImplementsClause();
- } else if (node.members.contains(_oldNode)) {
- ClassMember member = _parser.parseClassMember(node.name.name);
- if (member == null) {
- throw new InsufficientContextException();
- }
- return member;
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitClassTypeAlias(ClassTypeAlias node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.typeParameters)) {
- return _parser.parseTypeParameterList();
- } else if (identical(_oldNode, node.superclass)) {
- return _parser.parseTypeName();
- } else if (identical(_oldNode, node.withClause)) {
- return _parser.parseWithClause();
- } else if (identical(_oldNode, node.implementsClause)) {
- return _parser.parseImplementsClause();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitComment(Comment node) {
- throw new InsufficientContextException();
- }
-
- @override
- AstNode visitCommentReference(CommentReference node) {
- if (identical(_oldNode, node.identifier)) {
- return _parser.parsePrefixedIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitCompilationUnit(CompilationUnit node) {
- throw new InsufficientContextException();
- }
-
- @override
- AstNode visitConditionalExpression(ConditionalExpression node) {
- if (identical(_oldNode, node.condition)) {
- return _parser.parseIfNullExpression();
- } else if (identical(_oldNode, node.thenExpression)) {
- return _parser.parseExpressionWithoutCascade();
- } else if (identical(_oldNode, node.elseExpression)) {
- return _parser.parseExpressionWithoutCascade();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitConfiguration(Configuration node) {
- if (identical(_oldNode, node.name)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.value)) {
- return _parser.parseStringLiteral();
- } else if (identical(_oldNode, node.libraryUri)) {
- return _parser.parseStringLiteral();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitConstructorDeclaration(ConstructorDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.returnType)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.name)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.parameters)) {
- return _parser.parseFormalParameterList();
- } else if (identical(_oldNode, node.redirectedConstructor)) {
- throw new InsufficientContextException();
- } else if (node.initializers.contains(_oldNode)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.body)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
- if (identical(_oldNode, node.fieldName)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.expression)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitConstructorName(ConstructorName node) {
- if (identical(_oldNode, node.type)) {
- return _parser.parseTypeName();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitContinueStatement(ContinueStatement node) {
- if (identical(_oldNode, node.label)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitDeclaredIdentifier(DeclaredIdentifier node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.type)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.identifier)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitDefaultFormalParameter(DefaultFormalParameter node) {
- if (identical(_oldNode, node.parameter)) {
- return _parser.parseNormalFormalParameter();
- } else if (identical(_oldNode, node.defaultValue)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitDoStatement(DoStatement node) {
- if (identical(_oldNode, node.body)) {
- return _parser.parseStatement2();
- } else if (identical(_oldNode, node.condition)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitDottedName(DottedName node) {
- if (node.components.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitDoubleLiteral(DoubleLiteral node) => _notAChild(node);
-
- @override
- AstNode visitEmptyFunctionBody(EmptyFunctionBody node) => _notAChild(node);
-
- @override
- AstNode visitEmptyStatement(EmptyStatement node) => _notAChild(node);
-
- @override
- AstNode visitEnumConstantDeclaration(EnumConstantDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitEnumDeclaration(EnumDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (node.constants.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitExportDirective(ExportDirective node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.uri)) {
- return _parser.parseStringLiteral();
- } else if (node.combinators.contains(_oldNode)) {
- throw new IncrementalParseException();
- //return parser.parseCombinator();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitExpressionFunctionBody(ExpressionFunctionBody node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitExpressionStatement(ExpressionStatement node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitExtendsClause(ExtendsClause node) {
- if (identical(_oldNode, node.superclass)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFieldDeclaration(FieldDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.fields)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFieldFormalParameter(FieldFormalParameter node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.type)) {
- return _parser.parseTypeName();
- } else if (identical(_oldNode, node.identifier)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.parameters)) {
- return _parser.parseFormalParameterList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitForEachStatement(ForEachStatement node) {
- if (identical(_oldNode, node.loopVariable)) {
- throw new InsufficientContextException();
- //return parser.parseDeclaredIdentifier();
- } else if (identical(_oldNode, node.identifier)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.body)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFormalParameterList(FormalParameterList node) {
- // We don't know which kind of parameter to parse.
- throw new InsufficientContextException();
- }
-
- @override
- AstNode visitForStatement(ForStatement node) {
- if (identical(_oldNode, node.variables)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.initialization)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.condition)) {
- return _parser.parseExpression2();
- } else if (node.updaters.contains(_oldNode)) {
- return _parser.parseExpression2();
- } else if (identical(_oldNode, node.body)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionDeclaration(FunctionDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.returnType)) {
- return _parser.parseReturnType();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.functionExpression)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionDeclarationStatement(FunctionDeclarationStatement node) {
- if (identical(_oldNode, node.functionDeclaration)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionExpression(FunctionExpression node) {
- if (identical(_oldNode, node.parameters)) {
- return _parser.parseFormalParameterList();
- } else if (identical(_oldNode, node.body)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
- if (identical(_oldNode, node.function)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.argumentList)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionTypeAlias(FunctionTypeAlias node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.returnType)) {
- return _parser.parseReturnType();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.typeParameters)) {
- return _parser.parseTypeParameterList();
- } else if (identical(_oldNode, node.parameters)) {
- return _parser.parseFormalParameterList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.returnType)) {
- return _parser.parseReturnType();
- } else if (identical(_oldNode, node.identifier)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.parameters)) {
- return _parser.parseFormalParameterList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitHideCombinator(HideCombinator node) {
- if (node.hiddenNames.contains(_oldNode)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitIfStatement(IfStatement node) {
- if (identical(_oldNode, node.condition)) {
- return _parser.parseExpression2();
- } else if (identical(_oldNode, node.thenStatement)) {
- return _parser.parseStatement2();
- } else if (identical(_oldNode, node.elseStatement)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitImplementsClause(ImplementsClause node) {
- if (node.interfaces.contains(node)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitImportDirective(ImportDirective node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.uri)) {
- return _parser.parseStringLiteral();
- } else if (identical(_oldNode, node.prefix)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (node.combinators.contains(_oldNode)) {
- return _parser.parseCombinator();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitIndexExpression(IndexExpression node) {
- if (identical(_oldNode, node.target)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.index)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitInstanceCreationExpression(InstanceCreationExpression node) {
- if (identical(_oldNode, node.constructorName)) {
- return _parser.parseConstructorName();
- } else if (identical(_oldNode, node.argumentList)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitIntegerLiteral(IntegerLiteral node) => _notAChild(node);
-
- @override
- AstNode visitInterpolationExpression(InterpolationExpression node) {
- if (identical(_oldNode, node.expression)) {
- if (node.leftBracket == null) {
- throw new InsufficientContextException();
- //return parser.parseThisOrSimpleIdentifier();
- }
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitInterpolationString(InterpolationString node) {
- throw new InsufficientContextException();
- }
-
- @override
- AstNode visitIsExpression(IsExpression node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseBitwiseOrExpression();
- } else if (identical(_oldNode, node.type)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitLabel(Label node) {
- if (identical(_oldNode, node.label)) {
- return _parser.parseSimpleIdentifier(
- isDeclaration: node.parent is LabeledStatement);
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitLabeledStatement(LabeledStatement node) {
- if (node.labels.contains(_oldNode)) {
- return _parser.parseLabel(isDeclaration: true);
- } else if (identical(_oldNode, node.statement)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitLibraryDirective(LibraryDirective node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseLibraryIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitLibraryIdentifier(LibraryIdentifier node) {
- if (node.components.contains(_oldNode)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitListLiteral(ListLiteral node) {
- if (identical(_oldNode, node.typeArguments)) {
- return _parser.parseTypeArgumentList();
- } else if (node.elements.contains(_oldNode)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitMapLiteral(MapLiteral node) {
- if (identical(_oldNode, node.typeArguments)) {
- return _parser.parseTypeArgumentList();
- } else if (node.entries.contains(_oldNode)) {
- return _parser.parseMapLiteralEntry();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitMapLiteralEntry(MapLiteralEntry node) {
- if (identical(_oldNode, node.key)) {
- return _parser.parseExpression2();
- } else if (identical(_oldNode, node.value)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitMethodDeclaration(MethodDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.returnType)) {
- throw new InsufficientContextException();
- //return parser.parseTypeName();
- //return parser.parseReturnType();
- } else if (identical(_oldNode, node.name)) {
- if (node.operatorKeyword != null) {
- throw new InsufficientContextException();
- }
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.body)) {
- //return parser.parseFunctionBody();
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.parameters)) {
- // TODO(paulberry): if we want errors to be correct, we'll need to also
- // call _validateFormalParameterList, and sometimes
- // _validateModifiersForGetterOrSetterOrMethod.
- return _parser.parseFormalParameterList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitMethodInvocation(MethodInvocation node) {
- if (identical(_oldNode, node.target)) {
- throw new IncrementalParseException();
- } else if (identical(_oldNode, node.methodName)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.argumentList)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitNamedExpression(NamedExpression node) {
- if (identical(_oldNode, node.name)) {
- return _parser.parseLabel();
- } else if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitNativeClause(NativeClause node) {
- if (identical(_oldNode, node.name)) {
- return _parser.parseStringLiteral();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitNativeFunctionBody(NativeFunctionBody node) {
- if (identical(_oldNode, node.stringLiteral)) {
- return _parser.parseStringLiteral();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitNullLiteral(NullLiteral node) => _notAChild(node);
-
- @override
- AstNode visitParenthesizedExpression(ParenthesizedExpression node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPartDirective(PartDirective node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.uri)) {
- return _parser.parseStringLiteral();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPartOfDirective(PartOfDirective node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.libraryName)) {
- return _parser.parseLibraryIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPostfixExpression(PostfixExpression node) {
- if (identical(_oldNode, node.operand)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPrefixedIdentifier(PrefixedIdentifier node) {
- if (identical(_oldNode, node.prefix)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.identifier)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPrefixExpression(PrefixExpression node) {
- if (identical(_oldNode, node.operand)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitPropertyAccess(PropertyAccess node) {
- if (identical(_oldNode, node.target)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.propertyName)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitRedirectingConstructorInvocation(
- RedirectingConstructorInvocation node) {
- if (identical(_oldNode, node.constructorName)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.argumentList)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitRethrowExpression(RethrowExpression node) => _notAChild(node);
-
- @override
- AstNode visitReturnStatement(ReturnStatement node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitScriptTag(ScriptTag node) => _notAChild(node);
-
- @override
- AstNode visitShowCombinator(ShowCombinator node) {
- if (node.shownNames.contains(_oldNode)) {
- return _parser.parseSimpleIdentifier();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSimpleFormalParameter(SimpleFormalParameter node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.type)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.identifier)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSimpleIdentifier(SimpleIdentifier node) => _notAChild(node);
-
- @override
- AstNode visitSimpleStringLiteral(SimpleStringLiteral node) =>
- _notAChild(node);
-
- @override
- AstNode visitStringInterpolation(StringInterpolation node) {
- if (node.elements.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSuperConstructorInvocation(SuperConstructorInvocation node) {
- if (identical(_oldNode, node.constructorName)) {
- return _parser.parseSimpleIdentifier();
- } else if (identical(_oldNode, node.argumentList)) {
- return _parser.parseArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSuperExpression(SuperExpression node) => _notAChild(node);
-
- @override
- AstNode visitSwitchCase(SwitchCase node) {
- if (node.labels.contains(_oldNode)) {
- return _parser.parseLabel();
- } else if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- } else if (node.statements.contains(_oldNode)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSwitchDefault(SwitchDefault node) {
- if (node.labels.contains(_oldNode)) {
- return _parser.parseLabel();
- } else if (node.statements.contains(_oldNode)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSwitchStatement(SwitchStatement node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- } else if (node.members.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitSymbolLiteral(SymbolLiteral node) => _notAChild(node);
-
- @override
- AstNode visitThisExpression(ThisExpression node) => _notAChild(node);
-
- @override
- AstNode visitThrowExpression(ThrowExpression node) {
- if (identical(_oldNode, node.expression)) {
- if (_isCascadeAllowedInThrow(node)) {
- return _parser.parseExpression2();
- }
- return _parser.parseExpressionWithoutCascade();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.variables)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTryStatement(TryStatement node) {
- if (identical(_oldNode, node.body)) {
- return _parser.parseBlock();
- } else if (node.catchClauses.contains(_oldNode)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.finallyBlock)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTypeArgumentList(TypeArgumentList node) {
- if (node.arguments.contains(_oldNode)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTypeName(TypeName node) {
- if (identical(_oldNode, node.name)) {
- return _parser.parsePrefixedIdentifier();
- } else if (identical(_oldNode, node.typeArguments)) {
- return _parser.parseTypeArgumentList();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTypeParameter(TypeParameter node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- return _parser.parseSimpleIdentifier(isDeclaration: true);
- } else if (identical(_oldNode, node.bound)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitTypeParameterList(TypeParameterList node) {
- if (node.typeParameters.contains(node)) {
- return _parser.parseTypeParameter();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitVariableDeclaration(VariableDeclaration node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.name)) {
- throw new InsufficientContextException();
- } else if (identical(_oldNode, node.initializer)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitVariableDeclarationList(VariableDeclarationList node) {
- if (identical(_oldNode, node.documentationComment)) {
- throw new InsufficientContextException();
- } else if (node.metadata.contains(_oldNode)) {
- return _parser.parseAnnotation();
- } else if (identical(_oldNode, node.type)) {
- // There is not enough context to know whether we should reparse the type
- // using parseReturnType() (which allows 'void') or parseTypeName()
- // (which doesn't). Note that even though the language disallows
- // variables of type 'void', the parser sometimes accepts them in the
- // course of error recovery (e.g. "class C { void v; }"
- throw new InsufficientContextException();
- } else if (node.variables.contains(_oldNode)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitVariableDeclarationStatement(VariableDeclarationStatement node) {
- if (identical(_oldNode, node.variables)) {
- throw new InsufficientContextException();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitWhileStatement(WhileStatement node) {
- if (identical(_oldNode, node.condition)) {
- return _parser.parseExpression2();
- } else if (identical(_oldNode, node.body)) {
- return _parser.parseStatement2();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitWithClause(WithClause node) {
- if (node.mixinTypes.contains(node)) {
- return _parser.parseTypeName();
- }
- return _notAChild(node);
- }
-
- @override
- AstNode visitYieldStatement(YieldStatement node) {
- if (identical(_oldNode, node.expression)) {
- return _parser.parseExpression2();
- }
- return _notAChild(node);
- }
-
- /**
- * Return `true` if the given assignment [expression] can have a cascade
- * expression on the right-hand side.
- */
- bool _isCascadeAllowedInAssignment(AssignmentExpression expression) {
- // TODO(brianwilkerson) Implement this method.
- throw new InsufficientContextException();
- }
-
- /**
- * Return `true` if the given throw [expression] can have a cascade
- * expression.
- */
- bool _isCascadeAllowedInThrow(ThrowExpression expression) {
- // TODO(brianwilkerson) Implement this method.
- throw new InsufficientContextException();
- }
-
- /**
- * Throw an exception indicating that the visited [node] was not the parent of
- * the node to be replaced.
- */
- AstNode _notAChild(AstNode node) {
- throw new IncrementalParseException(
- "Internal error: the visited node (a ${node.runtimeType}) was not the parent of the node to be replaced (a ${_oldNode.runtimeType})");
- }
-}
-
-/**
- * An exception that occurred while attempting to parse a replacement for a
- * specified node in an existing AST structure.
- */
-@deprecated
-class IncrementalParseException {
- final String message;
- IncrementalParseException([this.message = '']);
- String toString() => '$runtimeType: $message';
-}
-
-/**
- * An object used to re-parse a single AST structure within a larger AST
- * structure.
- */
-@deprecated
-class IncrementalParser {
- /**
- * The source being parsed.
- */
- final Source _source;
-
- /**
- * A map from old tokens to new tokens used during the cloning process.
- */
- final TokenMap _tokenMap;
-
- /**
- * The error listener that will be informed of any errors that are found
- * during the parse.
- */
- final AnalysisErrorListener _errorListener;
-
- /**
- * The node in the AST structure that contains the revised content.
- */
- AstNode _updatedNode;
-
- /**
- * Initialize a newly created incremental parser to parse a portion of the
- * content of the given [_source]. The [_tokenMap] is a map from old tokens to
- * new tokens that is used during the cloning process. The [_errorListener]
- * will be informed of any errors that are found during the parse.
- */
- IncrementalParser(this._source, this._tokenMap, this._errorListener);
-
- /**
- * Return the node in the AST structure that contains the revised content.
- */
- AstNode get updatedNode => _updatedNode;
-
- /**
- * Given a range of tokens that were re-scanned, re-parse the minimum number
- * of tokens to produce a consistent AST structure. The range is represented
- * by the first and last tokens in the range.
- *
- * More specifically, the [leftToken] is the token in the new token stream
- * immediately to the left of the range of tokens that were inserted and the
- * [rightToken] is the token in the new token stream immediately to the right
- * of the range of tokens that were inserted. The [originalStart] and
- * [originalEnd] are the offsets in the original source of the first and last
- * characters that were modified.
- *
- * The tokens are assumed to be contained in the same token stream.
- */
- AstNode reparse(AstNode originalStructure, Token leftToken, Token rightToken,
- int originalStart, int originalEnd) {
- AstNode oldNode = null;
- AstNode newNode = null;
- //
- // Find the first token that needs to be re-parsed.
- //
- Token firstToken = leftToken.next;
- if (identical(firstToken, rightToken)) {
- // If there are no new tokens, then we need to include at least one copied
- // node in the range.
- firstToken = leftToken;
- }
- //
- // Find the smallest AST node that encompasses the range of re-scanned
- // tokens.
- //
- if (originalEnd < originalStart) {
- oldNode = new NodeLocator(originalStart).searchWithin(originalStructure);
- } else {
- oldNode = new NodeLocator(originalStart, originalEnd)
- .searchWithin(originalStructure);
- }
- //
- // Find the token at which parsing is to begin.
- //
- int originalOffset = oldNode.offset;
- Token parseToken = _findTokenAt(firstToken, originalOffset);
- if (parseToken == null) {
- return null;
- }
- //
- // Parse the appropriate AST structure starting at the appropriate place.
- //
- Parser parser = new Parser(_source, _errorListener);
- parser.currentToken = parseToken;
- while (newNode == null) {
- AstNode parent = oldNode.parent;
- if (parent == null) {
- parseToken = _findFirstToken(parseToken);
- parser.currentToken = parseToken;
- return parser.parseCompilationUnit2();
- }
- bool advanceToParent = false;
- try {
- IncrementalParseDispatcher dispatcher =
- new IncrementalParseDispatcher(parser, oldNode);
- IncrementalParseStateBuilder contextBuilder =
- new IncrementalParseStateBuilder(parser);
- contextBuilder.buildState(oldNode);
- newNode = parent.accept(dispatcher);
- //
- // Validate that the new node can replace the old node.
- //
- Token mappedToken = _tokenMap.get(oldNode.endToken.next);
- if (mappedToken == null ||
- newNode == null ||
- mappedToken.offset != newNode.endToken.next.offset ||
- newNode.offset != oldNode.offset) {
- advanceToParent = true;
- }
- } on InsufficientContextException {
- advanceToParent = true;
- } catch (exception) {
- return null;
- }
- if (advanceToParent) {
- newNode = null;
- oldNode = parent;
- originalOffset = oldNode.offset;
- parseToken = _findTokenAt(parseToken, originalOffset);
- parser.currentToken = parseToken;
- }
- }
- _updatedNode = newNode;
- //
- // Replace the old node with the new node in a copy of the original AST
- // structure.
- //
- if (identical(oldNode, originalStructure)) {
- // We ended up re-parsing the whole structure, so there's no need for a
- // copy.
- ResolutionCopier.copyResolutionData(oldNode, newNode);
- return newNode;
- }
- ResolutionCopier.copyResolutionData(oldNode, newNode);
- IncrementalAstCloner cloner =
- new IncrementalAstCloner(oldNode, newNode, _tokenMap);
- return originalStructure.accept(cloner);
- }
-
- /**
- * Return the first (non-EOF) token in the token stream containing the
- * [firstToken].
- */
- Token _findFirstToken(Token firstToken) {
- while (firstToken.type != TokenType.EOF) {
- firstToken = firstToken.previous;
- }
- return firstToken.next;
- }
-
- /**
- * Find the token at or before the [firstToken] with the given [offset], or
- * `null` if there is no such token.
- */
- Token _findTokenAt(Token firstToken, int offset) {
- while (firstToken.offset > offset && firstToken.type != TokenType.EOF) {
- firstToken = firstToken.previous;
- }
- return firstToken;
- }
-}
-
-/**
- * A visitor capable of inferring the correct parser state for incremental
- * parsing. This visitor visits each parent/child relationship in the chain of
- * ancestors of the node to be replaced (starting with the root of the parse
- * tree), updating the parser to the correct state for parsing the child of the
- * given parent. Once it has visited all of these relationships, the parser
- * will be in the correct state for reparsing the node to be replaced.
- */
-@deprecated
-class IncrementalParseStateBuilder extends SimpleAstVisitor {
- // TODO(paulberry): add support for other pieces of parser state (_inAsync,
- // _inGenerator, _inLoop, and _inSwitch). Note that _inLoop and _inSwitch
- // only affect error message generation.
-
- /**
- * The parser whose state should be built.
- */
- final Parser _parser;
-
- /**
- * The child node in the parent/child relationship currently being visited.
- * (The corresponding parent is the node passed to the visit...() function.)
- */
- AstNode _childNode;
-
- /**
- * Create an IncrementalParseStateBuilder which will build the correct state
- * for [_parser].
- */
- IncrementalParseStateBuilder(this._parser);
-
- /**
- * Build the correct parser state for parsing a replacement for [node].
- */
- void buildState(AstNode node) {
- List<AstNode> ancestors = <AstNode>[];
- while (node != null) {
- ancestors.add(node);
- node = node.parent;
- }
- _parser._inInitializer = false;
- for (int i = ancestors.length - 2; i >= 0; i--) {
- _childNode = ancestors[i];
- ancestors[i + 1].accept(this);
- }
- }
-
- @override
- void visitArgumentList(ArgumentList node) {
- _parser._inInitializer = false;
- }
-
- @override
- void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
- if (identical(_childNode, node.expression)) {
- _parser._inInitializer = true;
- }
- }
-
- @override
- void visitIndexExpression(IndexExpression node) {
- if (identical(_childNode, node.index)) {
- _parser._inInitializer = false;
- }
- }
-
- @override
- void visitInterpolationExpression(InterpolationExpression node) {
- if (identical(_childNode, node.expression)) {
- _parser._inInitializer = false;
- }
- }
-
- @override
- void visitListLiteral(ListLiteral node) {
- if (node.elements.contains(_childNode)) {
- _parser._inInitializer = false;
- }
- }
-
- @override
- void visitMapLiteral(MapLiteral node) {
- if (node.entries.contains(_childNode)) {
- _parser._inInitializer = false;
- }
- }
-
- @override
- void visitParenthesizedExpression(ParenthesizedExpression node) {
- if (identical(_childNode, node.expression)) {
- _parser._inInitializer = false;
- }
- }
-}
-
-/**
- * An exception indicating that an AST node cannot be re-parsed because there is
- * not enough context to know how to re-parse the node. Clients can attempt to
- * re-parse the parent of the node.
- */
-@deprecated
-class InsufficientContextException extends IncrementalParseException {
- InsufficientContextException([String message = '']) : super(message);
-}
-
-/**
* Wrapper around [Function] which should be called with "target" and
* "arguments".
*/
@@ -5170,7 +3741,7 @@
List<int> range = _findRange(codeBlockRanges, leftIndex);
if (range == null) {
int nameOffset = token.offset + leftIndex + 1;
- int rightIndex = JavaString.indexOf(comment, ']', leftIndex);
+ int rightIndex = comment.indexOf(']', leftIndex);
if (rightIndex >= 0) {
int firstChar = comment.codeUnitAt(leftIndex + 1);
if (firstChar != 0x27 && firstChar != 0x22) {
@@ -5207,9 +3778,9 @@
// next character
rightIndex = leftIndex + 1;
}
- leftIndex = JavaString.indexOf(comment, '[', rightIndex);
+ leftIndex = comment.indexOf('[', rightIndex);
} else {
- leftIndex = JavaString.indexOf(comment, '[', range[1] + 1);
+ leftIndex = comment.indexOf('[', range[1]);
}
}
}
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index e26126f..208c15c 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -12,6 +12,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/element/element.dart';
@@ -25,7 +26,6 @@
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/error_verifier.dart';
import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/static_type_analyzer.dart';
import 'package:analyzer/src/generated/type_system.dart';
@@ -6348,6 +6348,12 @@
@override
void visitConstructorDeclarationInScope(ConstructorDeclaration node) {
super.visitConstructorDeclarationInScope(node);
+ // Because of needing a different scope for the initializer list, the
+ // overridden implementation of this method cannot cause the visitNode
+ // method to be invoked. As a result, we have to hard-code using the
+ // element resolver and type analyzer to visit the constructor declaration.
+ node.accept(elementResolver);
+ node.accept(typeAnalyzer);
safelyVisitComment(node.documentationComment);
}
@@ -7744,6 +7750,12 @@
LabelScope labelScope;
/**
+ * A flag indicating whether to enable support for allowing access to field
+ * formal parameters in a constructor's initializer list.
+ */
+ bool enableInitializingFormalAccess = false;
+
+ /**
* The class containing the AST nodes being visited,
* or `null` if we are not in the scope of a class.
*/
@@ -7774,6 +7786,8 @@
} else {
this.nameScope = nameScope;
}
+ enableInitializingFormalAccess =
+ definingLibrary.context.analysisOptions.enableInitializingFormalAccess;
}
/**
@@ -7910,23 +7924,40 @@
@override
Object visitConstructorDeclaration(ConstructorDeclaration node) {
ConstructorElement constructorElement = node.element;
+ if (constructorElement == null) {
+ StringBuffer buffer = new StringBuffer();
+ buffer.write("Missing element for constructor ");
+ buffer.write(node.returnType.name);
+ if (node.name != null) {
+ buffer.write(".");
+ buffer.write(node.name.name);
+ }
+ buffer.write(" in ");
+ buffer.write(definingLibrary.source.fullName);
+ AnalysisEngine.instance.logger.logInformation(buffer.toString(),
+ new CaughtException(new AnalysisException(), null));
+ }
Scope outerScope = nameScope;
try {
- if (constructorElement == null) {
- StringBuffer buffer = new StringBuffer();
- buffer.write("Missing element for constructor ");
- buffer.write(node.returnType.name);
- if (node.name != null) {
- buffer.write(".");
- buffer.write(node.name.name);
- }
- buffer.write(" in ");
- buffer.write(definingLibrary.source.fullName);
- AnalysisEngine.instance.logger.logInformation(buffer.toString(),
- new CaughtException(new AnalysisException(), null));
- } else {
+ if (constructorElement != null) {
nameScope = new FunctionScope(nameScope, constructorElement);
}
+ node.documentationComment?.accept(this);
+ node.metadata.accept(this);
+ node.returnType?.accept(this);
+ node.name?.accept(this);
+ node.parameters?.accept(this);
+ Scope functionScope = nameScope;
+ try {
+ if (constructorElement != null && enableInitializingFormalAccess) {
+ nameScope =
+ new ConstructorInitializerScope(nameScope, constructorElement);
+ }
+ node.initializers.accept(this);
+ } finally {
+ nameScope = functionScope;
+ }
+ node.redirectedConstructor?.accept(this);
visitConstructorDeclarationInScope(node);
} finally {
nameScope = outerScope;
@@ -7935,7 +7966,7 @@
}
void visitConstructorDeclarationInScope(ConstructorDeclaration node) {
- super.visitConstructorDeclaration(node);
+ node.body?.accept(this);
}
@override
@@ -8554,14 +8585,13 @@
* @param commentToken the comment token to analyze
*/
void _scrapeTodoComment(Token commentToken) {
- JavaPatternMatcher matcher =
- new JavaPatternMatcher(TodoCode.TODO_REGEX, commentToken.lexeme);
- if (matcher.find()) {
- int offset =
- commentToken.offset + matcher.start() + matcher.group(1).length;
- int length = matcher.group(2).length;
+ Iterable<Match> matches =
+ TodoCode.TODO_REGEX.allMatches(commentToken.lexeme);
+ for (Match match in matches) {
+ int offset = commentToken.offset + match.start + match.group(1).length;
+ int length = match.group(2).length;
_errorReporter.reportErrorForOffset(
- TodoCode.TODO, offset, length, [matcher.group(2)]);
+ TodoCode.TODO, offset, length, [match.group(2)]);
}
}
}
diff --git a/pkg/analyzer/lib/src/generated/sdk_io.dart b/pkg/analyzer/lib/src/generated/sdk_io.dart
index d9dbcbc..9177b28 100644
--- a/pkg/analyzer/lib/src/generated/sdk_io.dart
+++ b/pkg/analyzer/lib/src/generated/sdk_io.dart
@@ -9,13 +9,12 @@
import 'dart:io';
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/context.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/parser.dart';
@@ -133,8 +132,8 @@
return null;
}
try {
- return new FileBasedSource(file, parseUriWithException(path));
- } on URISyntaxException catch (exception, stackTrace) {
+ return new FileBasedSource(file, Uri.parse(path));
+ } on FormatException catch (exception, stackTrace) {
AnalysisEngine.instance.logger.logInformation(
"Failed to create URI: $path",
new CaughtException(exception, stackTrace));
@@ -189,8 +188,8 @@
String filePath = srcPath.replaceAll('/', JavaFile.separator);
try {
JavaFile file = new JavaFile(filePath);
- return new FileBasedSource(file, parseUriWithException(dartUri));
- } on URISyntaxException {
+ return new FileBasedSource(file, Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
@@ -721,8 +720,8 @@
file = file.getParentFile();
file = new JavaFile.relative(file, relativePath);
}
- return new FileBasedSource(file, parseUriWithException(dartUri));
- } on URISyntaxException {
+ return new FileBasedSource(file, Uri.parse(dartUri));
+ } on FormatException {
return null;
}
}
diff --git a/pkg/analyzer/lib/src/generated/source_io.dart b/pkg/analyzer/lib/src/generated/source_io.dart
index f6af841..025e209 100644
--- a/pkg/analyzer/lib/src/generated/source_io.dart
+++ b/pkg/analyzer/lib/src/generated/source_io.dart
@@ -6,9 +6,8 @@
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -18,6 +17,7 @@
* Instances of the class [DirectoryBasedSourceContainer] represent a source container that
* contains all sources within a given directory.
*/
+@deprecated
class DirectoryBasedSourceContainer implements SourceContainer {
/**
* The container's path (not `null`).
@@ -480,8 +480,8 @@
String pkgCanonicalUri = _toFileUri(pkgFolder.getCanonicalPath());
if (sourceUri.startsWith(pkgCanonicalUri)) {
String relPath = sourceUri.substring(pkgCanonicalUri.length);
- return parseUriWithException(
- "$PACKAGE_SCHEME:${pkgFolder.getName()}$relPath");
+ return Uri
+ .parse("$PACKAGE_SCHEME:${pkgFolder.getName()}$relPath");
}
} catch (e) {}
}
diff --git a/pkg/analyzer/lib/src/generated/testing/element_factory.dart b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
index f0067a6..2075999 100644
--- a/pkg/analyzer/lib/src/generated/testing/element_factory.dart
+++ b/pkg/analyzer/lib/src/generated/testing/element_factory.dart
@@ -14,7 +14,6 @@
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/testing/ast_factory.dart';
diff --git a/pkg/analyzer/lib/src/generated/type_system.dart b/pkg/analyzer/lib/src/generated/type_system.dart
index b19ae14..dfc5282 100644
--- a/pkg/analyzer/lib/src/generated/type_system.dart
+++ b/pkg/analyzer/lib/src/generated/type_system.dart
@@ -16,15 +16,135 @@
import 'package:analyzer/src/generated/engine.dart'
show AnalysisContext, AnalysisOptionsImpl;
import 'package:analyzer/src/generated/error.dart'
- show ErrorCode, ErrorReporter, StrongModeCode;
+ show ErrorReporter, StrongModeCode;
import 'package:analyzer/src/generated/resolver.dart' show TypeProvider;
import 'package:analyzer/src/generated/utilities_dart.dart' show ParameterKind;
import 'package:analyzer/src/generated/utilities_general.dart'
show JenkinsSmiHash;
+bool _isBottom(DartType t, {bool dynamicIsBottom: false}) {
+ return (t.isDynamic && dynamicIsBottom) || t.isBottom;
+}
+
+bool _isTop(DartType t, {bool dynamicIsBottom: false}) {
+ // TODO(leafp): Document the rules in play here
+ return (t.isDynamic && !dynamicIsBottom) || t.isObject;
+}
+
typedef bool _GuardedSubtypeChecker<T>(T t1, T t2, Set<Element> visited);
/**
+ * A special union type of `Future<T> | T` used for Strong Mode inference.
+ */
+class FutureUnionType extends TypeImpl {
+ // TODO(jmesserly): a Set would be better.
+ //
+ // For now we know `Future<T> | T` is the only valid use, so we can rely on
+ // the order, which simplifies some things.
+ //
+ // This will need clean up before this can function as a real union type.
+ final List<DartType> _types;
+
+ /**
+ * Creates a union of `Future<T> | T`.
+ */
+ FutureUnionType._(DartType type, TypeProvider provider, TypeSystem system)
+ : _types = [
+ provider.futureType.instantiate([type]),
+ type
+ ],
+ super(null, null);
+
+ DartType get futureOfType => _types[0];
+
+ @override
+ int get hashCode {
+ int hash = 0;
+ for (var t in types) {
+ hash = JenkinsSmiHash.combine(hash, t.hashCode);
+ }
+ return JenkinsSmiHash.finish(hash);
+ }
+
+ DartType get type => _types[1];
+
+ Iterable<DartType> get types => _types;
+
+ @override
+ bool operator ==(Object obj) {
+ if (obj is FutureUnionType) {
+ if (identical(obj, this)) return true;
+ return types.length == obj.types.length &&
+ types.toSet().containsAll(obj.types);
+ }
+ return false;
+ }
+
+ @override
+ void appendTo(StringBuffer buffer) {
+ buffer.write('(');
+ for (int i = 0; i < _types.length; i++) {
+ if (i != 0) {
+ buffer.write(' | ');
+ }
+ (_types[i] as TypeImpl).appendTo(buffer);
+ }
+ buffer.write(')');
+ }
+
+ @override
+ bool isMoreSpecificThan(DartType type,
+ [bool withDynamic = false, Set<Element> visitedElements]) =>
+ throw new UnsupportedError(
+ 'Future unions are not part of the Dart 1 type system');
+
+ @override
+ TypeImpl pruned(List<FunctionTypeAliasElement> prune) =>
+ throw new UnsupportedError('Future unions are not substituted');
+
+ @override
+ DartType substitute2(List<DartType> args, List<DartType> params,
+ [List<FunctionTypeAliasElement> prune]) =>
+ throw new UnsupportedError('Future unions are not used in typedefs');
+
+ /**
+ * Creates a union of `T | Future<T>`, unless `T` is already a future or a
+ * future-union, in which case it simply returns `T`.
+ *
+ * Conceptually this is used as the inverse of the `flatten(T)` operation,
+ * defined as:
+ *
+ * - `flatten(Future<T>) -> T`
+ * - `flatten(T) -> T`
+ *
+ * Thus the inverse will give us `T | Future<T>`.
+ *
+ * If [type] is top (dynamic or Object) then the resulting union type is
+ * equivalent to top, so we simply return it.
+ *
+ * For a similar reason `Future<T> | Future<Future<T>>` is equivalent to just
+ * `Future<T>`, so we return it. Note that it is not possible to get a
+ * `Future<T>` as a result of `flatten`, so a this case likely indicates a
+ * type error in the code, but it will be reported elsewhere.
+ */
+ static DartType from(
+ DartType type, TypeProvider provider, TypeSystem system) {
+ if (_isTop(type)) {
+ return type;
+ }
+ if (!identical(type, type.flattenFutures(system))) {
+ // As noted above, this most likely represents erroneous input.
+ return type;
+ }
+
+ if (type is FutureUnionType) {
+ return type;
+ }
+ return new FutureUnionType._(type, provider, system);
+ }
+}
+
+/**
* Implementation of [TypeSystem] using the strong mode rules.
* https://github.com/dart-lang/dev_compiler/blob/master/STRONG_MODE.md
*/
@@ -176,6 +296,22 @@
}
/**
+ * Compute the least supertype of [type], which is known to be an interface
+ * type.
+ *
+ * In the event that the algorithm fails (which might occur due to a bug in
+ * the analyzer), `null` is returned.
+ */
+ DartType getLeastNullableSupertype(InterfaceType type) {
+ // compute set of supertypes
+ List<InterfaceType> s = InterfaceTypeImpl
+ .computeSuperinterfaceSet(type)
+ .where(isNullableType)
+ .toList();
+ return InterfaceTypeImpl.computeTypeAtMaxUniqueDepth(s);
+ }
+
+ /**
* Compute the least upper bound of two types.
*/
@override
@@ -195,22 +331,6 @@
}
/**
- * Compute the least supertype of [type], which is known to be an interface
- * type.
- *
- * In the event that the algorithm fails (which might occur due to a bug in
- * the analyzer), `null` is returned.
- */
- DartType getLeastNullableSupertype(InterfaceType type) {
- // compute set of supertypes
- List<InterfaceType> s = InterfaceTypeImpl
- .computeSuperinterfaceSet(type)
- .where(isNullableType)
- .toList();
- return InterfaceTypeImpl.computeTypeAtMaxUniqueDepth(s);
- }
-
- /**
* Given a generic function type `F<T0, T1, ... Tn>` and a context type C,
* infer an instantiation of F, such that `F<S0, S1, ..., Sn>` <: C.
*
@@ -434,6 +554,18 @@
@override
bool isMoreSpecificThan(DartType t1, DartType t2) => isSubtypeOf(t1, t2);
+ /// Check if [type] is in a set of preselected non-nullable types.
+ /// [FunctionType]s are always nullable.
+ bool isNonNullableType(DartType type) {
+ return !isNullableType(type);
+ }
+
+ /// Opposite of [isNonNullableType].
+ bool isNullableType(DartType type) {
+ return type is FunctionType ||
+ !nonnullableTypes.contains(_getTypeFullyQualifiedName(type));
+ }
+
@override
bool isSubtypeOf(DartType leftType, DartType rightType) {
return _isSubtypeOf(leftType, rightType, null);
@@ -596,6 +728,12 @@
TypeProvider provider, DartType f, DartType g) =>
getGreatestLowerBound(provider, f, g, dynamicIsBottom: true);
+ /// Given a type return its name prepended with the URI to its containing
+ /// library and separated by a comma.
+ String _getTypeFullyQualifiedName(DartType type) {
+ return "${type?.element?.library?.identifier},$type";
+ }
+
/**
* Guard against loops in the class hierarchy
*/
@@ -821,24 +959,6 @@
return _isFunctionSubtypeOf(t1 as FunctionType, t2 as FunctionType);
}
- /// Check if [type] is in a set of preselected non-nullable types.
- /// [FunctionType]s are always nullable.
- bool isNonNullableType(DartType type) {
- return !isNullableType(type);
- }
-
- /// Opposite of [isNonNullableType].
- bool isNullableType(DartType type) {
- return type is FunctionType ||
- !nonnullableTypes.contains(_getTypeFullyQualifiedName(type));
- }
-
- /// Given a type return its name prepended with the URI to its containing
- /// library and separated by a comma.
- String _getTypeFullyQualifiedName(DartType type) {
- return "${type?.element?.library?.identifier},$type";
- }
-
/**
* This currently just implements a simple least upper bound to
* handle some common cases. It also avoids some termination issues
@@ -1618,123 +1738,3 @@
}
}
}
-
-/**
- * A special union type of `Future<T> | T` used for Strong Mode inference.
- */
-class FutureUnionType extends TypeImpl {
- // TODO(jmesserly): a Set would be better.
- //
- // For now we know `Future<T> | T` is the only valid use, so we can rely on
- // the order, which simplifies some things.
- //
- // This will need clean up before this can function as a real union type.
- final List<DartType> _types;
-
- /**
- * Creates a union of `Future<T> | T`.
- */
- FutureUnionType._(DartType type, TypeProvider provider, TypeSystem system)
- : _types = [
- provider.futureType.instantiate([type]),
- type
- ],
- super(null, null);
-
- DartType get futureOfType => _types[0];
-
- DartType get type => _types[1];
-
- Iterable<DartType> get types => _types;
-
- @override
- void appendTo(StringBuffer buffer) {
- buffer.write('(');
- for (int i = 0; i < _types.length; i++) {
- if (i != 0) {
- buffer.write(' | ');
- }
- (_types[i] as TypeImpl).appendTo(buffer);
- }
- buffer.write(')');
- }
-
- @override
- int get hashCode {
- int hash = 0;
- for (var t in types) {
- hash = JenkinsSmiHash.combine(hash, t.hashCode);
- }
- return JenkinsSmiHash.finish(hash);
- }
-
- @override
- bool operator ==(Object obj) {
- if (obj is FutureUnionType) {
- if (identical(obj, this)) return true;
- return types.length == obj.types.length &&
- types.toSet().containsAll(obj.types);
- }
- return false;
- }
-
- @override
- bool isMoreSpecificThan(DartType type,
- [bool withDynamic = false, Set<Element> visitedElements]) =>
- throw new UnsupportedError(
- 'Future unions are not part of the Dart 1 type system');
-
- @override
- TypeImpl pruned(List<FunctionTypeAliasElement> prune) =>
- throw new UnsupportedError('Future unions are not substituted');
-
- @override
- DartType substitute2(List<DartType> args, List<DartType> params,
- [List<FunctionTypeAliasElement> prune]) =>
- throw new UnsupportedError('Future unions are not used in typedefs');
-
- /**
- * Creates a union of `T | Future<T>`, unless `T` is already a future or a
- * future-union, in which case it simply returns `T`.
- *
- * Conceptually this is used as the inverse of the `flatten(T)` operation,
- * defined as:
- *
- * - `flatten(Future<T>) -> T`
- * - `flatten(T) -> T`
- *
- * Thus the inverse will give us `T | Future<T>`.
- *
- * If [type] is top (dynamic or Object) then the resulting union type is
- * equivalent to top, so we simply return it.
- *
- * For a similar reason `Future<T> | Future<Future<T>>` is equivalent to just
- * `Future<T>`, so we return it. Note that it is not possible to get a
- * `Future<T>` as a result of `flatten`, so a this case likely indicates a
- * type error in the code, but it will be reported elsewhere.
- */
- static DartType from(
- DartType type, TypeProvider provider, TypeSystem system) {
- if (_isTop(type)) {
- return type;
- }
- if (!identical(type, type.flattenFutures(system))) {
- // As noted above, this most likely represents erroneous input.
- return type;
- }
-
- if (type is FutureUnionType) {
- return type;
- }
- return new FutureUnionType._(type, provider, system);
- }
-}
-
-bool _isBottom(DartType t, {bool dynamicIsBottom: false}) {
- return (t.isDynamic && dynamicIsBottom) || t.isBottom;
-}
-
-bool _isTop(DartType t, {bool dynamicIsBottom: false}) {
- // TODO(leafp): Document the rules in play here
- return (t.isDynamic && !dynamicIsBottom) || t.isObject;
-}
diff --git a/pkg/analyzer/lib/src/generated/utilities_dart.dart b/pkg/analyzer/lib/src/generated/utilities_dart.dart
index d244dce..3c0ab8d 100644
--- a/pkg/analyzer/lib/src/generated/utilities_dart.dart
+++ b/pkg/analyzer/lib/src/generated/utilities_dart.dart
@@ -6,9 +6,9 @@
import 'package:analyzer/dart/ast/ast.dart' show AnnotatedNode, Comment;
import 'package:analyzer/dart/ast/token.dart' show Token;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/element/element.dart' show ElementImpl;
import 'package:analyzer/src/generated/java_core.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/util/fast_uri.dart';
@@ -51,7 +51,6 @@
if (comment != null && comment.isDocumentation) {
element.documentationComment =
comment.tokens.map((Token t) => t.lexeme).join('\n');
- element.setDocRange(comment.offset, comment.length);
}
}
diff --git a/pkg/analyzer/lib/src/source/source_resource.dart b/pkg/analyzer/lib/src/source/source_resource.dart
index 2d188d8..63b906c 100644
--- a/pkg/analyzer/lib/src/source/source_resource.dart
+++ b/pkg/analyzer/lib/src/source/source_resource.dart
@@ -11,13 +11,20 @@
import 'package:analyzer/src/generated/source.dart';
/**
+ * A function that can translate the contents of files on disk as they are read.
+ * This is now obsolete, but supported the ability of server to deal with
+ * clients that convert all text to an internal format.
+ */
+typedef String FileReadMode(String s);
+
+/**
* A source that represents a file.
*/
class FileSource extends Source {
/**
* A function that changes the way that files are read off of disk.
*/
- static Function fileReadMode = (String s) => s;
+ static FileReadMode fileReadMode = (String s) => s;
/**
* Map from encoded URI/filepath pair to a unique integer identifier. This
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index 626f443..641287e 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -4795,32 +4795,13 @@
}
class UnlinkedDocumentationCommentBuilder extends Object with _UnlinkedDocumentationCommentMixin implements idl.UnlinkedDocumentationComment {
- int _length;
- int _offset;
String _text;
@override
- int get length => _length ??= 0;
-
- /**
- * Length of the documentation comment (prior to replacing '\r\n' with '\n').
- */
- void set length(int _value) {
- assert(_value == null || _value >= 0);
- _length = _value;
- }
+ int get length => throw new UnimplementedError('attempt to access deprecated field');
@override
- int get offset => _offset ??= 0;
-
- /**
- * Offset of the beginning of the documentation comment relative to the
- * beginning of the file.
- */
- void set offset(int _value) {
- assert(_value == null || _value >= 0);
- _offset = _value;
- }
+ int get offset => throw new UnimplementedError('attempt to access deprecated field');
@override
String get text => _text ??= '';
@@ -4835,10 +4816,8 @@
_text = _value;
}
- UnlinkedDocumentationCommentBuilder({int length, int offset, String text})
- : _length = length,
- _offset = offset,
- _text = text;
+ UnlinkedDocumentationCommentBuilder({String text})
+ : _text = text;
/**
* Flush [informative] data recursively.
@@ -4850,9 +4829,7 @@
* Accumulate non-[informative] data into [signature].
*/
void collectApiSignature(api_sig.ApiSignature signature) {
- signature.addInt(this._length ?? 0);
signature.addString(this._text ?? '');
- signature.addInt(this._offset ?? 0);
}
fb.Offset finish(fb.Builder fbBuilder) {
@@ -4861,12 +4838,6 @@
offset_text = fbBuilder.writeString(_text);
}
fbBuilder.startTable();
- if (_length != null && _length != 0) {
- fbBuilder.addUint32(0, _length);
- }
- if (_offset != null && _offset != 0) {
- fbBuilder.addUint32(2, _offset);
- }
if (offset_text != null) {
fbBuilder.addOffset(1, offset_text);
}
@@ -4887,21 +4858,13 @@
_UnlinkedDocumentationCommentImpl(this._bc, this._bcOffset);
- int _length;
- int _offset;
String _text;
@override
- int get length {
- _length ??= const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 0, 0);
- return _length;
- }
+ int get length => throw new UnimplementedError('attempt to access deprecated field');
@override
- int get offset {
- _offset ??= const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 2, 0);
- return _offset;
- }
+ int get offset => throw new UnimplementedError('attempt to access deprecated field');
@override
String get text {
@@ -4914,16 +4877,12 @@
@override
Map<String, Object> toJson() {
Map<String, Object> _result = <String, Object>{};
- if (length != 0) _result["length"] = length;
- if (offset != 0) _result["offset"] = offset;
if (text != '') _result["text"] = text;
return _result;
}
@override
Map<String, Object> toMap() => {
- "length": length,
- "offset": offset,
"text": text,
};
diff --git a/pkg/analyzer/lib/src/summary/format.fbs b/pkg/analyzer/lib/src/summary/format.fbs
index ba46f01..de2afb2 100644
--- a/pkg/analyzer/lib/src/summary/format.fbs
+++ b/pkg/analyzer/lib/src/summary/format.fbs
@@ -1631,13 +1631,13 @@
/**
* Length of the documentation comment (prior to replacing '\r\n' with '\n').
*/
- length:uint (id: 0);
+ length:uint (id: 0, deprecated);
/**
* Offset of the beginning of the documentation comment relative to the
* beginning of the file.
*/
- offset:uint (id: 2);
+ offset:uint (id: 2, deprecated);
/**
* Text of the documentation comment, with '\r\n' replaced by '\n'.
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index 70b329b..3cd6562 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -1674,6 +1674,7 @@
* Length of the documentation comment (prior to replacing '\r\n' with '\n').
*/
@Id(0)
+ @deprecated
int get length;
/**
@@ -1681,6 +1682,7 @@
* beginning of the file.
*/
@Id(2)
+ @deprecated
int get offset;
/**
diff --git a/pkg/analyzer/lib/src/summary/incremental_cache.dart b/pkg/analyzer/lib/src/summary/incremental_cache.dart
index 6370234..6b1b1ae 100644
--- a/pkg/analyzer/lib/src/summary/incremental_cache.dart
+++ b/pkg/analyzer/lib/src/summary/incremental_cache.dart
@@ -4,7 +4,7 @@
import 'dart:collection';
import 'dart:convert';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/file_system/file_system.dart';
@@ -370,6 +370,7 @@
_appendLibraryClosure(closure, refSource);
}
}
+
contentSource.importedUris.forEach(appendLibrarySources);
contentSource.exportedUris.forEach(appendLibrarySources);
}
diff --git a/pkg/analyzer/lib/src/summary/pub_summary.dart b/pkg/analyzer/lib/src/summary/pub_summary.dart
index 3e1cfd7..ba5b968 100644
--- a/pkg/analyzer/lib/src/summary/pub_summary.dart
+++ b/pkg/analyzer/lib/src/summary/pub_summary.dart
@@ -4,7 +4,7 @@
import 'dart:async';
import 'dart:collection';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
diff --git a/pkg/analyzer/lib/src/summary/summarize_ast.dart b/pkg/analyzer/lib/src/summary/summarize_ast.dart
index 701da82..ede1b0a 100644
--- a/pkg/analyzer/lib/src/summary/summarize_ast.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_ast.dart
@@ -585,10 +585,7 @@
.map((Token t) => t.toString())
.join()
.replaceAll('\r\n', '\n');
- return new UnlinkedDocumentationCommentBuilder(
- text: text,
- offset: documentationComment.offset,
- length: documentationComment.length);
+ return new UnlinkedDocumentationCommentBuilder(text: text);
}
/**
diff --git a/pkg/analyzer/lib/src/summary/summarize_elements.dart b/pkg/analyzer/lib/src/summary/summarize_elements.dart
index e62f408..1a0e22d 100644
--- a/pkg/analyzer/lib/src/summary/summarize_elements.dart
+++ b/pkg/analyzer/lib/src/summary/summarize_elements.dart
@@ -721,9 +721,7 @@
return null;
}
return new UnlinkedDocumentationCommentBuilder(
- text: element.documentationComment,
- offset: element.docRange.offset,
- length: element.docRange.length);
+ text: element.documentationComment);
}
/**
diff --git a/pkg/analyzer/lib/src/task/dart.dart b/pkg/analyzer/lib/src/task/dart.dart
index 3c9c426..94cd824 100644
--- a/pkg/analyzer/lib/src/task/dart.dart
+++ b/pkg/analyzer/lib/src/task/dart.dart
@@ -11,6 +11,7 @@
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/context/context.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
@@ -25,7 +26,6 @@
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/error_verifier.dart';
import 'package:analyzer/src/generated/incremental_resolver.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/sdk.dart';
@@ -3674,8 +3674,8 @@
//
RecordingErrorListener errorListener = new RecordingErrorListener();
Expression initializer = declaration.initializer;
- ResolutionContext resolutionContext = ResolutionContextBuilder.contextFor(
- initializer, AnalysisErrorListener.NULL_LISTENER);
+ ResolutionContext resolutionContext =
+ ResolutionContextBuilder.contextFor(initializer);
ResolverVisitor visitor = new ResolverVisitor(
variable.library, variable.source, typeProvider, errorListener,
nameScope: resolutionContext.scope);
diff --git a/pkg/analyzer/lib/src/task/driver.dart b/pkg/analyzer/lib/src/task/driver.dart
index 07083d8..bf6da4e 100644
--- a/pkg/analyzer/lib/src/task/driver.dart
+++ b/pkg/analyzer/lib/src/task/driver.dart
@@ -7,9 +7,9 @@
import 'dart:async';
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/utilities_general.dart';
import 'package:analyzer/src/task/inputs.dart';
diff --git a/pkg/analyzer/lib/src/task/html.dart b/pkg/analyzer/lib/src/task/html.dart
index b56c4b4..ae45620 100644
--- a/pkg/analyzer/lib/src/task/html.dart
+++ b/pkg/analyzer/lib/src/task/html.dart
@@ -6,6 +6,7 @@
import 'dart:collection';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart';
diff --git a/pkg/analyzer/lib/src/task/manager.dart b/pkg/analyzer/lib/src/task/manager.dart
index c8252fa..059257f 100644
--- a/pkg/analyzer/lib/src/task/manager.dart
+++ b/pkg/analyzer/lib/src/task/manager.dart
@@ -6,7 +6,7 @@
import 'dart:collection';
-import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/task/model.dart';
/**
diff --git a/pkg/analyzer/lib/src/task/options.dart b/pkg/analyzer/lib/src/task/options.dart
index dd544ca..58d76ac 100644
--- a/pkg/analyzer/lib/src/task/options.dart
+++ b/pkg/analyzer/lib/src/task/options.dart
@@ -48,6 +48,8 @@
static const String enableAssertInitializer = 'enableAssertInitializer';
static const String enableAsync = 'enableAsync';
static const String enableGenericMethods = 'enableGenericMethods';
+ static const String enableInitializingFormalAccess =
+ 'enableInitializingFormalAccess';
static const String enableStrictCallChecks = 'enableStrictCallChecks';
static const String enableSuperMixins = 'enableSuperMixins';
@@ -566,6 +568,8 @@
options.enableAssertInitializer = boolValue;
} else if (feature == AnalyzerOptions.enableAsync) {
options.enableAsync = boolValue;
+ } else if (feature == AnalyzerOptions.enableInitializingFormalAccess) {
+ options.enableInitializingFormalAccess = boolValue;
} else if (feature == AnalyzerOptions.enableSuperMixins) {
options.enableSuperMixins = boolValue;
} else if (feature == AnalyzerOptions.enableGenericMethods) {
diff --git a/pkg/analyzer/lib/src/task/yaml.dart b/pkg/analyzer/lib/src/task/yaml.dart
index 2d94165..c74804a 100644
--- a/pkg/analyzer/lib/src/task/yaml.dart
+++ b/pkg/analyzer/lib/src/task/yaml.dart
@@ -4,11 +4,11 @@
library analyzer.src.task.yaml;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/general.dart';
import 'package:analyzer/task/general.dart';
diff --git a/pkg/analyzer/lib/task/model.dart b/pkg/analyzer/lib/task/model.dart
index 771d422..32df0e5 100644
--- a/pkg/analyzer/lib/task/model.dart
+++ b/pkg/analyzer/lib/task/model.dart
@@ -7,9 +7,9 @@
import 'dart:collection';
import 'dart:developer';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart' show AnalysisError;
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_general.dart';
import 'package:analyzer/src/task/driver.dart';
@@ -284,6 +284,7 @@
// There was no cycle.
return false;
}
+
if (cycle.length > 0) {
traverse(cycle[0]);
}
diff --git a/pkg/analyzer/pubspec.yaml b/pkg/analyzer/pubspec.yaml
index 31d334d..5a98fbf 100644
--- a/pkg/analyzer/pubspec.yaml
+++ b/pkg/analyzer/pubspec.yaml
@@ -1,5 +1,5 @@
name: analyzer
-version: 0.28.2-alpha.0
+version: 0.29.0-alpha.0
author: Dart Team <misc@dartlang.org>
description: Static analyzer for Dart.
homepage: https://github.com/dart-lang/sdk/tree/master/pkg/analyzer
diff --git a/pkg/analyzer/test/embedder_tests.dart b/pkg/analyzer/test/embedder_tests.dart
index ba79d0c..f10606f 100644
--- a/pkg/analyzer/test/embedder_tests.dart
+++ b/pkg/analyzer/test/embedder_tests.dart
@@ -4,7 +4,7 @@
library analyzer.test.embedder_tests;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
diff --git a/pkg/analyzer/test/file_system/memory_file_system_test.dart b/pkg/analyzer/test/file_system/memory_file_system_test.dart
index ce9d81c..0878963 100644
--- a/pkg/analyzer/test/file_system/memory_file_system_test.dart
+++ b/pkg/analyzer/test/file_system/memory_file_system_test.dart
@@ -5,7 +5,7 @@
library analyzer.test.file_system.memory_file_system_test;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
diff --git a/pkg/analyzer/test/file_system/physical_resource_provider_test.dart b/pkg/analyzer/test/file_system/physical_resource_provider_test.dart
index 42b8111..6be1f2b 100644
--- a/pkg/analyzer/test/file_system/physical_resource_provider_test.dart
+++ b/pkg/analyzer/test/file_system/physical_resource_provider_test.dart
@@ -5,7 +5,7 @@
library analyzer.test.file_system.physical_resource_provider_test;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analyzer/file_system/file_system.dart';
diff --git a/pkg/analyzer/test/generated/all_the_rest_test.dart b/pkg/analyzer/test/generated/all_the_rest_test.dart
index 60e00e0..e52d5a4 100644
--- a/pkg/analyzer/test/generated/all_the_rest_test.dart
+++ b/pkg/analyzer/test/generated/all_the_rest_test.dart
@@ -18,7 +18,6 @@
import 'package:analyzer/src/dart/sdk/sdk.dart' hide SdkLibrariesReader;
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/resolver.dart';
@@ -45,10 +44,12 @@
main() {
initializeTestEnvironment();
defineReflectiveTests(ContentCacheTest);
+ // ignore: deprecated_member_use
defineReflectiveTests(CustomUriResolverTest);
defineReflectiveTests(DartUriResolverTest);
// ignore: deprecated_member_use
defineReflectiveTests(DirectoryBasedDartSdkTest);
+ // ignore: deprecated_member_use
defineReflectiveTests(DirectoryBasedSourceContainerTest);
defineReflectiveTests(ElementBuilderTest);
defineReflectiveTests(ElementLocatorTest);
@@ -120,8 +121,7 @@
UriResolver resolver = new CustomUriResolver({
'custom:library': '/path/to/library.dart',
});
- Source result =
- resolver.resolveAbsolute(parseUriWithException("custom:non_library"));
+ Source result = resolver.resolveAbsolute(Uri.parse("custom:non_library"));
expect(result, isNull);
}
@@ -131,8 +131,7 @@
UriResolver resolver = new CustomUriResolver({
'custom:library': path,
});
- Source result =
- resolver.resolveAbsolute(parseUriWithException("custom:library"));
+ Source result = resolver.resolveAbsolute(Uri.parse("custom:library"));
expect(result, isNotNull);
expect(result.fullName, path);
}
@@ -146,7 +145,7 @@
}
void test_isDartUri_null_scheme() {
- Uri uri = parseUriWithException("foo.dart");
+ Uri uri = Uri.parse("foo.dart");
expect('', uri.scheme);
expect(DartUriResolver.isDartUri(uri), isFalse);
}
@@ -154,23 +153,22 @@
void test_resolve_dart() {
DartSdk sdk = _createSdk();
UriResolver resolver = new DartUriResolver(sdk);
- Source result =
- resolver.resolveAbsolute(parseUriWithException("dart:core"));
+ Source result = resolver.resolveAbsolute(Uri.parse("dart:core"));
expect(result, isNotNull);
}
void test_resolve_dart_nonExistingLibrary() {
DartSdk sdk = _createSdk();
UriResolver resolver = new DartUriResolver(sdk);
- Source result = resolver.resolveAbsolute(parseUriWithException("dart:cor"));
+ Source result = resolver.resolveAbsolute(Uri.parse("dart:cor"));
expect(result, isNull);
}
void test_resolve_nonDart() {
DartSdk sdk = _createSdk();
UriResolver resolver = new DartUriResolver(sdk);
- Source result = resolver
- .resolveAbsolute(parseUriWithException("package:some/file.dart"));
+ Source result =
+ resolver.resolveAbsolute(Uri.parse("package:some/file.dart"));
expect(result, isNull);
}
}
@@ -332,6 +330,7 @@
}
}
+@deprecated
@reflectiveTest
class DirectoryBasedSourceContainerTest {
void test_contains() {
@@ -738,7 +737,6 @@
expect(type.isMixinApplication, isFalse);
expect(type.isSynthetic, isFalse);
expect(type.documentationComment, '/// aaa');
- _assertHasDocRange(type, 50, 7);
_assertHasCodeRange(type, 50, 31);
}
@@ -1005,7 +1003,6 @@
expect(constructor, isNotNull);
_assertHasCodeRange(constructor, 50, 31);
expect(constructor.documentationComment, '/// aaa');
- _assertHasDocRange(constructor, 50, 7);
expect(constructor.isExternal, isFalse);
expect(constructor.isFactory, isFalse);
expect(constructor.name, "");
@@ -1208,7 +1205,6 @@
expect(enumElement, isNotNull);
_assertHasCodeRange(enumElement, 50, 31);
expect(enumElement.documentationComment, '/// aaa');
- _assertHasDocRange(enumElement, 50, 7);
expect(enumElement.name, enumName);
}
@@ -1234,7 +1230,6 @@
expect(firstField, isNotNull);
_assertHasCodeRange(firstField, 50, 61);
expect(firstField.documentationComment, '/// aaa');
- _assertHasDocRange(firstField, 50, 7);
expect(firstField.name, firstFieldName);
expect(firstField.initializer, isNull);
expect(firstField.isConst, isFalse);
@@ -1245,7 +1240,6 @@
expect(secondField, isNotNull);
_assertHasCodeRange(secondField, 50, 61);
expect(secondField.documentationComment, '/// aaa');
- _assertHasDocRange(secondField, 50, 7);
expect(secondField.name, secondFieldName);
expect(secondField.initializer, isNull);
expect(secondField.isConst, isFalse);
@@ -1366,7 +1360,6 @@
expect(accessor, isNotNull);
_assertHasCodeRange(accessor, 50, 31);
expect(accessor.documentationComment, '/// aaa');
- _assertHasDocRange(accessor, 50, 7);
expect(accessor.name, functionName);
expect(declaration.element, same(accessor));
expect(declaration.functionExpression.element, same(accessor));
@@ -1404,7 +1397,6 @@
expect(function, isNotNull);
_assertHasCodeRange(function, 50, 31);
expect(function.documentationComment, '/// aaa');
- _assertHasDocRange(function, 50, 7);
expect(function.hasImplicitReturnType, isFalse);
expect(function.name, functionName);
expect(declaration.element, same(function));
@@ -1436,7 +1428,6 @@
expect(accessor, isNotNull);
_assertHasCodeRange(accessor, 50, 31);
expect(accessor.documentationComment, '/// aaa');
- _assertHasDocRange(accessor, 50, 7);
expect(accessor.hasImplicitReturnType, isTrue);
expect(accessor.name, "$functionName=");
expect(declaration.element, same(accessor));
@@ -1517,7 +1508,6 @@
expect(alias, isNotNull);
_assertHasCodeRange(alias, 50, 31);
expect(alias.documentationComment, '/// aaa');
- _assertHasDocRange(alias, 50, 7);
expect(alias.name, aliasName);
expect(alias.parameters, hasLength(0));
List<TypeParameterElement> typeParameters = alias.typeParameters;
@@ -1718,7 +1708,6 @@
expect(getter, isNotNull);
_assertHasCodeRange(getter, 50, 31);
expect(getter.documentationComment, '/// aaa');
- _assertHasDocRange(getter, 50, 7);
expect(getter.hasImplicitReturnType, isTrue);
expect(getter.isAbstract, isFalse);
expect(getter.isExternal, isFalse);
@@ -1831,7 +1820,6 @@
expect(method, isNotNull);
_assertHasCodeRange(method, 50, 31);
expect(method.documentationComment, '/// aaa');
- _assertHasDocRange(method, 50, 7);
expect(method.hasImplicitReturnType, isFalse);
expect(method.name, methodName);
expect(method.functions, hasLength(0));
@@ -1908,7 +1896,6 @@
expect(setter, isNotNull);
_assertHasCodeRange(setter, 50, 31);
expect(setter.documentationComment, '/// aaa');
- _assertHasDocRange(setter, 50, 7);
expect(setter.hasImplicitReturnType, isTrue);
expect(setter.isAbstract, isFalse);
expect(setter.isExternal, isFalse);
@@ -2497,6 +2484,34 @@
expect(variable.setter, isNotNull);
}
+ void test_visitVariableDeclaration_top() {
+ // final a, b;
+ ElementHolder holder = new ElementHolder();
+ ElementBuilder builder = _makeBuilder(holder);
+ VariableDeclaration variableDeclaration1 =
+ AstFactory.variableDeclaration('a');
+ VariableDeclaration variableDeclaration2 =
+ AstFactory.variableDeclaration('b');
+ TopLevelVariableDeclaration topLevelVariableDeclaration = AstFactory
+ .topLevelVariableDeclaration(
+ Keyword.FINAL, null, [variableDeclaration1, variableDeclaration2]);
+ topLevelVariableDeclaration.documentationComment = AstFactory
+ .documentationComment(
+ [TokenFactory.tokenFromString('/// aaa')..offset = 50], []);
+
+ topLevelVariableDeclaration.accept(builder);
+ List<TopLevelVariableElement> variables = holder.topLevelVariables;
+ expect(variables, hasLength(2));
+
+ TopLevelVariableElement variable1 = variables[0];
+ expect(variable1, isNotNull);
+ expect(variable1.documentationComment, '/// aaa');
+
+ TopLevelVariableElement variable2 = variables[1];
+ expect(variable2, isNotNull);
+ expect(variable2.documentationComment, '/// aaa');
+ }
+
void test_visitVariableDeclaration_top_const_hasInitializer() {
// const v = 42;
ElementHolder holder = new ElementHolder();
@@ -2523,36 +2538,6 @@
expect(variable.setter, isNull);
}
- void test_visitVariableDeclaration_top_docRange() {
- // final a, b;
- ElementHolder holder = new ElementHolder();
- ElementBuilder builder = _makeBuilder(holder);
- VariableDeclaration variableDeclaration1 =
- AstFactory.variableDeclaration('a');
- VariableDeclaration variableDeclaration2 =
- AstFactory.variableDeclaration('b');
- TopLevelVariableDeclaration topLevelVariableDeclaration = AstFactory
- .topLevelVariableDeclaration(
- Keyword.FINAL, null, [variableDeclaration1, variableDeclaration2]);
- topLevelVariableDeclaration.documentationComment = AstFactory
- .documentationComment(
- [TokenFactory.tokenFromString('/// aaa')..offset = 50], []);
-
- topLevelVariableDeclaration.accept(builder);
- List<TopLevelVariableElement> variables = holder.topLevelVariables;
- expect(variables, hasLength(2));
-
- TopLevelVariableElement variable1 = variables[0];
- expect(variable1, isNotNull);
- expect(variable1.documentationComment, '/// aaa');
- _assertHasDocRange(variable1, 50, 7);
-
- TopLevelVariableElement variable2 = variables[1];
- expect(variable2, isNotNull);
- expect(variable2.documentationComment, '/// aaa');
- _assertHasDocRange(variable2, 50, 7);
- }
-
void test_visitVariableDeclaration_top_final() {
// final v;
ElementHolder holder = new ElementHolder();
@@ -2582,15 +2567,6 @@
expect(elementImpl.codeLength, length);
}
- void _assertHasDocRange(
- Element element, int expectedOffset, int expectedLength) {
- // Cast to dynamic here to avoid a hint about @deprecated docRange.
- SourceRange docRange = (element as dynamic).docRange;
- expect(docRange, isNotNull);
- expect(docRange.offset, expectedOffset);
- expect(docRange.length, expectedLength);
- }
-
void _assertVisibleRange(LocalElement element, int offset, int end) {
SourceRange visibleRange = element.visibleRange;
expect(visibleRange.offset, offset);
@@ -3044,16 +3020,9 @@
if (matchIndex == 0) {
return contents.indexOf(pattern);
}
- JavaPatternMatcher matcher =
- new JavaPatternMatcher(new RegExp(pattern), contents);
- int count = 0;
- while (matcher.find()) {
- if (count == matchIndex) {
- return matcher.start();
- }
- ++count;
- }
- return -1;
+ Iterable<Match> matches = new RegExp(pattern).allMatches(contents);
+ Match match = matches.toList()[matchIndex];
+ return match.start;
}
/**
@@ -3144,8 +3113,6 @@
expect(constant.isStatic, isTrue);
expect((constant as FieldElementImpl).evaluationResult, isNotNull);
expect(constant.documentationComment, '/// aaa');
- expect(constant.docRange.offset, 50);
- expect(constant.docRange.length, 7);
_assertGetter(constant);
}
@@ -4154,7 +4121,7 @@
_assertNthStatementDoesNotExit(source, 0);
}
- void test_whileStatement_breakWithLabel_afterExting() {
+ void test_whileStatement_breakWithLabel_afterExiting() {
Source source = addSource(r'''
void f() {
x: while (true) {
@@ -4341,8 +4308,7 @@
UriResolver resolver = new DartUriResolver(sdk);
SourceFactory factory = new SourceFactory([resolver]);
// resolve dart:core
- Source result =
- resolver.resolveAbsolute(parseUriWithException("dart:core"));
+ Source result = resolver.resolveAbsolute(Uri.parse("dart:core"));
expect(result, isNotNull);
expect(result.isInSystemLibrary, isTrue);
// system libraries reference only other system libraries
@@ -4377,8 +4343,7 @@
JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
FileBasedSource source = new FileBasedSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/b/lib.dart");
}
@@ -4393,8 +4358,7 @@
JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
FileBasedSource source = new FileBasedSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("c/lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("c/lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/b/c/lib.dart");
}
@@ -4408,16 +4372,14 @@
JavaFile file = FileUtilities2.createFile("/a/b/test.dart");
FileBasedSource source = new FileBasedSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("../c/lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("../c/lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/c/lib.dart");
}
void test_system() {
JavaFile file = FileUtilities2.createFile("/does/not/exist.dart");
- FileBasedSource source =
- new FileBasedSource(file, parseUriWithException("dart:core"));
+ FileBasedSource source = new FileBasedSource(file, Uri.parse("dart:core"));
expect(source, isNotNull);
expect(source.fullName, file.getAbsolutePath());
expect(source.isInSystemLibrary, isTrue);
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
index f506339..71b0aef 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_test.dart
@@ -1800,6 +1800,17 @@
verify([source]);
}
+ void test_duplicateDefinition_parameters_inConstructor() {
+ Source source = addSource(r'''
+class A {
+ int a;
+ A(int a, this.a);
+}''');
+ computeLibrarySourceErrors(source);
+ assertErrors(source, [CompileTimeErrorCode.DUPLICATE_DEFINITION]);
+ verify([source]);
+ }
+
void test_duplicateDefinition_parameters_inFunctionTypeAlias() {
Source source = addSource(r'''
typedef F(int a, double a);
@@ -2152,6 +2163,18 @@
verify([source]);
}
+ void test_fieldFormalParameter_assignedInInitializer() {
+ Source source = addSource(r'''
+class A {
+ int x;
+ A(this.x) : x = 3 {}
+}''');
+ computeLibrarySourceErrors(source);
+ assertErrors(source,
+ [CompileTimeErrorCode.FIELD_INITIALIZED_IN_PARAMETER_AND_INITIALIZER]);
+ verify([source]);
+ }
+
void test_fieldInitializedByMultipleInitializers() {
Source source = addSource(r'''
class A {
@@ -2334,6 +2357,7 @@
A(this.x, this.x) {}
}''');
computeLibrarySourceErrors(source);
+ // TODO(brianwilkerson) There should only be one error here.
assertErrors(source, [
CompileTimeErrorCode.DUPLICATE_DEFINITION,
CompileTimeErrorCode.FINAL_INITIALIZED_MULTIPLE_TIMES
diff --git a/pkg/analyzer/test/generated/engine_test.dart b/pkg/analyzer/test/generated/engine_test.dart
index f62c1b9..c98cfc9 100644
--- a/pkg/analyzer/test/generated/engine_test.dart
+++ b/pkg/analyzer/test/generated/engine_test.dart
@@ -17,7 +17,6 @@
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source_io.dart';
import 'package:analyzer/src/string_source.dart';
@@ -132,14 +131,6 @@
assertEvent(event, changedSources: [source]);
}
- void test_deleted() {
- var source = new StringSource('', '/test.dart');
- var changeSet = new ChangeSet();
- changeSet.deletedSource(source);
- var event = new SourcesChangedEvent(changeSet);
- assertEvent(event, wereSourcesRemovedOrDeleted: true);
- }
-
void test_empty() {
var changeSet = new ChangeSet();
var event = new SourcesChangedEvent(changeSet);
@@ -151,16 +142,16 @@
var changeSet = new ChangeSet();
changeSet.removedSource(source);
var event = new SourcesChangedEvent(changeSet);
- assertEvent(event, wereSourcesRemovedOrDeleted: true);
+ assertEvent(event, wereSourcesRemoved: true);
}
static void assertEvent(SourcesChangedEvent event,
{bool wereSourcesAdded: false,
List<Source> changedSources: Source.EMPTY_LIST,
- bool wereSourcesRemovedOrDeleted: false}) {
+ bool wereSourcesRemoved: false}) {
expect(event.wereSourcesAdded, wereSourcesAdded);
expect(event.changedSources, changedSources);
- expect(event.wereSourcesRemovedOrDeleted, wereSourcesRemovedOrDeleted);
+ expect(event.wereSourcesRemoved, wereSourcesRemoved);
}
}
@@ -178,7 +169,7 @@
SourcesChangedEventTest.assertEvent(actual,
wereSourcesAdded: wereSourcesAdded,
changedSources: changedSources,
- wereSourcesRemovedOrDeleted: wereSourcesRemovedOrDeleted);
+ wereSourcesRemoved: wereSourcesRemovedOrDeleted);
}
void assertNoMoreEvents() {
diff --git a/pkg/analyzer/test/generated/incremental_resolver_test.dart b/pkg/analyzer/test/generated/incremental_resolver_test.dart
index f529459..b9d0e78 100644
--- a/pkg/analyzer/test/generated/incremental_resolver_test.dart
+++ b/pkg/analyzer/test/generated/incremental_resolver_test.dart
@@ -7,6 +7,7 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/element/element.dart';
@@ -2113,8 +2114,6 @@
@reflectiveTest
class ResolutionContextBuilderTest extends EngineTestCase {
- GatheringErrorListener listener = new GatheringErrorListener();
-
void test_scopeFor_ClassDeclaration() {
Scope scope = _scopeFor(_createResolvedClassDeclaration());
EngineTestCase.assertInstanceOf(
@@ -2316,7 +2315,7 @@
}
Scope _scopeFor(AstNode node) {
- return ResolutionContextBuilder.contextFor(node, listener).scope;
+ return ResolutionContextBuilder.contextFor(node).scope;
}
}
diff --git a/pkg/analyzer/test/generated/incremental_scanner_test.dart b/pkg/analyzer/test/generated/incremental_scanner_test.dart
deleted file mode 100644
index 4464f5c..0000000
--- a/pkg/analyzer/test/generated/incremental_scanner_test.dart
+++ /dev/null
@@ -1,548 +0,0 @@
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-@deprecated
-library analyzer.test.generated.incremental_scanner_test;
-
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/src/dart/scanner/reader.dart';
-import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/incremental_scanner.dart';
-import 'package:analyzer/src/generated/source.dart';
-import 'package:test_reflective_loader/test_reflective_loader.dart';
-import 'package:unittest/unittest.dart';
-
-import '../utils.dart';
-import 'test_support.dart';
-
-main() {
- initializeTestEnvironment();
- defineReflectiveTests(IncrementalScannerTest);
-}
-
-@reflectiveTest
-class IncrementalScannerTest extends EngineTestCase {
- /**
- * The first token from the token stream resulting from parsing the original
- * source, or `null` if [scan] has not been invoked.
- */
- Token _originalTokens;
-
- /**
- * The scanner used to perform incremental scanning, or `null` if [scan] has
- * not been invoked.
- */
- IncrementalScanner _incrementalScanner;
-
- /**
- * The first token from the token stream resulting from performing an
- * incremental scan, or `null` if [scan] has not been invoked.
- */
- Token _incrementalTokens;
-
- void fail_insert_beginning() {
- // This is currently reporting the changed range as being from 0 to 5, but
- // that would force us to re-parse both classes, which is clearly
- // sub-optimal.
- //
- // "class B {}"
- // "class A {} class B {}"
- _scan("", "", "class A {} ", "class B {}");
- _assertTokens(-1, 4, ["class", "A", "{", "}", "class", "B", "{", "}"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void fail_insert_comment_afterIdentifier() {
- // "a + b"
- // "a /* TODO */ + b"
- _scan("a", "", " /* TODO */", " + b");
- _assertTokens(0, 1, ["a", "+", "b"]);
- _assertComments(1, ["/* TODO */"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void fail_insert_comment_beforeIdentifier() {
- // "a + b"
- // "a + /* TODO */ b"
- _scan("a + ", "", "/* TODO */ ", "b");
- _assertTokens(1, 2, ["a", "+", "b"]);
- _assertComments(2, ["/* TODO */"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void fail_insert_inComment() {
- // "a /* TO */ b"
- // "a /* TODO */ b"
- _scan("a /* TO", "", "DO", " */ b");
- _assertTokens(0, 1, ["a", "b"]);
- _assertComments(1, ["/* TODO */"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_delete_identifier_beginning() {
- // "abs + b;"
- // "s + b;"
- _scan("", "ab", "", "s + b;");
- _assertTokens(-1, 1, ["s", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_delete_identifier_end() {
- // "abs + b;"
- // "a + b;"
- _scan("a", "bs", "", " + b;");
- _assertTokens(-1, 1, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_delete_identifier_middle() {
- // "abs + b;"
- // "as + b;"
- _scan("a", "b", "", "s + b;");
- _assertTokens(-1, 1, ["as", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_delete_mergeTokens() {
- // "a + b + c;"
- // "ac;"
- _scan("a", " + b + ", "", "c;");
- _assertTokens(-1, 1, ["ac", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_delete_whitespace() {
- // "a + b + c;"
- // "a+ b + c;"
- _scan("a", " ", "", "+ b + c;");
- _assertTokens(1, 2, ["a", "+", "b", "+", "c", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_insert_convertOneFunctionToTwo_noOverlap() {
- // "f() {}"
- // "f() => 0; g() {}"
- _scan("f()", "", " => 0; g()", " {}");
- _assertTokens(
- 2, 9, ["f", "(", ")", "=>", "0", ";", "g", "(", ")", "{", "}"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_convertOneFunctionToTwo_overlap() {
- // "f() {}"
- // "f() {} g() {}"
- _scan("f() {", "", "} g() {", "}");
- _assertTokens(4, 10, ["f", "(", ")", "{", "}", "g", "(", ")", "{", "}"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_end() {
- // "class A {}"
- // "class A {} class B {}"
- _scan("class A {}", "", " class B {}", "");
- _assertTokens(3, 8, ["class", "A", "{", "}", "class", "B", "{", "}"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_identifierAndPeriod() {
- // "a + b;"
- // "a + x.b;"
- _scan("a + ", "", "x.", "b;");
- _assertTokens(1, 4, ["a", "+", "x", ".", "b", ";"]);
- }
-
- void test_insert_inIdentifier_left_firstToken() {
- // "a + b;"
- // "xa + b;"
- _scan("", "", "x", "a + b;");
- _assertTokens(-1, 1, ["xa", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_left_lastToken() {
- // "a + b"
- // "a + xb"
- _scan("a + ", "", "x", "b");
- _assertTokens(1, 3, ["a", "+", "xb"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_left_middleToken() {
- // "a + b;"
- // "a + xb;"
- _scan("a + ", "", "x", "b;");
- _assertTokens(1, 3, ["a", "+", "xb", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_middle() {
- // "cat;"
- // "cart;"
- _scan("ca", "", "r", "t;");
- _assertTokens(-1, 1, ["cart", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_right_firstToken() {
- // "a + b;"
- // "abs + b;"
- _scan("a", "", "bs", " + b;");
- _assertTokens(-1, 1, ["abs", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_right_lastToken() {
- // "a + b"
- // "a + bc"
- _scan("a + b", "", "c", "");
- _assertTokens(1, 3, ["a", "+", "bc"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_inIdentifier_right_middleToken() {
- // "a + b;"
- // "a + by;"
- _scan("a + b", "", "y", ";");
- _assertTokens(1, 3, ["a", "+", "by", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_newIdentifier_noSpaceBefore() {
- // "a; c;"
- // "a;b c;"
- _scan("a;", "", "b", " c;");
- _assertTokens(1, 3, ["a", ";", "b", "c", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_newIdentifier_spaceBefore() {
- // "a; c;"
- // "a; b c;"
- _scan("a; ", "", "b ", "c;");
- _assertTokens(1, 3, ["a", ";", "b", "c", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_period_afterIdentifier() {
- // "a + b;"
- // "a + b.;"
- _scan("a + b", "", ".", ";");
- _assertTokens(2, 4, ["a", "+", "b", ".", ";"]);
- }
-
- void test_insert_period_betweenIdentifiers_left() {
- // "a b;"
- // "a. b;"
- _scan("a", "", ".", " b;");
- _assertTokens(0, 2, ["a", ".", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_period_betweenIdentifiers_middle() {
- // "a b;"
- // "a . b;"
- _scan("a ", "", ".", " b;");
- _assertTokens(0, 2, ["a", ".", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_period_betweenIdentifiers_right() {
- // "a b;"
- // "a .b;"
- _scan("a ", "", ".", "b;");
- _assertTokens(0, 2, ["a", ".", "b", ";"]);
- }
-
- void test_insert_period_insideExistingIdentifier() {
- // "ab;"
- // "a.b;"
- _scan("a", "", ".", "b;");
- _assertTokens(-1, 3, ["a", ".", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_periodAndIdentifier() {
- // "a + b;"
- // "a + b.x;"
- _scan("a + b", "", ".x", ";");
- _assertTokens(2, 5, ["a", "+", "b", ".", "x", ";"]);
- }
-
- void test_insert_splitIdentifier() {
- // "cob;"
- // "cow.b;"
- _scan("co", "", "w.", "b;");
- _assertTokens(-1, 3, ["cow", ".", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_tokens_within_whitespace() {
- // "a ;"
- // "a +b ;"
- _scan("a ", "", "+b", " ;");
- _assertTokens(0, 3, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_insert_whitespace_beginning_beforeToken() {
- // "a + b;"
- // " a + b;"
- _scan("", "", " ", "a + b;");
- _assertTokens(0, 1, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_insert_whitespace_betweenTokens() {
- // "a + b;"
- // "a + b;"
- _scan("a ", "", " ", "+ b;");
- _assertTokens(1, 2, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_insert_whitespace_end_afterToken() {
- // "a + b;"
- // "a + b; "
- _scan("a + b;", "", " ", "");
- _assertTokens(3, 4, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_insert_whitespace_end_afterWhitespace() {
- // "a + b; "
- // "a + b; "
- _scan("a + b; ", "", " ", "");
- _assertTokens(3, 4, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_insert_whitespace_withMultipleComments() {
- // "//comment1", "//comment2", "a + b;"
- // "//comment1", "//comment2", "a + b;"
- _scan(
- r'''
-//comment1
-//comment2
-a''',
- "",
- " ",
- " + b;");
- _assertTokens(1, 2, ["a", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isFalse);
- }
-
- void test_replace_identifier_beginning() {
- // "bell + b;"
- // "fell + b;"
- _scan("", "b", "f", "ell + b;");
- _assertTokens(-1, 1, ["fell", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_replace_identifier_end() {
- // "bell + b;"
- // "belt + b;"
- _scan("bel", "l", "t", " + b;");
- _assertTokens(-1, 1, ["belt", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_replace_identifier_middle() {
- // "first + b;"
- // "frost + b;"
- _scan("f", "ir", "ro", "st + b;");
- _assertTokens(-1, 1, ["frost", "+", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_replace_multiple_partialFirstAndLast() {
- // "aa + bb;"
- // "ab * ab;"
- _scan("a", "a + b", "b * a", "b;");
- _assertTokens(-1, 3, ["ab", "*", "ab", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_replace_operator_oneForMany() {
- // "a + b;"
- // "a * c - b;"
- _scan("a ", "+", "* c -", " b;");
- _assertTokens(0, 4, ["a", "*", "c", "-", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- void test_replace_operator_oneForOne() {
- // "a + b;"
- // "a * b;"
- _scan("a ", "+", "*", " b;");
- _assertTokens(0, 2, ["a", "*", "b", ";"]);
- expect(_incrementalScanner.hasNonWhitespaceChange, isTrue);
- }
-
- /**
- * Assert that the comments associated with the token at the given [index]
- * have lexemes that match the given list of lexemes, both in number and in
- * content.
- */
- void _assertComments(int index, List<String> lexemes) {
- Token token = _incrementalTokens;
- for (int i = 0; i < index; i++) {
- token = token.next;
- }
- Token comment = token.precedingComments;
- if (lexemes.isEmpty) {
- expect(comment, isNull,
- reason: "No comments expected but comments found");
- }
- int count = 0;
- for (String lexeme in lexemes) {
- if (comment == null) {
- fail("Expected ${lexemes.length} comments but found $count");
- }
- expect(comment.lexeme, lexeme);
- count++;
- comment = comment.next;
- }
- if (comment != null) {
- while (comment != null) {
- count++;
- comment = comment.next;
- }
- fail("Expected ${lexemes.length} comments but found $count");
- }
- }
-
- /**
- * Assert that the [expected] token is equal to the [actual] token.
- */
- void _assertEqualTokens(Token actual, Token expected) {
- expect(actual.type, same(expected.type), reason: "Wrong type for token");
- expect(actual.lexeme, expected.lexeme, reason: "Wrong lexeme for token");
- expect(actual.offset, expected.offset,
- reason:
- "Wrong offset for token ('${actual.lexeme}' != '${expected.lexeme}')");
- expect(actual.length, expected.length,
- reason:
- "Wrong length for token ('${actual.lexeme}' != '${expected.lexeme}')");
- }
-
- /**
- * Assert that the result of the incremental scan matches the given list of
- * [lexemes] and that the left and right tokens correspond to the tokens at
- * the [leftIndex] and [rightIndex].
- */
- void _assertTokens(int leftIndex, int rightIndex, List<String> lexemes) {
- int count = lexemes.length;
- expect(leftIndex >= -1 && leftIndex < count, isTrue,
- reason: "Invalid left index");
- expect(rightIndex >= 0 && rightIndex <= count, isTrue,
- reason: "Invalid right index");
- Token leftToken = null;
- Token rightToken = null;
- Token token = _incrementalTokens;
- if (leftIndex < 0) {
- leftToken = token.previous;
- }
- for (int i = 0; i < count; i++) {
- expect(token.lexeme, lexemes[i]);
- if (i == leftIndex) {
- leftToken = token;
- }
- if (i == rightIndex) {
- rightToken = token;
- }
- token = token.next;
- }
- if (rightIndex >= count) {
- rightToken = token;
- }
- expect(token.type, same(TokenType.EOF), reason: "Too many tokens");
- if (leftIndex >= 0) {
- expect(leftToken, isNotNull);
- }
- expect(_incrementalScanner.leftToken, same(leftToken),
- reason: "Invalid left token");
- if (rightIndex >= 0) {
- expect(rightToken, isNotNull);
- }
- expect(_incrementalScanner.rightToken, same(rightToken),
- reason: "Invalid right token");
- }
-
- /**
- * Given a description of the original and modified contents, perform an
- * incremental scan of the two pieces of text. Verify that the incremental
- * scan produced the same tokens as those that would be produced by a full
- * scan of the new contents.
- *
- * The original content is the concatenation of the [prefix], [removed] and
- * [suffix] fragments. The modeified content is the concatenation of the
- * [prefix], [added] and [suffix] fragments.
- */
- void _scan(String prefix, String removed, String added, String suffix) {
- //
- // Compute the information needed to perform the test.
- //
- String originalContents = "$prefix$removed$suffix";
- String modifiedContents = "$prefix$added$suffix";
- int replaceStart = prefix.length;
- Source source = new TestSource();
- //
- // Scan the original contents.
- //
- GatheringErrorListener originalListener = new GatheringErrorListener();
- Scanner originalScanner = new Scanner(
- source, new CharSequenceReader(originalContents), originalListener);
- _originalTokens = originalScanner.tokenize();
- expect(_originalTokens, isNotNull);
- //
- // Scan the modified contents.
- //
- GatheringErrorListener modifiedListener = new GatheringErrorListener();
- Scanner modifiedScanner = new Scanner(
- source, new CharSequenceReader(modifiedContents), modifiedListener);
- Token modifiedTokens = modifiedScanner.tokenize();
- expect(modifiedTokens, isNotNull);
- //
- // Incrementally scan the modified contents.
- //
- GatheringErrorListener incrementalListener = new GatheringErrorListener();
- AnalysisOptionsImpl options = new AnalysisOptionsImpl();
- _incrementalScanner = new IncrementalScanner(source,
- new CharSequenceReader(modifiedContents), incrementalListener, options);
- _incrementalTokens = _incrementalScanner.rescan(
- _originalTokens, replaceStart, removed.length, added.length);
- //
- // Validate that the results of the incremental scan are the same as the
- // full scan of the modified source.
- //
- Token incrementalToken = _incrementalTokens;
- expect(incrementalToken, isNotNull);
- while (incrementalToken.type != TokenType.EOF &&
- modifiedTokens.type != TokenType.EOF) {
- _assertEqualTokens(incrementalToken, modifiedTokens);
- Token incrementalComment = incrementalToken.precedingComments;
- Token modifiedComment = modifiedTokens.precedingComments;
- while (incrementalComment != null && modifiedComment != null) {
- _assertEqualTokens(incrementalComment, modifiedComment);
- incrementalComment = incrementalComment.next;
- modifiedComment = modifiedComment.next;
- }
- expect(incrementalComment, isNull,
- reason:
- "Too many comment tokens preceeding '${incrementalToken.lexeme}'");
- expect(modifiedComment, isNull,
- reason:
- "Not enough comment tokens preceeding '${incrementalToken.lexeme}'");
- incrementalToken = incrementalToken.next;
- modifiedTokens = modifiedTokens.next;
- }
- expect(incrementalToken.type, same(TokenType.EOF),
- reason: "Too many tokens");
- expect(modifiedTokens.type, same(TokenType.EOF),
- reason: "Not enough tokens");
- // TODO(brianwilkerson) Verify that the errors are correct?
- }
-}
diff --git a/pkg/analyzer/test/generated/parser_test.dart b/pkg/analyzer/test/generated/parser_test.dart
index 596fb0e..38d3464 100644
--- a/pkg/analyzer/test/generated/parser_test.dart
+++ b/pkg/analyzer/test/generated/parser_test.dart
@@ -8,14 +8,10 @@
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/src/dart/ast/token.dart';
-import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/incremental_scanner.dart';
import 'package:analyzer/src/generated/parser.dart';
-import 'package:analyzer/src/generated/source.dart' show Source;
import 'package:analyzer/src/generated/testing/ast_factory.dart';
import 'package:analyzer/src/generated/testing/token_factory.dart';
import 'package:analyzer/src/generated/utilities_dart.dart';
@@ -29,8 +25,6 @@
initializeTestEnvironment();
defineReflectiveTests(ComplexParserTest);
defineReflectiveTests(ErrorParserTest);
- // ignore: deprecated_member_use
- defineReflectiveTests(IncrementalParserTest);
defineReflectiveTests(NonErrorParserTest);
defineReflectiveTests(RecoveryParserTest);
defineReflectiveTests(SimpleParserTest);
@@ -2367,383 +2361,6 @@
}
}
-@deprecated
-@reflectiveTest
-class IncrementalParserTest extends EngineTestCase {
- void fail_replace_identifier_with_functionLiteral_in_initializer_interp() {
- // TODO(paulberry, brianwilkerson): broken due to incremental scanning bugs
-
- // Function literals are allowed inside interpolation expressions in
- // initializers.
- //
- // 'class A { var a; A(b) : a = "${b}";'
- // 'class A { var a; A(b) : a = "${() {}}";'
- _assertParse(r'class A { var a; A(b) : a = "${', 'b', '() {}', '}";');
- }
-
- void test_delete_everything() {
- // "f() => a + b;"
- // ""
- _assertParse("", "f() => a + b;", "", "");
- }
-
- void test_delete_identifier_beginning() {
- // "f() => abs + b;"
- // "f() => s + b;"
- _assertParse("f() => ", "ab", "", "s + b;");
- }
-
- void test_delete_identifier_end() {
- // "f() => abs + b;"
- // "f() => a + b;"
- _assertParse("f() => a", "bs", "", " + b;");
- }
-
- void test_delete_identifier_middle() {
- // "f() => abs + b;"
- // "f() => as + b;"
- _assertParse("f() => a", "b", "", "s + b;");
- }
-
- void test_delete_mergeTokens() {
- // "f() => a + b + c;"
- // "f() => ac;"
- _assertParse("f() => a", " + b + ", "", "c;");
- }
-
- void test_insert_afterIdentifier1() {
- // "f() => a + b;"
- // "f() => abs + b;"
- _assertParse("f() => a", "", "bs", " + b;");
- }
-
- void test_insert_afterIdentifier2() {
- // "f() => a + b;"
- // "f() => a + bar;"
- _assertParse("f() => a + b", "", "ar", ";");
- }
-
- void test_insert_beforeIdentifier1() {
- // "f() => a + b;"
- // "f() => xa + b;"
- _assertParse("f() => ", "", "x", "a + b;");
- }
-
- void test_insert_beforeIdentifier2() {
- // "f() => a + b;"
- // "f() => a + xb;"
- _assertParse("f() => a + ", "", "x", "b;");
- }
-
- void test_insert_convertOneFunctionToTwo() {
- // "f() {}"
- // "f() => 0; g() {}"
- _assertParse("f()", "", " => 0; g()", " {}");
- }
-
- void test_insert_end() {
- // "class A {}"
- // "class A {} class B {}"
- _assertParse("class A {}", "", " class B {}", "");
- }
-
- void test_insert_final_before_field_declaration() {
- _assertParse('class C { ', '', 'final ', 'int x; }');
- }
-
- void test_insert_function_parameter() {
- _assertParse('class C { void f(', '', 'arg', ') {} }');
- }
-
- void test_insert_identifier_inCombinator() {
- _assertParse("import 'foo.dart' show x", "", ", y", ";");
- }
-
- void test_insert_insideClassBody() {
- // "class C {C(); }"
- // "class C { C(); }"
- _assertParse("class C {", "", " ", "C(); }");
- }
-
- void test_insert_insideIdentifier() {
- // "f() => cob;"
- // "f() => cow.b;"
- _assertParse("f() => co", "", "w.", "b;");
- }
-
- void test_insert_newIdentifier1() {
- // "f() => a; c;"
- // "f() => a; b c;"
- _assertParse("f() => a;", "", " b", " c;");
- }
-
- void test_insert_newIdentifier2() {
- // "f() => a; c;"
- // "f() => a;b c;"
- _assertParse("f() => a;", "", "b", " c;");
- }
-
- void test_insert_newIdentifier3() {
- // "/** A simple function. */ f() => a; c;"
- // "/** A simple function. */ f() => a; b c;"
- _assertParse("/** A simple function. */ f() => a;", "", " b", " c;");
- }
-
- void test_insert_newIdentifier4() {
- // "/** An [A]. */ class A {} class B { m() { return 1; } }"
- // "/** An [A]. */ class A {} class B { m() { return 1 + 2; } }"
- _assertParse("/** An [A]. */ class A {} class B { m() { return 1", "",
- " + 2", "; } }");
- }
-
- void test_insert_period() {
- // "f() => a + b;"
- // "f() => a + b.;"
- _assertParse("f() => a + b", "", ".", ";");
- }
-
- void test_insert_period_betweenIdentifiers1() {
- // "f() => a b;"
- // "f() => a. b;"
- _assertParse("f() => a", "", ".", " b;");
- }
-
- void test_insert_period_betweenIdentifiers2() {
- // "f() => a b;"
- // "f() => a .b;"
- _assertParse("f() => a ", "", ".", "b;");
- }
-
- void test_insert_period_betweenIdentifiers3() {
- // "f() => a b;"
- // "f() => a . b;"
- _assertParse("f() => a ", "", ".", " b;");
- }
-
- void test_insert_period_insideExistingIdentifier() {
- // "f() => ab;"
- // "f() => a.b;"
- _assertParse("f() => a", "", ".", "b;");
- }
-
- void test_insert_periodAndIdentifier() {
- // "f() => a + b;"
- // "f() => a + b.x;"
- _assertParse("f() => a + b", "", ".x", ";");
- }
-
- void test_insert_simpleToComplexExression() {
- // "/** An [A]. */ class A {} class B { m() => 1; }"
- // "/** An [A]. */ class A {} class B { m() => 1 + 2; }"
- _assertParse(
- "/** An [A]. */ class A {} class B { m() => 1", "", " + 2", "; }");
- }
-
- void test_insert_statement_in_method_with_mismatched_braces() {
- _assertParse(
- '''
-class C {
- void f() {
-''',
- '',
- 'g();',
- '''
- if (b) {
-
-
- }
-
- void g() {
- h((x) {});
- }
-}
-''');
- }
-
- void test_insert_whitespace_end() {
- // "f() => a + b;"
- // "f() => a + b; "
- _assertParse("f() => a + b;", "", " ", "");
- }
-
- void test_insert_whitespace_end_multiple() {
- // "f() => a + b;"
- // "f() => a + b; "
- _assertParse("f() => a + b;", "", " ", "");
- }
-
- void test_insert_whitespace_middle() {
- // "f() => a + b;"
- // "f() => a + b;"
- _assertParse("f() => a", "", " ", " + b;");
- }
-
- void test_rename_class_withConstructor() {
- // "class C { C() {} }"
- // "class D { C() {} }"
- _assertParse('class ', 'C', 'D', ' { C() {} }');
- }
-
- void test_replace_field_type_with_void() {
- // Note: this produces an error, but we still need the parser to produce a
- // consistent parse tree for it.
- _assertParse('class C { ', 'int', 'void', ' x; }');
- }
-
- void test_replace_identifier_beginning() {
- // "f() => bell + b;"
- // "f() => fell + b;"
- _assertParse("f() => ", "b", "f", "ell + b;");
- }
-
- void test_replace_identifier_end() {
- // "f() => bell + b;"
- // "f() => belt + b;"
- _assertParse("f() => bel", "l", "t", " + b;");
- }
-
- void test_replace_identifier_middle() {
- // "f() => first + b;"
- // "f() => frost + b;"
- _assertParse("f() => f", "ir", "ro", "st + b;");
- }
-
- void test_replace_identifier_with_functionLiteral_in_initializer() {
- // Function literals aren't allowed inside initializers; incremental parsing
- // needs to gather the appropriate context.
- //
- // "class A { var a; A(b) : a = b ? b : 0 { } }"
- // "class A { var a; A(b) : a = b ? () {} : 0 { } }"
- _assertParse(
- "class A { var a; A(b) : a = b ? ", "b", "() {}", " : 0 { } }");
- }
-
- void test_replace_identifier_with_functionLiteral_in_initializer_index() {
- // Function literals are allowed inside index expressions in initializers.
- //
- // "class A { var a; A(b) : a = b[b];"
- // "class A { var a; A(b) : a = b[() {}];"
- _assertParse('class A { var a; A(b) : a = b[', 'b', '() {}', '];');
- }
-
- void test_replace_identifier_with_functionLiteral_in_initializer_list() {
- // Function literals are allowed inside list literals in initializers.
- //
- // "class A { var a; A(b) : a = [b];"
- // "class A { var a; A(b) : a = [() {}];"
- _assertParse('class A { var a; A(b) : a = [', 'b', '() {}', '];');
- }
-
- void test_replace_identifier_with_functionLiteral_in_initializer_map() {
- // Function literals are allowed inside map literals in initializers.
- //
- // "class A { var a; A(b) : a = {0: b};"
- // "class A { var a; A(b) : a = {0: () {}};"
- _assertParse('class A { var a; A(b) : a = {0: ', 'b', '() {}', '};');
- }
-
- void test_replace_identifier_with_functionLiteral_in_initializer_parens() {
- // Function literals are allowed inside parentheses in initializers.
- //
- // "class A { var a; A(b) : a = (b);"
- // "class A { var a; A(b) : a = (() {});"
- _assertParse('class A { var a; A(b) : a = (', 'b', '() {}', ');');
- }
-
- void test_replace_multiple_partialFirstAndLast() {
- // "f() => aa + bb;"
- // "f() => ab * ab;"
- _assertParse("f() => a", "a + b", "b * a", "b;");
- }
-
- void test_replace_operator_oneForMany() {
- // "f() => a + b;"
- // "f() => a * c - b;"
- _assertParse("f() => a ", "+", "* c -", " b;");
- }
-
- void test_replace_operator_oneForOne() {
- // "f() => a + b;"
- // "f() => a * b;"
- _assertParse("f() => a ", "+", "*", " b;");
- }
-
- void test_split_combinator() {
- // "import 'foo.dart' show A;"
- // "import 'foo.dart' show B hide A;"
- _assertParse("import 'foo.dart' show ", "", "B hide ", "A;");
- }
-
- /**
- * Given a description of the original and modified contents, perform an incremental scan of the
- * two pieces of text.
- *
- * @param prefix the unchanged text before the edit region
- * @param removed the text that was removed from the original contents
- * @param added the text that was added to the modified contents
- * @param suffix the unchanged text after the edit region
- */
- void _assertParse(
- String prefix, String removed, String added, String suffix) {
- //
- // Compute the information needed to perform the test.
- //
- String originalContents = "$prefix$removed$suffix";
- String modifiedContents = "$prefix$added$suffix";
- int replaceStart = prefix.length;
- Source source = new TestSource();
- //
- // Parse the original contents.
- //
- GatheringErrorListener originalListener = new GatheringErrorListener();
- Scanner originalScanner = new Scanner(
- source, new CharSequenceReader(originalContents), originalListener);
- Token originalTokens = originalScanner.tokenize();
- expect(originalTokens, isNotNull);
- Parser originalParser = new Parser(source, originalListener);
- CompilationUnit originalUnit =
- originalParser.parseCompilationUnit(originalTokens);
- expect(originalUnit, isNotNull);
- //
- // Parse the modified contents.
- //
- GatheringErrorListener modifiedListener = new GatheringErrorListener();
- Scanner modifiedScanner = new Scanner(
- source, new CharSequenceReader(modifiedContents), modifiedListener);
- Token modifiedTokens = modifiedScanner.tokenize();
- expect(modifiedTokens, isNotNull);
- Parser modifiedParser = new Parser(source, modifiedListener);
- CompilationUnit modifiedUnit =
- modifiedParser.parseCompilationUnit(modifiedTokens);
- expect(modifiedUnit, isNotNull);
- //
- // Incrementally parse the modified contents.
- //
- GatheringErrorListener incrementalListener = new GatheringErrorListener();
- AnalysisOptionsImpl options = new AnalysisOptionsImpl();
- IncrementalScanner incrementalScanner = new IncrementalScanner(source,
- new CharSequenceReader(modifiedContents), incrementalListener, options);
- Token incrementalTokens = incrementalScanner.rescan(
- originalTokens, replaceStart, removed.length, added.length);
- expect(incrementalTokens, isNotNull);
- IncrementalParser incrementalParser = new IncrementalParser(
- source, incrementalScanner.tokenMap, incrementalListener);
- CompilationUnit incrementalUnit = incrementalParser.reparse(
- originalUnit,
- incrementalScanner.leftToken,
- incrementalScanner.rightToken,
- replaceStart,
- prefix.length + removed.length);
- expect(incrementalUnit, isNotNull);
- //
- // Validate that the results of the incremental parse are the same as the
- // full parse of the modified source.
- //
- expect(AstComparator.equalNodes(modifiedUnit, incrementalUnit), isTrue);
- // TODO(brianwilkerson) Verify that the errors are correct?
- }
-}
-
@reflectiveTest
class NonErrorParserTest extends ParserTestCase {
void test_constFactory_external() {
diff --git a/pkg/analyzer/test/generated/resolver_test.dart b/pkg/analyzer/test/generated/resolver_test.dart
index 006ef07..db8f4cf 100644
--- a/pkg/analyzer/test/generated/resolver_test.dart
+++ b/pkg/analyzer/test/generated/resolver_test.dart
@@ -17,7 +17,6 @@
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/parser.dart' show ParserErrorCode;
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -106,7 +105,6 @@
expect(map, hasLength(1));
expect(map[source], same(content));
expect(changeSet.changedRanges, hasLength(0));
- expect(changeSet.deletedSources, hasLength(0));
expect(changeSet.removedSources, hasLength(0));
expect(changeSet.removedContainers, hasLength(0));
}
@@ -127,7 +125,6 @@
expect(change.offset, 1);
expect(change.oldLength, 2);
expect(change.newLength, 3);
- expect(changeSet.deletedSources, hasLength(0));
expect(changeSet.removedSources, hasLength(0));
expect(changeSet.removedContainers, hasLength(0));
}
@@ -138,7 +135,6 @@
changeSet.changedSource(new TestSource());
changeSet.changedContent(new TestSource(), "");
changeSet.changedRange(new TestSource(), "", 0, 0, 0);
- changeSet.deletedSource(new TestSource());
changeSet.removedSource(new TestSource());
changeSet
.removedContainer(new SourceContainer_ChangeSetTest_test_toString());
@@ -194,30 +190,14 @@
@reflectiveTest
class EnclosedScopeTest extends ResolverTestCase {
void test_define_duplicate() {
- GatheringErrorListener listener = new GatheringErrorListener();
- Scope rootScope =
- new Scope_EnclosedScopeTest_test_define_duplicate(listener);
+ Scope rootScope = new _RootScope();
EnclosedScope scope = new EnclosedScope(rootScope);
- SimpleIdentifier identifier = AstFactory.identifier3("v1");
+ SimpleIdentifier identifier = AstFactory.identifier3('v');
VariableElement element1 = ElementFactory.localVariableElement(identifier);
VariableElement element2 = ElementFactory.localVariableElement(identifier);
scope.define(element1);
scope.define(element2);
- expect(scope.lookup(identifier, null), element1);
- }
-
- void test_define_normal() {
- GatheringErrorListener listener = new GatheringErrorListener();
- Scope rootScope = new Scope_EnclosedScopeTest_test_define_normal(listener);
- EnclosedScope outerScope = new EnclosedScope(rootScope);
- EnclosedScope innerScope = new EnclosedScope(outerScope);
- VariableElement element1 =
- ElementFactory.localVariableElement(AstFactory.identifier3("v1"));
- VariableElement element2 =
- ElementFactory.localVariableElement(AstFactory.identifier3("v2"));
- outerScope.define(element1);
- innerScope.define(element2);
- listener.assertNoErrors();
+ expect(scope.lookup(identifier, null), same(element1));
}
}
@@ -434,54 +414,16 @@
}
}
-class Scope_EnclosedScopeTest_test_define_duplicate extends Scope {
- GatheringErrorListener listener;
-
- Scope_EnclosedScopeTest_test_define_duplicate(this.listener) : super();
-
- @override
- AnalysisErrorListener get errorListener => listener;
-
- @override
- Element internalLookup(Identifier identifier, String name,
- LibraryElement referencingLibrary) =>
- null;
-}
-
-class Scope_EnclosedScopeTest_test_define_normal extends Scope {
- GatheringErrorListener listener;
-
- Scope_EnclosedScopeTest_test_define_normal(this.listener) : super();
-
- @override
- AnalysisErrorListener get errorListener => listener;
-
- @override
- Element internalLookup(Identifier identifier, String name,
- LibraryElement referencingLibrary) =>
- null;
-}
-
@reflectiveTest
class ScopeTest extends ResolverTestCase {
void test_define_duplicate() {
- ScopeTest_TestScope scope = new ScopeTest_TestScope();
- SimpleIdentifier identifier = AstFactory.identifier3("v1");
+ Scope scope = new _RootScope();
+ SimpleIdentifier identifier = AstFactory.identifier3('v');
VariableElement element1 = ElementFactory.localVariableElement(identifier);
VariableElement element2 = ElementFactory.localVariableElement(identifier);
scope.define(element1);
scope.define(element2);
- expect(scope.lookup(identifier, null), element1);
- }
-
- void test_define_normal() {
- ScopeTest_TestScope scope = new ScopeTest_TestScope();
- VariableElement element1 =
- ElementFactory.localVariableElement(AstFactory.identifier3("v1"));
- VariableElement element2 =
- ElementFactory.localVariableElement(AstFactory.identifier3("v2"));
- scope.define(element1);
- scope.define(element2);
+ expect(scope.localLookup('v', null), same(element1));
}
void test_isPrivateName_nonPrivate() {
@@ -493,22 +435,6 @@
}
}
-/**
- * A non-abstract subclass that can be used for testing purposes.
- */
-class ScopeTest_TestScope extends Scope {
- ScopeTest_TestScope();
-
- @deprecated
- @override
- AnalysisErrorListener get errorListener => null;
-
- @override
- Element internalLookup(Identifier identifier, String name,
- LibraryElement referencingLibrary) =>
- localLookup(name, referencingLibrary);
-}
-
class SourceContainer_ChangeSetTest_test_toString implements SourceContainer {
@override
bool contains(Source source) => false;
@@ -3373,6 +3299,13 @@
}
}
+class _RootScope extends Scope {
+ @override
+ Element internalLookup(Identifier identifier, String name,
+ LibraryElement referencingLibrary) =>
+ null;
+}
+
/**
* Represents an element left over from a previous resolver run.
*
diff --git a/pkg/analyzer/test/generated/resolver_test_case.dart b/pkg/analyzer/test/generated/resolver_test_case.dart
index 10b0b97..4dfa5c7 100644
--- a/pkg/analyzer/test/generated/resolver_test_case.dart
+++ b/pkg/analyzer/test/generated/resolver_test_case.dart
@@ -13,7 +13,6 @@
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source_io.dart';
diff --git a/pkg/analyzer/test/generated/simple_resolver_test.dart b/pkg/analyzer/test/generated/simple_resolver_test.dart
index 6486ae4..9431dea 100644
--- a/pkg/analyzer/test/generated/simple_resolver_test.dart
+++ b/pkg/analyzer/test/generated/simple_resolver_test.dart
@@ -8,9 +8,9 @@
import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source_io.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'package:unittest/unittest.dart';
@@ -656,11 +656,29 @@
}
void test_fieldFormalParameter() {
+ AnalysisOptionsImpl options = new AnalysisOptionsImpl();
+ options.enableInitializingFormalAccess = true;
+ resetWithOptions(options);
Source source = addSource(r'''
class A {
int x;
- A(this.x) {}
+ int y;
+ A(this.x) : y = x {}
}''');
+ CompilationUnit unit =
+ analysisContext2.resolveCompilationUnit2(source, source);
+ ClassDeclaration classA = unit.declarations[0];
+ FieldDeclaration field = classA.members[0];
+ ConstructorDeclaration constructor = classA.members[2];
+ ParameterElement paramElement =
+ constructor.parameters.parameters[0].element;
+ expect(paramElement, new isInstanceOf<FieldFormalParameterElement>());
+ expect((paramElement as FieldFormalParameterElement).field,
+ field.fields.variables[0].element);
+ ConstructorFieldInitializer initializer = constructor.initializers[0];
+ SimpleIdentifier identifierX = initializer.expression;
+ expect(identifierX.staticElement, paramElement);
+
computeLibrarySourceErrors(source);
assertNoErrors(source);
verify([source]);
diff --git a/pkg/analyzer/test/generated/source_factory_test.dart b/pkg/analyzer/test/generated/source_factory_test.dart
index c8eb8f2..bc1e830 100644
--- a/pkg/analyzer/test/generated/source_factory_test.dart
+++ b/pkg/analyzer/test/generated/source_factory_test.dart
@@ -10,7 +10,6 @@
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
import 'package:analyzer/src/generated/engine.dart' show AnalysisEngine, Logger;
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -317,7 +316,7 @@
File file2 = resourceProvider.getFile("/some/file2.dart");
Source source1 = new FileSource(file1);
Source source2 = new FileSource(file2);
- Uri expected1 = parseUriWithException("file:///my_file.dart");
+ Uri expected1 = Uri.parse("file:///my_file.dart");
SourceFactory factory =
new SourceFactory([new UriResolver_restoreUri(source1, expected1)]);
expect(factory.restoreUri(source1), same(expected1));
diff --git a/pkg/analyzer/test/generated/test_all.dart b/pkg/analyzer/test/generated/test_all.dart
index 01ccba9..8aead2a 100644
--- a/pkg/analyzer/test/generated/test_all.dart
+++ b/pkg/analyzer/test/generated/test_all.dart
@@ -19,7 +19,6 @@
import 'error_suppression_test.dart' as error_suppression_test;
import 'hint_code_test.dart' as hint_code_test;
import 'incremental_resolver_test.dart' as incremental_resolver_test;
-import 'incremental_scanner_test.dart' as incremental_scanner_test;
import 'inheritance_manager_test.dart' as inheritance_manager_test;
import 'java_core_test.dart' as java_core_test;
import 'java_io_test.dart' as java_io_test;
@@ -53,7 +52,6 @@
error_suppression_test.main();
hint_code_test.main();
incremental_resolver_test.main();
- incremental_scanner_test.main();
inheritance_manager_test.main();
java_core_test.main();
java_io_test.main();
diff --git a/pkg/analyzer/test/generated/test_support.dart b/pkg/analyzer/test/generated/test_support.dart
index c113838..caf5f36 100644
--- a/pkg/analyzer/test/generated/test_support.dart
+++ b/pkg/analyzer/test/generated/test_support.dart
@@ -9,6 +9,7 @@
import 'package:analyzer/dart/ast/ast.dart' show AstNode, SimpleIdentifier;
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
diff --git a/pkg/analyzer/test/generated/utilities_test.dart b/pkg/analyzer/test/generated/utilities_test.dart
index 3dc407d..8e23ae1 100644
--- a/pkg/analyzer/test/generated/utilities_test.dart
+++ b/pkg/analyzer/test/generated/utilities_test.dart
@@ -12,7 +12,6 @@
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/scanner/reader.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/parser.dart';
import 'package:analyzer/src/generated/source.dart';
diff --git a/pkg/analyzer/test/resource_utils.dart b/pkg/analyzer/test/resource_utils.dart
index 688eae0..ef01daf 100644
--- a/pkg/analyzer/test/resource_utils.dart
+++ b/pkg/analyzer/test/resource_utils.dart
@@ -5,7 +5,7 @@
library analyzer.test.resource_utils;
import 'dart:async';
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
diff --git a/pkg/analyzer/test/source/analysis_options_provider_test.dart b/pkg/analyzer/test/source/analysis_options_provider_test.dart
index 6382564..adbadc7 100644
--- a/pkg/analyzer/test/source/analysis_options_provider_test.dart
+++ b/pkg/analyzer/test/source/analysis_options_provider_test.dart
@@ -4,7 +4,7 @@
library analyzer.test.source.analysis_options_provider_test;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
diff --git a/pkg/analyzer/test/source/embedder_test.dart b/pkg/analyzer/test/source/embedder_test.dart
index f217821..8773f09 100644
--- a/pkg/analyzer/test/source/embedder_test.dart
+++ b/pkg/analyzer/test/source/embedder_test.dart
@@ -5,7 +5,7 @@
@deprecated
library analyzer.test.source.embedder_test;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'package:analyzer/source/embedder.dart';
import 'package:analyzer/src/generated/sdk.dart';
diff --git a/pkg/analyzer/test/src/context/cache_test.dart b/pkg/analyzer/test/src/context/cache_test.dart
index 369cbdd..914a674b 100644
--- a/pkg/analyzer/test/src/context/cache_test.dart
+++ b/pkg/analyzer/test/src/context/cache_test.dart
@@ -4,6 +4,7 @@
library analyzer.test.src.context.cache_test;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
@@ -11,7 +12,6 @@
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_collection.dart';
import 'package:analyzer/src/task/model.dart';
diff --git a/pkg/analyzer/test/src/context/context_test.dart b/pkg/analyzer/test/src/context/context_test.dart
index 7f86af5..490ba81 100644
--- a/pkg/analyzer/test/src/context/context_test.dart
+++ b/pkg/analyzer/test/src/context/context_test.dart
@@ -11,6 +11,7 @@
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/visitor.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/source/package_map_resolver.dart';
@@ -21,7 +22,6 @@
import 'package:analyzer/src/dart/scanner/scanner.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/utilities_collection.dart';
@@ -2494,9 +2494,6 @@
LibraryElement library = compilationUnit.element.library;
List<LibraryElement> importedLibraries = library.importedLibraries;
assertNamedElements(importedLibraries, ["dart.core", "libB"]);
- List<LibraryElement> visibleLibraries = library.visibleLibraries;
- assertNamedElements(visibleLibraries,
- ["dart.core", "dart.async", "dart.math", "libA", "libB"]);
}
void test_resolveCompilationUnit_import_relative_cyclic() {
@@ -2509,9 +2506,6 @@
LibraryElement library = compilationUnit.element.library;
List<LibraryElement> importedLibraries = library.importedLibraries;
assertNamedElements(importedLibraries, ["dart.core", "libB"]);
- List<LibraryElement> visibleLibraries = library.visibleLibraries;
- assertNamedElements(visibleLibraries,
- ["dart.core", "dart.async", "dart.math", "libA", "libB"]);
}
// void test_resolveCompilationUnit_sourceChangeDuringResolution() {
@@ -2718,7 +2712,7 @@
expect(context.sourcesNeedingProcessing.contains(source), isFalse);
}
- void test_validateCacheConsistency_deletedSource() {
+ void test_validateCacheConsistency_deletedFile() {
MemoryResourceProvider resourceProvider = new MemoryResourceProvider();
var fileA = resourceProvider.newFile('/a.dart', "");
var fileB = resourceProvider.newFile('/b.dart', "import 'a.dart';");
@@ -2884,6 +2878,34 @@
context.analysisOptions = options;
}
+ void test_applyChanges_changedSource_removeFile() {
+ File file = resourceProvider.newFile('/test.dart', 'main() {}');
+ Source source = file.createSource();
+ context.applyChanges(new ChangeSet()..addedSource(source));
+ // Analyze all.
+ _performPendingAnalysisTasks();
+ expect(context.getResolvedCompilationUnit2(source, source), isNotNull);
+ // Delete the file, but tell the context that it is changed.
+ // This might happen as a race condition.
+ // Or it might be a mishandling of file notification events.
+ file.delete();
+ context.applyChanges(new ChangeSet()..changedSource(source));
+ // All the analysis results are gone.
+ void noResolvedUnits() {
+ LibrarySpecificUnit unit = new LibrarySpecificUnit(source, source);
+ RESOLVED_UNIT_RESULTS.forEach((result) {
+ expect(context.getResult(unit, result), isNull);
+ });
+ }
+
+ noResolvedUnits();
+ // Analyze again.
+ // The source does not exist, so still no resolution.
+ _performPendingAnalysisTasks();
+ noResolvedUnits();
+ expect(context.getModificationStamp(source), -1);
+ }
+
void test_class_addMethod_useAsHole_inTopLevelVariable() {
Source a = addSource(
'/a.dart',
diff --git a/pkg/analyzer/test/src/dart/ast/utilities_test.dart b/pkg/analyzer/test/src/dart/ast/utilities_test.dart
index a48fb6e..d629a83 100644
--- a/pkg/analyzer/test/src/dart/ast/utilities_test.dart
+++ b/pkg/analyzer/test/src/dart/ast/utilities_test.dart
@@ -10,7 +10,6 @@
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/ast/utilities.dart';
import 'package:analyzer/src/dart/element/element.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine.dart' show Predicate;
import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/testing/ast_factory.dart';
@@ -3341,8 +3340,8 @@
* @throws AFE if the visitor does not produce the expected source for the given node
*/
void _assertSource(String expectedSource, AstNode node) {
- PrintStringWriter writer = new PrintStringWriter();
- node.accept(new ToSourceVisitor(writer));
- expect(writer.toString(), expectedSource);
+ StringBuffer buffer = new StringBuffer();
+ node.accept(new ToSourceVisitor(buffer));
+ expect(buffer.toString(), expectedSource);
}
}
diff --git a/pkg/analyzer/test/src/dart/element/element_test.dart b/pkg/analyzer/test/src/dart/element/element_test.dart
index 6bc35ef..97a687a 100644
--- a/pkg/analyzer/test/src/dart/element/element_test.dart
+++ b/pkg/analyzer/test/src/dart/element/element_test.dart
@@ -3842,81 +3842,6 @@
unorderedEquals(<CompilationUnitElement>[unitLib, unitA, unitB]));
}
- void test_getVisibleLibraries_cycle() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- LibraryElementImpl libraryA = ElementFactory.library(context, "A");
- libraryA.imports = <ImportElementImpl>[
- ElementFactory.importFor(library, null)
- ];
- library.imports = <ImportElementImpl>[
- ElementFactory.importFor(libraryA, null)
- ];
- List<LibraryElement> libraries = library.visibleLibraries;
- expect(libraries, unorderedEquals(<LibraryElement>[library, libraryA]));
- }
-
- void test_getVisibleLibraries_directExports() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- LibraryElementImpl libraryA = ElementFactory.library(context, "A");
- library.exports = <ExportElementImpl>[ElementFactory.exportFor(libraryA)];
- List<LibraryElement> libraries = library.visibleLibraries;
- expect(libraries, unorderedEquals(<LibraryElement>[library]));
- }
-
- void test_getVisibleLibraries_directImports() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- LibraryElementImpl libraryA = ElementFactory.library(context, "A");
- library.imports = <ImportElementImpl>[
- ElementFactory.importFor(libraryA, null)
- ];
- List<LibraryElement> libraries = library.visibleLibraries;
- expect(libraries, unorderedEquals(<LibraryElement>[library, libraryA]));
- }
-
- void test_getVisibleLibraries_indirectExports() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- LibraryElementImpl libraryA = ElementFactory.library(context, "A");
- LibraryElementImpl libraryAA = ElementFactory.library(context, "AA");
- libraryA.exports = <ExportElementImpl>[ElementFactory.exportFor(libraryAA)];
- library.imports = <ImportElementImpl>[
- ElementFactory.importFor(libraryA, null)
- ];
- List<LibraryElement> libraries = library.visibleLibraries;
- expect(libraries,
- unorderedEquals(<LibraryElement>[library, libraryA, libraryAA]));
- }
-
- void test_getVisibleLibraries_indirectImports() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- LibraryElementImpl libraryA = ElementFactory.library(context, "A");
- LibraryElementImpl libraryAA = ElementFactory.library(context, "AA");
- LibraryElementImpl libraryB = ElementFactory.library(context, "B");
- libraryA.imports = <ImportElementImpl>[
- ElementFactory.importFor(libraryAA, null)
- ];
- library.imports = <ImportElementImpl>[
- ElementFactory.importFor(libraryA, null),
- ElementFactory.importFor(libraryB, null)
- ];
- List<LibraryElement> libraries = library.visibleLibraries;
- expect(
- libraries,
- unorderedEquals(
- <LibraryElement>[library, libraryA, libraryAA, libraryB]));
- }
-
- void test_getVisibleLibraries_noImports() {
- AnalysisContext context = createAnalysisContext();
- LibraryElementImpl library = ElementFactory.library(context, "app");
- expect(
- library.visibleLibraries, unorderedEquals(<LibraryElement>[library]));
- }
-
void test_invalidateLibraryCycles_withHandle() {
AnalysisContext context = createAnalysisContext();
context.sourceFactory = new SourceFactory([]);
@@ -3935,18 +3860,6 @@
library.invalidateLibraryCycles();
}
- void test_isUpToDate() {
- AnalysisContext context = createAnalysisContext();
- context.sourceFactory = new SourceFactory([]);
- LibraryElement library = ElementFactory.library(context, "foo");
- context.setContents(library.definingCompilationUnit.source, "sdfsdff");
- // Assert that we are not up to date if the target has an old time stamp.
- expect(library.isUpToDate(-1), isFalse);
- // Assert that we are up to date with a target modification time in the
- // future.
- expect(library.isUpToDate(1 << 33), isTrue);
- }
-
void test_setImports() {
AnalysisContext context = createAnalysisContext();
LibraryElementImpl library = new LibraryElementImpl.forNode(
@@ -4334,7 +4247,7 @@
expect(type.isMoreSpecificThan(ElementFactory.object.type), isTrue);
}
- void test_isMoreSpecificThan_typeArguments_resursive() {
+ void test_isMoreSpecificThan_typeArguments_recursive() {
ClassElementImpl classS = ElementFactory.classElement2("A");
TypeParameterElementImpl typeParameterU =
new TypeParameterElementImpl.forNode(AstFactory.identifier3("U"));
diff --git a/pkg/analyzer/test/src/source/source_resource_test.dart b/pkg/analyzer/test/src/source/source_resource_test.dart
index e2a9183..8079c17 100644
--- a/pkg/analyzer/test/src/source/source_resource_test.dart
+++ b/pkg/analyzer/test/src/source/source_resource_test.dart
@@ -7,7 +7,6 @@
import 'package:analyzer/file_system/file_system.dart';
import 'package:analyzer/file_system/memory_file_system.dart';
import 'package:analyzer/file_system/physical_file_system.dart';
-import 'package:analyzer/src/generated/java_core.dart';
import 'package:analyzer/src/generated/java_engine_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
@@ -126,8 +125,7 @@
UriResolver resolver = new DartUriResolver(sdk);
SourceFactory factory = new SourceFactory([resolver]);
// resolve dart:core
- Source result =
- resolver.resolveAbsolute(parseUriWithException("dart:async"));
+ Source result = resolver.resolveAbsolute(Uri.parse("dart:async"));
expect(result, isNotNull);
expect(result.isInSystemLibrary, isTrue);
// system libraries reference only other system libraries
@@ -162,8 +160,7 @@
File file = resourceProvider.getFile("/a/b/test.dart");
FileSource source = new FileSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/b/lib.dart");
}
@@ -178,8 +175,7 @@
File file = resourceProvider.getFile("/a/b/test.dart");
FileSource source = new FileSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("c/lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("c/lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/b/c/lib.dart");
}
@@ -193,16 +189,14 @@
File file = resourceProvider.getFile("/a/b/test.dart");
FileSource source = new FileSource(file);
expect(source, isNotNull);
- Uri relative =
- resolveRelativeUri(source.uri, parseUriWithException("../c/lib.dart"));
+ Uri relative = resolveRelativeUri(source.uri, Uri.parse("../c/lib.dart"));
expect(relative, isNotNull);
expect(relative.toString(), "file:///a/c/lib.dart");
}
void test_system() {
File file = resourceProvider.getFile("/does/not/exist.dart");
- FileSource source =
- new FileSource(file, parseUriWithException("dart:core"));
+ FileSource source = new FileSource(file, Uri.parse("dart:core"));
expect(source, isNotNull);
expect(source.fullName, file.path);
expect(source.isInSystemLibrary, isTrue);
diff --git a/pkg/analyzer/test/src/summary/resynthesize_test.dart b/pkg/analyzer/test/src/summary/resynthesize_test.dart
index 4a378a0..1739dba 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_test.dart
@@ -696,7 +696,6 @@
expect(rImpl.codeLength, oImpl.codeLength, reason: desc);
expect(resynthesized.documentationComment, original.documentationComment,
reason: desc);
- expect(resynthesized.docRange, original.docRange, reason: desc);
compareMetadata(resynthesized.metadata, original.metadata, desc);
// Validate modifiers.
@@ -1722,6 +1721,11 @@
checkLibrary('class C implements D, E {} class D {} class E {}');
}
+ test_class_interfaces_unresolved() {
+ checkLibrary('class C implements X, Y, Z {} class X {} class Z {}',
+ allowErrors: true);
+ }
+
test_class_method_abstract() {
checkLibrary('abstract class C { f(); }');
}
@@ -1746,6 +1750,11 @@
checkLibrary('class C extends Object with D, E {} class D {} class E {}');
}
+ test_class_mixins_unresolved() {
+ checkLibrary('class C extends Object with X, Y, Z; class X {} class Z {}',
+ allowErrors: true);
+ }
+
test_class_setter_abstract() {
checkLibrary('abstract class C { void set x(int value); }');
}
@@ -1774,6 +1783,10 @@
checkLibrary('class C extends D {} class D {}');
}
+ test_class_supertype_unresolved() {
+ checkLibrary('class C extends D {}', allowErrors: true);
+ }
+
test_class_type_parameters() {
checkLibrary('class C<T, U> {}');
}
diff --git a/pkg/analyzer/test/src/summary/summary_common.dart b/pkg/analyzer/test/src/summary/summary_common.dart
index ca386ff..5d9d9a7 100644
--- a/pkg/analyzer/test/src/summary/summary_common.dart
+++ b/pkg/analyzer/test/src/summary/summary_common.dart
@@ -286,8 +286,6 @@
String expectedCommentText =
text.substring(commentStart, commentEnd).replaceAll('\r\n', '\n');
expect(documentationComment.text, expectedCommentText);
- expect(documentationComment.offset, commentStart);
- expect(documentationComment.length, commentEnd - commentStart);
}
/**
diff --git a/pkg/analyzer/test/src/task/dart_work_manager_test.dart b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
index 8f525ba..f1d05e4 100644
--- a/pkg/analyzer/test/src/task/dart_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/dart_work_manager_test.dart
@@ -5,6 +5,7 @@
library analyzer.test.src.task.dart_work_manager_test;
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/scanner/scanner.dart' show ScannerErrorCode;
import 'package:analyzer/src/generated/engine.dart'
@@ -14,7 +15,6 @@
ChangeNoticeImpl,
InternalAnalysisContext;
import 'package:analyzer/src/generated/error.dart' show AnalysisError;
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/testing/ast_factory.dart';
diff --git a/pkg/analyzer/test/src/task/driver_test.dart b/pkg/analyzer/test/src/task/driver_test.dart
index ea71433..14620f7 100644
--- a/pkg/analyzer/test/src/task/driver_test.dart
+++ b/pkg/analyzer/test/src/task/driver_test.dart
@@ -4,9 +4,9 @@
library analyzer.test.src.task.driver_test;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/task/driver.dart';
import 'package:analyzer/src/task/inputs.dart';
import 'package:analyzer/src/task/manager.dart';
diff --git a/pkg/analyzer/test/src/task/html_work_manager_test.dart b/pkg/analyzer/test/src/task/html_work_manager_test.dart
index 5f99c44..2c6e410 100644
--- a/pkg/analyzer/test/src/task/html_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/html_work_manager_test.dart
@@ -4,6 +4,7 @@
library analyzer.test.src.task.html_work_manager_test;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/engine.dart'
show
@@ -15,7 +16,6 @@
InternalAnalysisContext;
import 'package:analyzer/src/generated/error.dart'
show AnalysisError, HtmlErrorCode;
-import 'package:analyzer/src/generated/java_engine.dart' show CaughtException;
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/html.dart';
import 'package:analyzer/src/task/html_work_manager.dart';
diff --git a/pkg/analyzer/test/src/task/manager_test.dart b/pkg/analyzer/test/src/task/manager_test.dart
index 57444b3..cc35b85 100644
--- a/pkg/analyzer/test/src/task/manager_test.dart
+++ b/pkg/analyzer/test/src/task/manager_test.dart
@@ -4,7 +4,7 @@
library analyzer.test.src.task.manager_test;
-import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/task/manager.dart';
import 'package:analyzer/task/model.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analyzer/test/src/task/model_test.dart b/pkg/analyzer/test/src/task/model_test.dart
index 0646a52..edc8f28 100644
--- a/pkg/analyzer/test/src/task/model_test.dart
+++ b/pkg/analyzer/test/src/task/model_test.dart
@@ -5,7 +5,7 @@
library analyzer.test.src.task.model_test;
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/task/model.dart';
import 'package:analyzer/task/model.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
diff --git a/pkg/analyzer/test/src/task/options_work_manager_test.dart b/pkg/analyzer/test/src/task/options_work_manager_test.dart
index 2a39cca..707d630 100644
--- a/pkg/analyzer/test/src/task/options_work_manager_test.dart
+++ b/pkg/analyzer/test/src/task/options_work_manager_test.dart
@@ -4,6 +4,7 @@
library analyzer.test.src.task.options_work_manager_test;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/generated/engine.dart'
show
@@ -15,7 +16,6 @@
InternalAnalysisContext;
import 'package:analyzer/src/generated/error.dart'
show AnalysisError, AnalysisOptionsErrorCode;
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/task/options.dart';
import 'package:analyzer/src/task/options_work_manager.dart';
diff --git a/pkg/analyzer/test/src/task/test_support.dart b/pkg/analyzer/test/src/task/test_support.dart
index 6db9c95..f501e54 100644
--- a/pkg/analyzer/test/src/task/test_support.dart
+++ b/pkg/analyzer/test/src/task/test_support.dart
@@ -4,8 +4,8 @@
library analyzer.test.src.task.test_support;
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/task/model.dart';
/**
diff --git a/pkg/analyzer/tool/summary/generate.dart b/pkg/analyzer/tool/summary/generate.dart
index 124a6b8..b9616867 100644
--- a/pkg/analyzer/tool/summary/generate.dart
+++ b/pkg/analyzer/tool/summary/generate.dart
@@ -119,7 +119,7 @@
}
}
Map<int, String> idsUsed = <int, String>{};
- for (idlModel.FieldDeclaration field in cls.fields) {
+ for (idlModel.FieldDeclaration field in cls.allFields) {
String fieldName = field.name;
idlModel.FieldType type = field.type;
if (type.isList) {
diff --git a/pkg/analyzer/tool/task_dependency_graph/generate.dart b/pkg/analyzer/tool/task_dependency_graph/generate.dart
index db88145..db2cd09 100644
--- a/pkg/analyzer/tool/task_dependency_graph/generate.dart
+++ b/pkg/analyzer/tool/task_dependency_graph/generate.dart
@@ -31,7 +31,6 @@
import 'package:analyzer/src/dart/sdk/sdk.dart';
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -161,10 +160,12 @@
} else {
packageRootPath = path.join(rootDir, 'packages');
}
- JavaFile packagesDir = new JavaFile(packageRootPath);
+ ContextBuilder builder = new ContextBuilder(resourceProvider, null, null);
+ builder.defaultPackagesDirectoryPath = packageRootPath;
List<UriResolver> uriResolvers = [
new DartUriResolver(sdk),
- new PackageUriResolver(<JavaFile>[packagesDir]),
+ new PackageMapUriResolver(resourceProvider,
+ builder.convertPackagesToMap(builder.createPackageMap(''))),
new ResourceUriResolver(PhysicalResourceProvider.INSTANCE)
];
context.sourceFactory = new SourceFactory(uriResolvers);
diff --git a/pkg/analyzer_cli/lib/src/analyzer_impl.dart b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
index da846c2..75acfa9 100644
--- a/pkg/analyzer_cli/lib/src/analyzer_impl.dart
+++ b/pkg/analyzer_cli/lib/src/analyzer_impl.dart
@@ -8,10 +8,10 @@
import 'dart:io';
import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/exception/exception.dart';
import 'package:analyzer/source/error_processor.dart';
import 'package:analyzer/src/generated/engine.dart';
import 'package:analyzer/src/generated/error.dart';
-import 'package:analyzer/src/generated/java_engine.dart';
import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
diff --git a/pkg/analyzer_cli/lib/src/build_mode.dart b/pkg/analyzer_cli/lib/src/build_mode.dart
index 025e620..7632e69 100644
--- a/pkg/analyzer_cli/lib/src/build_mode.dart
+++ b/pkg/analyzer_cli/lib/src/build_mode.dart
@@ -4,7 +4,7 @@
library analyzer_cli.src.build_mode;
-import 'dart:core' hide Resource;
+import 'dart:core';
import 'dart:io' as io;
import 'package:analyzer/dart/ast/ast.dart' show CompilationUnit;
diff --git a/pkg/analyzer_cli/lib/src/driver.dart b/pkg/analyzer_cli/lib/src/driver.dart
index e0c1eea..b16b787 100644
--- a/pkg/analyzer_cli/lib/src/driver.dart
+++ b/pkg/analyzer_cli/lib/src/driver.dart
@@ -25,7 +25,6 @@
import 'package:analyzer/src/generated/error.dart';
import 'package:analyzer/src/generated/interner.dart';
import 'package:analyzer/src/generated/java_engine.dart';
-import 'package:analyzer/src/generated/java_io.dart';
import 'package:analyzer/src/generated/sdk.dart';
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/source_io.dart';
@@ -285,6 +284,10 @@
if (options.disableHints != _previousOptions.disableHints) {
return false;
}
+ if (options.enableInitializingFormalAccess !=
+ _previousOptions.enableInitializingFormalAccess) {
+ return false;
+ }
if (options.enableStrictCallChecks !=
_previousOptions.enableStrictCallChecks) {
return false;
@@ -366,8 +369,10 @@
UriResolver packageUriResolver;
if (options.packageRootPath != null) {
- JavaFile packageDirectory = new JavaFile(options.packageRootPath);
- packageUriResolver = new PackageUriResolver([packageDirectory]);
+ ContextBuilder builder = new ContextBuilder(resourceProvider, null, null);
+ builder.defaultPackagesDirectoryPath = options.packageRootPath;
+ packageUriResolver = new PackageMapUriResolver(resourceProvider,
+ builder.convertPackagesToMap(builder.createPackageMap('')));
} else if (options.packageConfigPath == null) {
// TODO(pq): remove?
if (packageInfo.packageMap == null) {
@@ -646,6 +651,8 @@
AnalysisOptionsImpl contextOptions = new AnalysisOptionsImpl();
contextOptions.trackCacheDependencies = false;
contextOptions.hint = !options.disableHints;
+ contextOptions.enableInitializingFormalAccess =
+ options.enableInitializingFormalAccess;
contextOptions.enableStrictCallChecks = options.enableStrictCallChecks;
contextOptions.enableSuperMixins = options.enableSuperMixins;
contextOptions.generateImplicitErrors = options.showPackageWarnings;
diff --git a/pkg/analyzer_cli/lib/src/options.dart b/pkg/analyzer_cli/lib/src/options.dart
index 2ad8bc4..6a4c426 100644
--- a/pkg/analyzer_cli/lib/src/options.dart
+++ b/pkg/analyzer_cli/lib/src/options.dart
@@ -87,6 +87,10 @@
/// Whether to display version information
final bool displayVersion;
+ /// A flag indicating whether access to field formal parameters should be
+ /// allowed in a constructor's initializer list.
+ final bool enableInitializingFormalAccess;
+
/// Whether to enable null-aware operators (DEP 9).
final bool enableNullAwareOperators;
@@ -181,6 +185,7 @@
analysisOptionsFile = args['options'],
disableHints = args['no-hints'],
displayVersion = args['version'],
+ enableInitializingFormalAccess = args['initializing-formal-access'],
enableNullAwareOperators = args['enable-null-aware-operators'],
enableStrictCallChecks = args['enable-strict-call-checks'],
enableSuperMixins = args['supermixin'],
@@ -470,6 +475,12 @@
defaultsTo: false,
negatable: false,
hide: true)
+ ..addFlag('initializing-formal-access',
+ help:
+ 'Enable support for allowing access to field formal parameters in a constructor\'s initializer list',
+ defaultsTo: false,
+ negatable: false,
+ hide: true)
..addFlag('supermixin',
help: 'Relax restrictions on mixins (DEP 34).',
defaultsTo: false,
diff --git a/pkg/analyzer_cli/test/utils.dart b/pkg/analyzer_cli/test/utils.dart
index 07dbe4b..8e28b93 100644
--- a/pkg/analyzer_cli/test/utils.dart
+++ b/pkg/analyzer_cli/test/utils.dart
@@ -8,9 +8,7 @@
import 'dart:mirrors';
import 'package:analyzer/analyzer.dart';
-import 'package:analyzer/src/generated/java_io.dart';
import 'package:path/path.dart' as pathos;
-import 'package:path/path.dart' as path;
import 'package:unittest/unittest.dart';
/// Gets the test directory in a way that works with
@@ -46,7 +44,6 @@
/// Test env setup (copied from `analyzer/test/utils.dart`).
void initializeTestEnvironment() {
groupSep = ' | ';
- JavaFile.pathContext = path.posix;
}
/// Creates a temporary directory and passes its path to [fn]. Once [fn]
diff --git a/pkg/compiler/lib/src/apiimpl.dart b/pkg/compiler/lib/src/apiimpl.dart
index 3bddb9b..dbff8df 100644
--- a/pkg/compiler/lib/src/apiimpl.dart
+++ b/pkg/compiler/lib/src/apiimpl.dart
@@ -381,7 +381,9 @@
// Private libraries are not exposed to the users.
if (libraryName.startsWith("_")) return null;
- if (compiler.resolvedUriTranslator.sdkLibraries.containsKey(libraryName)) {
+ Uri libraryUri =
+ compiler.resolvedUriTranslator.sdkLibraries[libraryName];
+ if (libraryUri != null && libraryUri.scheme != "unsupported") {
// Dart2js always "supports" importing 'dart:mirrors' but will abort
// the compilation at a later point if the backend doesn't support
// mirrors. In this case 'mirrors' should not be in the environment.
diff --git a/pkg/compiler/lib/src/js/rewrite_async.dart b/pkg/compiler/lib/src/js/rewrite_async.dart
index eb0b535..5d37861 100644
--- a/pkg/compiler/lib/src/js/rewrite_async.dart
+++ b/pkg/compiler/lib/src/js/rewrite_async.dart
@@ -1712,8 +1712,7 @@
addStatement(new js.Comment("implicit return"));
}
addStatement(js.js.statement(
- "return #runtimeHelper(#returnValue, #successCode, "
- "#completer, null);",
+ "return #runtimeHelper(#returnValue, #successCode, #completer);",
{
"runtimeHelper": asyncHelper,
"successCode": js.number(error_codes.SUCCESS),
@@ -1772,7 +1771,7 @@
}
#rewrittenBody;
});
- return #asyncHelper(null, #bodyName, #completer, null);
+ return #asyncHelper(null, #bodyName, #completer);
}""",
{
"parameters": parameters,
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index e813fe9..41e7227 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -40,15 +40,14 @@
import '../library_loader.dart' show LibraryLoader, LoadedLibraries;
import '../native/native.dart' as native;
import '../ssa/ssa.dart' show SsaFunctionCompiler;
-import '../ssa/nodes.dart' show HInstruction;
import '../tree/tree.dart';
import '../types/types.dart';
import '../universe/call_structure.dart' show CallStructure;
-import '../universe/selector.dart' show Selector, SelectorKind;
+import '../universe/feature.dart';
+import '../universe/selector.dart' show Selector;
import '../universe/universe.dart';
import '../universe/use.dart'
show DynamicUse, StaticUse, StaticUseKind, TypeUse, TypeUseKind;
-import '../universe/feature.dart';
import '../universe/world_impact.dart'
show
ImpactStrategy,
@@ -66,6 +65,7 @@
import 'custom_elements_analysis.dart';
import 'enqueuer.dart';
import 'js_interop_analysis.dart' show JsInteropAnalysis;
+import 'kernel_task.dart';
import 'lookup_map_analysis.dart' show LookupMapAnalysis;
import 'namer.dart';
import 'native_data.dart' show NativeData;
@@ -564,6 +564,9 @@
/// Support for classifying `noSuchMethod` implementations.
NoSuchMethodRegistry noSuchMethodRegistry;
+ /// Builds kernel representation for the program.
+ KernelTask kernelTask;
+
JavaScriptConstantTask constantCompilerTask;
JavaScriptImpactTransformer impactTransformer;
@@ -612,6 +615,7 @@
jsInteropAnalysis = new JsInteropAnalysis(this);
noSuchMethodRegistry = new NoSuchMethodRegistry(this);
+ kernelTask = new KernelTask(this);
constantCompilerTask = new JavaScriptConstantTask(compiler);
impactTransformer = new JavaScriptImpactTransformer(this);
patchResolverTask = new PatchResolverTask(compiler);
@@ -635,7 +639,7 @@
JavaScriptConstantCompiler get constants {
return constantCompilerTask.jsConstantCompiler;
}
-
+
@override
bool isDefaultNoSuchMethod(MethodElement element) {
return noSuchMethodRegistry.isDefaultNoSuchMethodImplementation(element);
@@ -2365,6 +2369,10 @@
enabledNoSuchMethod = true;
}
+ if (compiler.options.useKernel) {
+ kernelTask.buildKernelIr();
+ }
+
if (compiler.options.hasIncrementalSupport) {
// Always enable tear-off closures during incremental compilation.
Element e = helpers.closureFromTearOff;
diff --git a/pkg/compiler/lib/src/js_backend/enqueuer.dart b/pkg/compiler/lib/src/js_backend/enqueuer.dart
index 80f241f..29bec96 100644
--- a/pkg/compiler/lib/src/js_backend/enqueuer.dart
+++ b/pkg/compiler/lib/src/js_backend/enqueuer.dart
@@ -109,8 +109,7 @@
// Codegen inlines field initializers. It only needs to generate
// code for checked setters.
if (element.isField && element.isInstanceMember) {
- if (!options.enableTypeAssertions ||
- element.enclosingElement.isClosure) {
+ if (!options.enableTypeAssertions || element.enclosingElement.isClosure) {
return;
}
}
@@ -145,8 +144,7 @@
universe.registerTypeInstantiation(type,
isNative: isNative,
byMirrors: mirrorUsage, onImplemented: (ClassElement cls) {
- backend
- .registerImplementedClass(cls, this, globalDependencies);
+ backend.registerImplementedClass(cls, this, globalDependencies);
});
// TODO(johnniwinther): Share this reasoning with [Universe].
if (!cls.isAbstract || isNative || mirrorUsage) {
@@ -271,8 +269,7 @@
// We only tell the backend once that [superclass] was instantiated, so
// any additional dependencies must be treated as global
// dependencies.
- backend.registerInstantiatedClass(
- superclass, this, globalDependencies);
+ backend.registerInstantiatedClass(superclass, this, globalDependencies);
}
ClassElement superclass = cls;
@@ -307,8 +304,7 @@
includedEnclosing: enclosingWasIncluded)) {
logEnqueueReflectiveAction(ctor);
ClassElement cls = ctor.declaration.enclosingClass;
- backend.registerInstantiatedType(
- cls.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(cls.rawType, this, mirrorDependencies,
mirrorUsage: true);
registerStaticUse(new StaticUse.foreignUse(ctor.declaration));
}
@@ -356,8 +352,7 @@
if (includeClass) {
logEnqueueReflectiveAction(cls, "register");
ClassElement decl = cls.declaration;
- backend.registerInstantiatedType(
- decl.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(decl.rawType, this, mirrorDependencies,
mirrorUsage: true);
}
// If the class is never instantiated, we know nothing of it can possibly
@@ -382,13 +377,11 @@
/// that none of its methods are reflectable, unless reflectable by
/// inheritance.
void enqueueReflectiveSpecialClasses() {
- Iterable<ClassElement> classes =
- backend.classesRequiredForReflection;
+ Iterable<ClassElement> classes = backend.classesRequiredForReflection;
for (ClassElement cls in classes) {
if (backend.referencedFromMirrorSystem(cls)) {
logEnqueueReflectiveAction(cls);
- backend.registerInstantiatedType(
- cls.rawType, this, mirrorDependencies,
+ backend.registerInstantiatedType(cls.rawType, this, mirrorDependencies,
mirrorUsage: true);
}
}
diff --git a/pkg/compiler/lib/src/js_backend/kernel_task.dart b/pkg/compiler/lib/src/js_backend/kernel_task.dart
new file mode 100644
index 0000000..7f53580
--- /dev/null
+++ b/pkg/compiler/lib/src/js_backend/kernel_task.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import '../compiler.dart';
+import '../kernel/kernel.dart';
+
+import 'backend.dart';
+
+/// Visits the compiler main function and builds the kernel representation.
+///
+/// This creates a mapping from kernel nodes to AST nodes to be used later.
+class KernelTask {
+ final Compiler _compiler;
+ final Kernel kernel;
+
+ KernelTask(JavaScriptBackend backend)
+ : this._compiler = backend.compiler,
+ this.kernel = new Kernel(backend.compiler);
+
+ /// Builds the kernel IR for the main function.
+ ///
+ /// May enqueue more elements to the resolution queue.
+ void buildKernelIr() {
+ kernel.functionToIr(_compiler.mainFunction);
+ kernel.processWorkQueue();
+ }
+}
diff --git a/pkg/compiler/lib/src/js_backend/no_such_method_registry.dart b/pkg/compiler/lib/src/js_backend/no_such_method_registry.dart
index 39abf47..1b88780 100644
--- a/pkg/compiler/lib/src/js_backend/no_such_method_registry.dart
+++ b/pkg/compiler/lib/src/js_backend/no_such_method_registry.dart
@@ -7,7 +7,6 @@
import '../compiler.dart' show Compiler;
import '../elements/elements.dart';
import '../tree/tree.dart';
-import '../types/types.dart';
import 'backend.dart';
/**
diff --git a/pkg/compiler/lib/src/kernel/accessors.dart b/pkg/compiler/lib/src/kernel/accessors.dart
index 026ba63..afe6687 100644
--- a/pkg/compiler/lib/src/kernel/accessors.dart
+++ b/pkg/compiler/lib/src/kernel/accessors.dart
@@ -20,10 +20,7 @@
Kernel get kernel => builder.kernel;
TopLevelStaticAccessor(
- this.builder,
- this.name,
- ir.Member readTarget,
- ir.Member writeTarget)
+ this.builder, this.name, ir.Member readTarget, ir.Member writeTarget)
: super(readTarget, writeTarget);
@override
@@ -54,8 +51,8 @@
Kernel get kernel => builder.kernel;
- ClassStaticAccessor(this.builder, this.name,
- ir.Member readTarget, ir.Member writeTarget)
+ ClassStaticAccessor(
+ this.builder, this.name, ir.Member readTarget, ir.Member writeTarget)
: super(readTarget, writeTarget);
@override
@@ -80,27 +77,20 @@
class SuperPropertyAccessor extends ir_accessors.SuperPropertyAccessor {
final UnresolvedVisitor builder;
- /// Name of the property attempted to be accessed, used to generate an
- /// error if unresolved.
- final String name;
-
SuperPropertyAccessor(
- this.builder,
- this.name,
- ir.Member readTarget,
- ir.Member writeTarget)
- : super(readTarget, writeTarget);
+ this.builder, ir.Name name, ir.Member getter, ir.Member setter)
+ : super(name, getter, setter);
@override
makeInvalidRead() {
// TODO(asgerf): Technically, we should invoke 'super.noSuchMethod' for
// this and the other invalid super cases.
- return builder.buildThrowUnresolvedSuperGetter(name);
+ return builder.buildThrowUnresolvedSuperGetter(name.name);
}
@override
makeInvalidWrite(ir.Expression value) {
- return builder.buildThrowUnresolvedSuperSetter(name, value);
+ return builder.buildThrowUnresolvedSuperSetter(name.name, value);
}
}
@@ -110,11 +100,8 @@
Kernel get kernel => builder.kernel;
SuperIndexAccessor(
- this.builder,
- ir.Expression index,
- ir.Member readTarget,
- ir.Member writeTarget)
- : super(index, readTarget, writeTarget);
+ this.builder, ir.Expression index, ir.Member getter, ir.Member setter)
+ : super(index, getter, setter);
@override
makeInvalidRead() {
diff --git a/pkg/compiler/lib/src/kernel/kernel.dart b/pkg/compiler/lib/src/kernel/kernel.dart
index 34ac4f8..d5f1151 100644
--- a/pkg/compiler/lib/src/kernel/kernel.dart
+++ b/pkg/compiler/lib/src/kernel/kernel.dart
@@ -6,7 +6,6 @@
import 'package:kernel/ast.dart' as ir;
import 'package:kernel/checks.dart' show CheckParentPointers;
-import 'package:kernel/frontend/super_calls.dart' show moveSuperCallLast;
import '../compiler.dart' show Compiler;
import '../constants/expressions.dart' show TypeConstantExpression;
@@ -61,6 +60,9 @@
final Map<LibraryElement, Map<String, int>> mixinApplicationNamesByLibrary =
<LibraryElement, Map<String, int>>{};
+ final Map<ir.Node, Element> nodeToElement = <ir.Node, Element>{};
+ final Map<ir.Node, Node> nodeToAst = <ir.Node, Node>{};
+
/// FIFO queue of work that needs to be completed before the returned AST
/// nodes are correct.
final Queue<WorkItem> workQueue = new Queue<WorkItem>();
@@ -162,6 +164,8 @@
ir.Class classToIr(ClassElement cls) {
cls = cls.declaration;
return classes.putIfAbsent(cls, () {
+ cls.ensureResolved(compiler.resolution);
+ compiler.enqueuer.resolution.emptyDeferredQueueForTesting();
String name = computeName(cls);
ir.Class classNode = new ir.Class(
name: name,
@@ -182,7 +186,8 @@
cls.implementation
.forEachMember((ClassElement enclosingClass, Element member) {
if (member.enclosingClass.declaration != cls) {
- internalError(cls, "`$member` isn't mine.");
+ // TODO(het): figure out why impact_test triggers this
+ //internalError(cls, "`$member` isn't mine.");
} else if (member.isFunction ||
member.isAccessor ||
member.isConstructor) {
@@ -321,6 +326,8 @@
}
function = function.declaration;
return functions.putIfAbsent(function, () {
+ compiler.analyzeElement(function);
+ compiler.enqueuer.resolution.emptyDeferredQueueForTesting();
function = function.implementation;
ir.Member member;
ir.Constructor constructor;
@@ -358,7 +365,6 @@
for (ir.Initializer initializer in irFunction.initializers) {
initializer.parent = constructor;
}
- moveSuperCallLast(constructor);
} else {
assert(irFunction.kind != null);
procedure.function = irFunction.node;
@@ -411,6 +417,8 @@
}
field = field.declaration;
return fields.putIfAbsent(field, () {
+ compiler.analyzeElement(field);
+ compiler.enqueuer.resolution.emptyDeferredQueueForTesting();
field = field.implementation;
ir.DartType type =
field.isMalformed ? const ir.InvalidType() : typeToIr(field.type);
@@ -445,6 +453,7 @@
// TODO(ahe): This assignment will probably not be correct when dart2js
// supports generic methods.
ClassElement cls = variable.typeDeclaration;
+ cls.ensureResolved(compiler.resolution);
parameter.parent = classToIr(cls);
parameter.bound = typeToIr(variable.bound);
});
diff --git a/pkg/compiler/lib/src/kernel/kernel_visitor.dart b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
index 900c0cc..c2d458c 100644
--- a/pkg/compiler/lib/src/kernel/kernel_visitor.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_visitor.dart
@@ -198,16 +198,13 @@
final Map<CascadeReceiver, ir.VariableGet> cascadeReceivers =
<CascadeReceiver, ir.VariableGet>{};
- final Map<ir.Node, Element> nodeToElement = <ir.Node, Element>{};
- final Map<ir.Node, Node> nodeToAst = <ir.Node, Node>{};
-
ir.Node associateElement(ir.Node node, Element element) {
- nodeToElement[node] = element;
+ kernel.nodeToElement[node] = element;
return node;
}
ir.Node associateNode(ir.Node node, Node ast) {
- nodeToAst[node] = ast;
+ kernel.nodeToAst[node] = ast;
return node;
}
@@ -479,12 +476,14 @@
// situation, the assignment to [ir.PropertyGet] should act as an
// assertion.
ir.PropertyGet expression = visitForValue(send);
- return PropertyAccessor.make(expression.receiver, expression.name);
+ return PropertyAccessor.make(
+ expression.receiver, expression.name, null, null);
} else if (kernel.isSyntheticError(element)) {
return buildStaticAccessor(null);
} else if (element.isGetter) {
if (element.isInstanceMember) {
- return new ThisPropertyAccessor(kernel.irName(element.name, element));
+ return new ThisPropertyAccessor(
+ kernel.irName(element.name, element), null, null);
} else {
GetterElement getter = element;
Element setter = getter.setter;
@@ -905,8 +904,7 @@
@override
ir.SymbolLiteral visitLiteralSymbol(LiteralSymbol node) {
var result = new ir.SymbolLiteral(node.slowNameString);
- nodeToAst[result] = node;
- return result;
+ return associateNode(result, node);
}
@override
@@ -1263,7 +1261,8 @@
ir.Expression receiverNode =
receiver == null ? new ir.ThisExpression() : visitForValue(receiver);
return buildCompound(
- PropertyAccessor.make(receiverNode, nameToIrName(name)), rhs);
+ PropertyAccessor.make(receiverNode, nameToIrName(name), null, null),
+ rhs);
}
@override
@@ -1279,8 +1278,8 @@
Send node, Node receiver, Name name, Node rhs, _) {
ir.Name irName = nameToIrName(name);
Accessor accessor = (receiver == null)
- ? new ThisPropertyAccessor(irName)
- : PropertyAccessor.make(visitForValue(receiver), irName);
+ ? new ThisPropertyAccessor(irName, null, null)
+ : PropertyAccessor.make(visitForValue(receiver), irName, null, null);
return accessor.buildNullAwareAssignment(visitForValue(rhs),
voidContext: isVoidContext);
}
@@ -1310,7 +1309,7 @@
ir.MethodInvocation buildBinaryOperator(
Node left, String operator, Node right) {
ir.Name name = kernel.irName(operator, currentElement);
- return makeBinary(visitForValue(left), name, visitForValue(right));
+ return makeBinary(visitForValue(left), name, null, visitForValue(right));
}
@override
@@ -1490,7 +1489,7 @@
Accessor buildNullAwarePropertyAccessor(Node receiver, Name name) {
return new NullAwarePropertyAccessor(
- visitForValue(receiver), nameToIrName(name));
+ visitForValue(receiver), nameToIrName(name), null, null);
}
@override
@@ -1551,7 +1550,8 @@
}
Accessor buildIndexAccessor(Node receiver, Node index) {
- return IndexAccessor.make(visitForValue(receiver), visitForValue(index));
+ return IndexAccessor.make(
+ visitForValue(receiver), visitForValue(index), null, null);
}
@override
@@ -2151,8 +2151,10 @@
@override
ir.SuperMethodInvocation visitSuperBinary(Send node, FunctionElement function,
BinaryOperator operator, Node argument, _) {
- return new ir.SuperMethodInvocation(kernel.functionToIr(function),
- new ir.Arguments(<ir.Expression>[visitForValue(argument)]));
+ return new ir.SuperMethodInvocation(
+ kernel.irName(operator.selectorName, currentElement),
+ new ir.Arguments(<ir.Expression>[visitForValue(argument)]),
+ kernel.functionToIr(function));
}
@override
@@ -2190,9 +2192,10 @@
ir.SuperMethodInvocation buildSuperEquals(
FunctionElement function, Node argument) {
return new ir.SuperMethodInvocation(
- kernel.functionToIr(function),
+ kernel.irName(function.name, function),
new ir.Arguments(<ir.Expression>[visitForValue(argument)],
- types: null, named: null));
+ types: null, named: null),
+ kernel.functionToIr(function));
}
@override
@@ -2273,7 +2276,9 @@
!getter.isConst) {
setter = getter;
}
+ Element element = getter ?? setter;
return new SuperPropertyAccessor(
+ kernel.irName(element.name, element),
(getter == null) ? null : kernel.elementToIr(getter),
(setter == null) ? null : kernel.elementToIr(setter));
}
@@ -2365,8 +2370,8 @@
ir.SuperMethodInvocation buildSuperMethodInvoke(
MethodElement method, NodeList arguments) {
- return new ir.SuperMethodInvocation(
- kernel.functionToIr(method), buildArguments(arguments));
+ return new ir.SuperMethodInvocation(kernel.irName(method.name, method),
+ buildArguments(arguments), kernel.functionToIr(method));
}
@override
@@ -2424,8 +2429,8 @@
@override
ir.SuperMethodInvocation visitSuperUnary(
Send node, UnaryOperator operator, FunctionElement function, _) {
- return new ir.SuperMethodInvocation(
- kernel.functionToIr(function), new ir.Arguments.empty());
+ return new ir.SuperMethodInvocation(kernel.irName(function.name, function),
+ new ir.Arguments.empty(), kernel.functionToIr(function));
}
@override
@@ -2455,7 +2460,7 @@
}
Accessor buildThisPropertyAccessor(Name name) {
- return new ThisPropertyAccessor(nameToIrName(name));
+ return new ThisPropertyAccessor(nameToIrName(name), null, null);
}
@override
diff --git a/pkg/compiler/lib/src/kernel/unresolved.dart b/pkg/compiler/lib/src/kernel/unresolved.dart
index 167d211..c1e332d 100644
--- a/pkg/compiler/lib/src/kernel/unresolved.dart
+++ b/pkg/compiler/lib/src/kernel/unresolved.dart
@@ -130,6 +130,18 @@
new ir.Arguments(<ir.Expression>[new ir.StringLiteral(errorMessage)])));
}
+ SuperIndexAccessor buildUnresolvedSuperIndexAccessor(
+ Node index, Element element) {
+ ir.Member member = possiblyErroneousFunctionToIr(element);
+ return new SuperIndexAccessor(this, visitForValue(index), member, member);
+ }
+
+ SuperPropertyAccessor buildUnresolvedSuperPropertyAccessor(
+ String name, Element getter) {
+ return new SuperPropertyAccessor(this, kernel.irName(name, currentElement),
+ getter == null ? null : possiblyErroneousFunctionToIr(getter), null);
+ }
+
ir.Expression visitUnresolvedClassConstructorInvoke(
NewExpression node,
ErroneousElement element,
@@ -280,10 +292,9 @@
ir.Expression visitUnresolvedSuperCompoundIndexSet(Send node, Element element,
Node index, AssignmentOperator operator, Node rhs, _) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index),
- possiblyErroneousFunctionToIr(element), null);
- return accessor.buildCompoundAssignment(
- new ir.Name(operator.selectorName), visitForValue(rhs));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildCompoundAssignment(
+ new ir.Name(operator.selectorName), visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperGet(Send node, Element element, _) {
@@ -343,25 +354,22 @@
ir.Expression visitUnresolvedSuperIndex(
Send node, Element element, Node index, _) {
- return new SuperIndexAccessor(this, visitForValue(index), null, null)
- .buildSimpleRead();
+ return buildUnresolvedSuperIndexAccessor(index, element).buildSimpleRead();
}
ir.Expression visitUnresolvedSuperIndexPostfix(
Send node, Element element, Node index, IncDecOperator operator, _) {
- return new SuperIndexAccessor(this, visitForValue(index), null, null)
- .buildSimpleRead();
+ return buildUnresolvedSuperIndexAccessor(index, element).buildSimpleRead();
}
ir.Expression visitUnresolvedSuperIndexPrefix(
Send node, Element element, Node index, IncDecOperator operator, _) {
- return new SuperIndexAccessor(this, visitForValue(index), null, null)
- .buildSimpleRead();
+ return buildUnresolvedSuperIndexAccessor(index, element).buildSimpleRead();
}
ir.Expression visitUnresolvedSuperIndexSet(
Send node, Element element, Node index, Node rhs, _) {
- return new SuperIndexAccessor(this, visitForValue(index), null, null)
+ return buildUnresolvedSuperIndexAccessor(index, element)
.buildAssignment(visitForValue(rhs));
}
@@ -394,10 +402,9 @@
AssignmentOperator operator,
Node rhs,
_) {
- var accessor = new SuperPropertyAccessor(
- this, '${node.selector}', possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildCompoundAssignment(
- new ir.Name(operator.selectorName), visitForValue(rhs));
+ return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter)
+ .buildCompoundAssignment(
+ new ir.Name(operator.selectorName), visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperSetterCompoundIndexSet(
@@ -408,10 +415,9 @@
AssignmentOperator operator,
Node rhs,
_) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index),
- possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildCompoundAssignment(
- new ir.Name(operator.selectorName), visitForValue(rhs));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildCompoundAssignment(
+ new ir.Name(operator.selectorName), visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperSetterIndexPostfix(
@@ -421,9 +427,8 @@
Node index,
IncDecOperator operator,
_) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index),
- possiblyErroneousFunctionToIr(indexFunction), null);
- return accessor.buildPostfixIncrement(new ir.Name(operator.selectorName));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildPostfixIncrement(new ir.Name(operator.selectorName));
}
ir.Expression visitUnresolvedSuperSetterIndexPrefix(
@@ -433,30 +438,26 @@
Node index,
IncDecOperator operator,
_) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index),
- possiblyErroneousFunctionToIr(indexFunction), null);
- return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildPrefixIncrement(new ir.Name(operator.selectorName));
}
ir.Expression visitUnresolvedSuperSetterPostfix(Send node,
MethodElement getter, Element element, IncDecOperator operator, _) {
- var accessor = new SuperPropertyAccessor(
- this, '${node.selector}', possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildPostfixIncrement(new ir.Name(operator.selectorName));
+ return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter)
+ .buildPostfixIncrement(new ir.Name(operator.selectorName));
}
ir.Expression visitUnresolvedSuperSetterPrefix(Send node,
MethodElement getter, Element element, IncDecOperator operator, _) {
- var accessor = new SuperPropertyAccessor(
- this, '${node.selector}', possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildPrefixIncrement(new ir.Name(operator.selectorName));
+ return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter)
+ .buildPrefixIncrement(new ir.Name(operator.selectorName));
}
ir.Expression visitUnresolvedSuperSetterSetIfNull(
Send node, MethodElement getter, Element element, Node rhs, _) {
- var accessor = new SuperPropertyAccessor(
- this, '${node.selector}', possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildNullAwareAssignment(visitForValue(rhs));
+ return buildUnresolvedSuperPropertyAccessor('${node.selector}', getter)
+ .buildNullAwareAssignment(visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperUnary(
@@ -538,23 +539,20 @@
ir.Expression visitUnresolvedSuperGetterIndexSetIfNull(Send node,
Element element, MethodElement setter, Node index, Node rhs, _) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index), null,
- possiblyErroneousFunctionToIr(setter));
- return accessor.buildNullAwareAssignment(visitForValue(rhs));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildNullAwareAssignment(visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperSetterIndexSetIfNull(Send node,
MethodElement getter, Element element, Node index, Node rhs, _) {
- var accessor = new SuperIndexAccessor(this, visitForValue(index),
- possiblyErroneousFunctionToIr(getter), null);
- return accessor.buildNullAwareAssignment(visitForValue(rhs));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildNullAwareAssignment(visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperIndexSetIfNull(
Send node, Element element, Node index, Node rhs, _) {
- var accessor =
- new SuperIndexAccessor(this, visitForValue(index), null, null);
- return accessor.buildNullAwareAssignment(visitForValue(rhs));
+ return buildUnresolvedSuperIndexAccessor(index, element)
+ .buildNullAwareAssignment(visitForValue(rhs));
}
ir.Expression visitUnresolvedSuperSet(
diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
index efc6e0d..14c1aab 100644
--- a/pkg/compiler/lib/src/resolution/members.dart
+++ b/pkg/compiler/lib/src/resolution/members.dart
@@ -4061,7 +4061,9 @@
DartType type = typeResolver.resolveTypeAnnotation(this, node,
malformedIsError: malformedIsError,
deferredIsMalformed: deferredIsMalformed);
- registry.registerTypeUse(new TypeUse.checkedModeCheck(type));
+ if (!type.isDynamic) {
+ registry.registerTypeUse(new TypeUse.checkedModeCheck(type));
+ }
return type;
}
diff --git a/pkg/compiler/lib/src/resolution/registry.dart b/pkg/compiler/lib/src/resolution/registry.dart
index 7f5e927..d6aa72c 100644
--- a/pkg/compiler/lib/src/resolution/registry.dart
+++ b/pkg/compiler/lib/src/resolution/registry.dart
@@ -25,7 +25,7 @@
import 'send_structure.dart';
import 'tree_elements.dart' show TreeElementMapping;
-class _ResolutionWorldImpact extends ResolutionImpact
+class ResolutionWorldImpactBuilder extends ResolutionImpact
with WorldImpactBuilder
implements NativeRegistry {
final String name;
@@ -36,7 +36,7 @@
Setlet<ConstantExpression> _constantLiterals;
Setlet<dynamic> _nativeData;
- _ResolutionWorldImpact(this.name);
+ ResolutionWorldImpactBuilder(this.name);
void registerMapLiteral(MapLiteralUse mapLiteralUse) {
assert(mapLiteralUse != null);
@@ -158,12 +158,12 @@
class ResolutionRegistry extends Registry {
final Target target;
final TreeElementMapping mapping;
- final _ResolutionWorldImpact worldImpact;
+ final ResolutionWorldImpactBuilder impactBuilder;
ResolutionRegistry(this.target, TreeElementMapping mapping)
: this.mapping = mapping,
- this.worldImpact =
- new _ResolutionWorldImpact(mapping.analyzedElement.toString());
+ this.impactBuilder = new ResolutionWorldImpactBuilder(
+ mapping.analyzedElement.toString());
bool get isForResolution => true;
@@ -324,12 +324,12 @@
//////////////////////////////////////////////////////////////////////////////
void registerStaticUse(StaticUse staticUse) {
- worldImpact.registerStaticUse(staticUse);
+ impactBuilder.registerStaticUse(staticUse);
}
/// Register the use of a type.
void registerTypeUse(TypeUse typeUse) {
- worldImpact.registerTypeUse(typeUse);
+ impactBuilder.registerTypeUse(typeUse);
}
void registerSuperUse(SourceSpan span) {
@@ -338,20 +338,20 @@
void registerTypeLiteral(Send node, DartType type) {
mapping.setType(node, type);
- worldImpact.registerTypeUse(new TypeUse.typeLiteral(type));
+ impactBuilder.registerTypeUse(new TypeUse.typeLiteral(type));
}
void registerLiteralList(Node node, InterfaceType type,
{bool isConstant, bool isEmpty}) {
setType(node, type);
- worldImpact.registerListLiteral(
+ impactBuilder.registerListLiteral(
new ListLiteralUse(type, isConstant: isConstant, isEmpty: isEmpty));
}
void registerMapLiteral(Node node, InterfaceType type,
{bool isConstant, bool isEmpty}) {
setType(node, type);
- worldImpact.registerMapLiteral(
+ impactBuilder.registerMapLiteral(
new MapLiteralUse(type, isConstant: isConstant, isEmpty: isEmpty));
}
@@ -362,24 +362,24 @@
if (nativeData != null) {
// Split impact from resolution result.
mapping.registerNativeData(node, nativeData);
- worldImpact.registerNativeData(nativeData);
+ impactBuilder.registerNativeData(nativeData);
}
}
void registerDynamicUse(DynamicUse dynamicUse) {
- worldImpact.registerDynamicUse(dynamicUse);
+ impactBuilder.registerDynamicUse(dynamicUse);
}
void registerFeature(Feature feature) {
- worldImpact.registerFeature(feature);
+ impactBuilder.registerFeature(feature);
}
void registerConstSymbol(String name) {
- worldImpact.registerConstSymbolName(name);
+ impactBuilder.registerConstSymbolName(name);
}
void registerConstantLiteral(ConstantExpression constant) {
- worldImpact.registerConstantLiteral(constant);
+ impactBuilder.registerConstantLiteral(constant);
}
ClassElement defaultSuperclass(ClassElement element) {
@@ -387,7 +387,7 @@
}
void registerInstantiation(InterfaceType type) {
- worldImpact.registerTypeUse(new TypeUse.instantiation(type));
+ impactBuilder.registerTypeUse(new TypeUse.instantiation(type));
}
void registerSendStructure(Send node, SendStructure sendStructure) {
diff --git a/pkg/compiler/lib/src/resolution/resolution.dart b/pkg/compiler/lib/src/resolution/resolution.dart
index 4d747cd..743ede2 100644
--- a/pkg/compiler/lib/src/resolution/resolution.dart
+++ b/pkg/compiler/lib/src/resolution/resolution.dart
@@ -289,9 +289,9 @@
reporter.reportErrorMessage(tree, MessageKind.NO_SUCH_METHOD_IN_NATIVE);
}
- resolution.target.resolveNativeElement(element, registry.worldImpact);
+ resolution.target.resolveNativeElement(element, registry.impactBuilder);
- return registry.worldImpact;
+ return registry.impactBuilder;
});
}
@@ -320,7 +320,7 @@
registry.registerStaticUse(new StaticUse.superConstructorInvoke(
target, CallStructure.NO_ARGS));
}
- return registry.worldImpact;
+ return registry.impactBuilder;
} else {
assert(element.isDeferredLoaderGetter || element.isMalformed);
_ensureTreeElements(element);
@@ -424,9 +424,9 @@
// Perform various checks as side effect of "computing" the type.
element.computeType(resolution);
- resolution.target.resolveNativeElement(element, registry.worldImpact);
+ resolution.target.resolveNativeElement(element, registry.impactBuilder);
- return registry.worldImpact;
+ return registry.impactBuilder;
});
}
@@ -1031,7 +1031,7 @@
new TypedefResolverVisitor(resolution, element, registry);
visitor.visit(node);
element.resolutionState = STATE_DONE;
- return registry.worldImpact;
+ return registry.impactBuilder;
});
});
});
diff --git a/pkg/compiler/lib/src/ssa/builder.dart b/pkg/compiler/lib/src/ssa/builder.dart
index 9f54ceb..2456e81 100644
--- a/pkg/compiler/lib/src/ssa/builder.dart
+++ b/pkg/compiler/lib/src/ssa/builder.dart
@@ -1502,10 +1502,10 @@
hasRtiInput = true;
List<HInstruction> typeArguments = <HInstruction>[];
classElement.typeVariables.forEach((TypeVariableType typeVariable) {
- HInstruction argument = localsHandler
- .readLocal(localsHandler.getTypeVariableAsLocal(typeVariable));
- typeArguments.add(argument);
- });
+ HInstruction argument = localsHandler
+ .readLocal(localsHandler.getTypeVariableAsLocal(typeVariable));
+ typeArguments.add(argument);
+ });
HInstruction typeInfo = new HTypeInfoExpression(
TypeInfoExpressionKind.INSTANCE,
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index fc4dc48..88cfe18 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -4,10 +4,10 @@
import 'package:kernel/ast.dart' as ir;
+import '../common.dart';
import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
import '../common/tasks.dart' show CompilerTask;
import '../compiler.dart';
-import '../diagnostics/spannable.dart';
import '../elements/elements.dart';
import '../io/source_information.dart';
import '../js_backend/backend.dart' show JavaScriptBackend;
@@ -36,15 +36,8 @@
HGraph build(CodegenWorkItem work) {
return measure(() {
AstElement element = work.element.implementation;
- TreeElements treeElements = work.resolvedAst.elements;
- Kernel kernel = new Kernel(backend.compiler);
- KernelVisitor visitor = new KernelVisitor(element, treeElements, kernel);
- IrFunction function;
- try {
- function = visitor.buildFunction();
- } catch (e) {
- throw "Failed to convert to Kernel IR: $e";
- }
+ Kernel kernel = backend.kernelTask.kernel;
+ ir.Procedure function = kernel.functions[element];
KernelSsaBuilder builder = new KernelSsaBuilder(
function,
element,
@@ -52,7 +45,6 @@
backend.compiler,
work.registry,
sourceInformationFactory,
- visitor,
kernel);
return builder.build();
});
@@ -60,7 +52,7 @@
}
class KernelSsaBuilder extends ir.Visitor with GraphBuilder {
- final IrFunction function;
+ final ir.Procedure function;
final FunctionElement functionElement;
final ResolvedAst resolvedAst;
final Compiler compiler;
@@ -78,7 +70,6 @@
this.compiler,
this.registry,
SourceInformationStrategy sourceInformationFactory,
- KernelVisitor visitor,
Kernel kernel) {
graph.element = functionElement;
// TODO(het): Should sourceInformationBuilder be in GraphBuilder?
@@ -91,9 +82,10 @@
this.astAdapter = new KernelAstAdapter(
compiler.backend,
resolvedAst,
- visitor.nodeToAst,
- visitor.nodeToElement,
+ kernel.nodeToAst,
+ kernel.nodeToElement,
kernel.functions,
+ kernel.classes,
kernel.libraries);
}
@@ -131,13 +123,14 @@
}
/// Builds a SSA graph for [method].
- void buildMethod(IrFunction method, FunctionElement functionElement) {
- openFunction(method, functionElement);
- method.node.body.accept(this);
+ void buildMethod(ir.Procedure method, FunctionElement functionElement) {
+ openFunction(functionElement);
+ method.function.body.accept(this);
closeFunction();
}
- void openFunction(IrFunction method, FunctionElement functionElement) {
+ // TODO(het): get function element from astAdapter?
+ void openFunction(FunctionElement functionElement) {
HBasicBlock block = graph.addNewBlock();
open(graph.entry);
localsHandler.startFunction(functionElement, resolvedAst.node);
diff --git a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
index 719b346..8682d35 100644
--- a/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
+++ b/pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart
@@ -4,9 +4,10 @@
import 'package:kernel/ast.dart' as ir;
+import '../common.dart';
import '../compiler.dart';
import '../constants/values.dart';
-import '../diagnostics/invariant.dart';
+import '../dart_types.dart';
import '../elements/elements.dart';
import '../js_backend/js_backend.dart';
import '../resolution/tree_elements.dart';
@@ -26,6 +27,7 @@
final ResolvedAst _resolvedAst;
final Map<ir.Node, ast.Node> _nodeToAst;
final Map<ir.Node, Element> _nodeToElement;
+ DartTypeConverter _typeConverter;
KernelAstAdapter(
this._backend,
@@ -33,13 +35,18 @@
this._nodeToAst,
this._nodeToElement,
Map<FunctionElement, ir.Member> functions,
+ Map<ClassElement, ir.Class> classes,
Map<LibraryElement, ir.Library> libraries) {
for (FunctionElement functionElement in functions.keys) {
_nodeToElement[functions[functionElement]] = functionElement;
}
+ for (ClassElement classElement in classes.keys) {
+ _nodeToElement[classes[classElement]] = classElement;
+ }
for (LibraryElement libraryElement in libraries.keys) {
_nodeToElement[libraries[libraryElement]] = libraryElement;
}
+ _typeConverter = new DartTypeConverter(this);
}
Compiler get _compiler => _backend.compiler;
@@ -80,6 +87,12 @@
return _compiler.world.getSideEffectsOfElement(getElement(node));
}
+ CallStructure getCallStructure(ir.Arguments arguments) {
+ int argumentCount = arguments.positional.length + arguments.named.length;
+ List<String> namedArguments = arguments.named.map((e) => e.name).toList();
+ return new CallStructure(argumentCount, namedArguments);
+ }
+
// TODO(het): Create the selector directly from the invocation
Selector getSelector(ir.MethodInvocation invocation) {
SelectorKind kind = Elements.isOperatorName(invocation.name.name)
@@ -89,13 +102,7 @@
ir.Name irName = invocation.name;
Name name = new Name(
irName.name, irName.isPrivate ? getElement(irName.library) : null);
-
- int argumentCount = invocation.arguments.positional.length +
- invocation.arguments.named.length;
- List<String> namedArguments =
- invocation.arguments.named.map((e) => e.name).toList();
- CallStructure callStructure =
- new CallStructure(argumentCount, namedArguments);
+ CallStructure callStructure = getCallStructure(invocation.arguments);
return new Selector(kind, name, callStructure);
}
@@ -113,4 +120,50 @@
bool isIntercepted(ir.MethodInvocation invocation) {
return _backend.isInterceptedSelector(getSelector(invocation));
}
+
+ DartType getDartType(ir.DartType type) {
+ return type.accept(_typeConverter);
+ }
+}
+
+class DartTypeConverter extends ir.DartTypeVisitor<DartType> {
+ final KernelAstAdapter astAdapter;
+
+ DartTypeConverter(this.astAdapter);
+
+ List<DartType> visitTypes(List<ir.DartType> types) {
+ return new List.generate(
+ types.length, (int index) => types[index].accept(this));
+ }
+
+ @override
+ DartType visitTypeParameterType(ir.TypeParameterType node) {
+ return new TypeVariableType(astAdapter.getElement(node.parameter));
+ }
+
+ @override
+ DartType visitFunctionType(ir.FunctionType node) {
+ throw new UnimplementedError("Function types not currently supported");
+ }
+
+ @override
+ DartType visitInterfaceType(ir.InterfaceType node) {
+ ClassElement cls = astAdapter.getElement(node.classNode);
+ return new InterfaceType(cls, visitTypes(node.typeArguments));
+ }
+
+ @override
+ DartType visitVoidType(ir.VoidType node) {
+ return const VoidType();
+ }
+
+ @override
+ DartType visitDynamicType(ir.DynamicType node) {
+ return const DynamicType();
+ }
+
+ @override
+ DartType visitInvalidType(ir.InvalidType node) {
+ throw new UnimplementedError("Invalid types not currently supported");
+ }
}
diff --git a/pkg/compiler/lib/src/ssa/kernel_impact.dart b/pkg/compiler/lib/src/ssa/kernel_impact.dart
new file mode 100644
index 0000000..30f66a5
--- /dev/null
+++ b/pkg/compiler/lib/src/ssa/kernel_impact.dart
@@ -0,0 +1,201 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'package:kernel/ast.dart' as ir;
+
+import '../common.dart';
+import '../compiler.dart';
+import '../constants/expressions.dart';
+import '../dart_types.dart';
+import '../elements/elements.dart';
+import '../js_backend/backend.dart' show JavaScriptBackend;
+import '../kernel/kernel.dart';
+import '../kernel/kernel_visitor.dart';
+import '../resolution/registry.dart' show ResolutionWorldImpactBuilder;
+import '../universe/feature.dart';
+import '../universe/use.dart';
+
+import 'kernel_ast_adapter.dart';
+import '../common/resolution.dart';
+
+/// Computes the [ResolutionImpact] for [resolvedAst] through kernel.
+ResolutionImpact build(Compiler compiler, ResolvedAst resolvedAst) {
+ AstElement element = resolvedAst.element.implementation;
+ JavaScriptBackend backend = compiler.backend;
+ Kernel kernel = backend.kernelTask.kernel;
+ ir.Procedure function = kernel.functions[element];
+ if (function == null) {
+ print("FOUND NULL FUNCTION: $element");
+ print(kernel.functions);
+ }
+ KernelImpactBuilder builder =
+ new KernelImpactBuilder(function, element, resolvedAst, compiler, kernel);
+ return builder.build();
+}
+
+class KernelImpactBuilder extends ir.Visitor {
+ final ir.Procedure function;
+ final FunctionElement functionElement;
+ final ResolvedAst resolvedAst;
+ final Compiler compiler;
+
+ JavaScriptBackend get backend => compiler.backend;
+
+ ResolutionWorldImpactBuilder impactBuilder;
+ KernelAstAdapter astAdapter;
+
+ KernelImpactBuilder(this.function, this.functionElement, this.resolvedAst,
+ this.compiler, Kernel kernel) {
+ this.impactBuilder = new ResolutionWorldImpactBuilder('$functionElement');
+ this.astAdapter = new KernelAstAdapter(
+ compiler.backend,
+ resolvedAst,
+ kernel.nodeToAst,
+ kernel.nodeToElement,
+ kernel.functions,
+ kernel.classes,
+ kernel.libraries);
+ }
+
+ ResolutionImpact build() {
+ if (function.kind == ir.ProcedureKind.Method ||
+ function.kind == ir.ProcedureKind.Operator) {
+ buildMethod(function);
+ } else {
+ compiler.reporter.internalError(
+ functionElement,
+ "Unable to compute resolution impact for this kind of Kernel "
+ "procedure: ${function.kind}");
+ }
+ return impactBuilder;
+ }
+
+ /// Add a checked-mode type use of [type] if it is not `dynamic`.
+ DartType checkType(DartType type) {
+ if (!type.isDynamic) {
+ impactBuilder.registerTypeUse(new TypeUse.checkedModeCheck(type));
+ }
+ return type;
+ }
+
+ void buildMethod(ir.Procedure method) {
+ method.function.body.accept(this);
+ }
+
+ void visitNodes(Iterable<ir.Node> nodes) {
+ nodes.forEach((ir.Node node) => node.accept(this));
+ }
+
+ @override
+ void visitBlock(ir.Block block) => visitNodes(block.statements);
+
+ @override
+ void visitExpressionStatement(ir.ExpressionStatement exprStatement) {
+ exprStatement.expression.accept(this);
+ }
+
+ @override
+ void visitReturnStatement(ir.ReturnStatement returnStatement) {
+ returnStatement.expression?.accept(this);
+ }
+
+ @override
+ void visitIfStatement(ir.IfStatement ifStatement) {
+ ifStatement.condition.accept(this);
+ ifStatement.then.accept(this);
+ ifStatement.otherwise?.accept(this);
+ }
+
+ @override
+ void visitIntLiteral(ir.IntLiteral literal) {
+ impactBuilder
+ .registerConstantLiteral(new IntConstantExpression(literal.value));
+ }
+
+ @override
+ void visitDoubleLiteral(ir.DoubleLiteral literal) {
+ impactBuilder
+ .registerConstantLiteral(new DoubleConstantExpression(literal.value));
+ }
+
+ @override
+ void visitBoolLiteral(ir.BoolLiteral literal) {
+ impactBuilder
+ .registerConstantLiteral(new BoolConstantExpression(literal.value));
+ }
+
+ @override
+ void visitStringLiteral(ir.StringLiteral literal) {
+ impactBuilder
+ .registerConstantLiteral(new StringConstantExpression(literal.value));
+ }
+
+ @override
+ void visitSymbolLiteral(ir.SymbolLiteral literal) {
+ impactBuilder.registerConstSymbolName(literal.value);
+ }
+
+ @override
+ void visitNullLiteral(ir.NullLiteral literal) {
+ impactBuilder.registerConstantLiteral(new NullConstantExpression());
+ }
+
+ @override
+ void visitListLiteral(ir.ListLiteral literal) {
+ visitNodes(literal.expressions);
+ DartType elementType =
+ checkType(astAdapter.getDartType(literal.typeArgument));
+
+ impactBuilder.registerListLiteral(new ListLiteralUse(
+ compiler.coreTypes.listType(elementType),
+ isConstant: literal.isConst,
+ isEmpty: literal.expressions.isEmpty));
+ }
+
+ @override
+ void visitMapLiteral(ir.MapLiteral literal) {
+ visitNodes(literal.entries);
+ DartType keyType = checkType(astAdapter.getDartType(literal.keyType));
+ DartType valueType = checkType(astAdapter.getDartType(literal.valueType));
+ impactBuilder.registerMapLiteral(new MapLiteralUse(
+ compiler.coreTypes.mapType(keyType, valueType),
+ isConstant: literal.isConst,
+ isEmpty: literal.entries.isEmpty));
+ }
+
+ void visitMapEntry(ir.MapEntry entry) {
+ entry.key.accept(this);
+ entry.value.accept(this);
+ }
+
+ void _visitArguments(ir.Arguments arguments) {
+ for (ir.Expression argument in arguments.positional) {
+ argument.accept(this);
+ }
+ for (ir.NamedExpression argument in arguments.named) {
+ argument.value.accept(this);
+ }
+ }
+
+ @override
+ void visitStaticInvocation(ir.StaticInvocation invocation) {
+ _visitArguments(invocation.arguments);
+ Element target = astAdapter.getElement(invocation.target).declaration;
+ impactBuilder.registerStaticUse(new StaticUse.staticInvoke(
+ target, astAdapter.getCallStructure(invocation.arguments)));
+ }
+
+ @override
+ void visitMethodInvocation(ir.MethodInvocation invocation) {
+ invocation.receiver.accept(this);
+ _visitArguments(invocation.arguments);
+ impactBuilder.registerDynamicUse(
+ new DynamicUse(astAdapter.getSelector(invocation), null));
+ }
+
+ @override
+ void visitNot(ir.Not not) {
+ not.operand.accept(this);
+ }
+}
diff --git a/pkg/dev_compiler/lib/src/compiler/command.dart b/pkg/dev_compiler/lib/src/compiler/command.dart
index d2e8d8c..5aaf262 100644
--- a/pkg/dev_compiler/lib/src/compiler/command.dart
+++ b/pkg/dev_compiler/lib/src/compiler/command.dart
@@ -68,7 +68,7 @@
printFn('''
We're sorry, you've found a bug in our compiler.
You can report this bug at:
- https://github.com/dart-lang/dev_compiler/issues
+ https://github.com/dart-lang/sdk/issues/labels/area-dev-compiler
Please include the information below in your report, along with
any other information that may help us track it down. Thanks!
dartdevc arguments: ${args.join(' ')}
diff --git a/pkg/dev_compiler/pubspec.lock b/pkg/dev_compiler/pubspec.lock
index 2608c73..c337317 100644
--- a/pkg/dev_compiler/pubspec.lock
+++ b/pkg/dev_compiler/pubspec.lock
@@ -6,7 +6,7 @@
path: "../analyzer"
relative: true
source: path
- version: "0.28.2-alpha.0"
+ version: "0.29.0-alpha.0"
archive:
description:
name: archive
@@ -144,7 +144,7 @@
name: js
url: "https://pub.dartlang.org"
source: hosted
- version: "0.6.0"
+ version: "0.6.1"
logging:
description:
name: logging
@@ -204,7 +204,7 @@
name: protobuf
url: "https://pub.dartlang.org"
source: hosted
- version: "0.5.2"
+ version: "0.5.3"
pub_semver:
description:
name: pub_semver
@@ -312,7 +312,7 @@
name: webdriver
url: "https://pub.dartlang.org"
source: hosted
- version: "1.2.0"
+ version: "1.2.1"
when:
description:
name: when
@@ -332,4 +332,4 @@
source: hosted
version: "2.1.10"
sdks:
- dart: ">=1.17.0-dev.6.2 <2.0.0"
+ dart: ">=1.19.0-dev.0.0 <2.0.0"
diff --git a/pkg/dev_compiler/pubspec.yaml b/pkg/dev_compiler/pubspec.yaml
index 3586510..30a5bb3 100644
--- a/pkg/dev_compiler/pubspec.yaml
+++ b/pkg/dev_compiler/pubspec.yaml
@@ -8,7 +8,7 @@
homepage: https://github.com/dart-lang/dev_compiler
dependencies:
- analyzer: ^0.28.0-alpha.1
+ analyzer: ^0.29.0-alpha.0
args: ^0.13.0
bazel_worker: ^0.1.0
browser: ^0.10.0
diff --git a/pkg/dev_compiler/web/main.dart b/pkg/dev_compiler/web/main.dart
index a604412..3ec8888 100755
--- a/pkg/dev_compiler/web/main.dart
+++ b/pkg/dev_compiler/web/main.dart
@@ -60,7 +60,8 @@
messageHandler("");
messageHandler("We're sorry, you've found a bug in our compiler.");
messageHandler("You can report this bug at:");
- messageHandler(" https://github.com/dart-lang/dev_compiler/issues");
+ messageHandler(
+ " https://github.com/dart-lang/sdk/issues/labels/area-dev-compiler");
messageHandler("");
messageHandler(
"Please include the information below in your report, along with");
diff --git a/pkg/pkgbuild.status b/pkg/pkgbuild.status
index 15b2cc2..20e54e1 100644
--- a/pkg/pkgbuild.status
+++ b/pkg/pkgbuild.status
@@ -6,7 +6,7 @@
pkg/compiler: SkipByDesign # js_ast is not published
[ ($use_repository_packages || $use_public_packages) ]
-third_party/pkg/dev_compiler: SkipByDesign # we have relative paths to analyzer
+pkg/dev_compiler: SkipByDesign # we have relative paths to analyzer
[ $use_repository_packages ]
# third_party/pkg/dart2js_info: Fail # Issue https://github.com/dart-lang/dart2js_info/pull/14
diff --git a/runtime/bin/run_vm_tests_fuchsia.cc b/runtime/bin/run_vm_tests_fuchsia.cc
index 4525a7f..8137a59 100644
--- a/runtime/bin/run_vm_tests_fuchsia.cc
+++ b/runtime/bin/run_vm_tests_fuchsia.cc
@@ -109,6 +109,8 @@
"DirectoryCreateDelete",
// Needs rename
"DirectoryRename",
+ // Needs read of RSS.
+ "InitialRSS",
};
@@ -168,6 +170,8 @@
RETURN_IF_ERROR(status);
status = launchpad_add_pipe(lp, stderr_out, 2);
RETURN_IF_ERROR(status);
+ status = launchpad_add_vdso_vmo(lp);
+ RETURN_IF_ERROR(status);
status = launchpad_elf_load(lp, binary_vmo);
RETURN_IF_ERROR(status);
status = launchpad_load_vdso(lp, MX_HANDLE_INVALID);
diff --git a/runtime/bin/vmservice/server.dart b/runtime/bin/vmservice/server.dart
index 8d6a932..e1cb822 100644
--- a/runtime/bin/vmservice/server.dart
+++ b/runtime/bin/vmservice/server.dart
@@ -79,9 +79,8 @@
static ContentType jsonContentType =
new ContentType("application", "json", charset: "utf-8");
final HttpRequest request;
- final List<String> _allowedOrigins;
- HttpRequestClient(this.request, VMService service, this._allowedOrigins)
+ HttpRequestClient(this.request, VMService service)
: super(service, sendEvents:false);
disconnect() {
@@ -95,15 +94,9 @@
return;
}
HttpResponse response = request.response;
+ // We closed the connection for bad origins earlier.
+ response.headers.add('Access-Control-Allow-Origin', '*');
response.headers.contentType = jsonContentType;
- final origins = request.headers['Origin'];
- if ((origins != null) && (origins.isNotEmpty)) {
- final uri = Uri.parse(origins.first);
- final noPortOrigin = new Uri(host: uri.host, scheme: uri.scheme).origin;
- if (_allowedOrigins.contains(noPortOrigin)) {
- response.headers.add('Access-Control-Allow-Origin', uri.origin);
- }
- }
if (result is String) {
response.write(result);
} else {
@@ -131,7 +124,6 @@
final String _ip;
final int _port;
final bool _originCheckDisabled;
- final List<String> _allowedOrigins = <String>[];
HttpServer _server;
bool get running => _server != null;
bool _displayMessages = false;
@@ -140,22 +132,27 @@
_displayMessages = (_ip != '127.0.0.1' || _port != 8181);
}
- void _addOrigin(String host, String port) {
- if (port == null) {
- String origin = 'http://$host';
- _allowedOrigins.add(origin);
- } else {
- String origin = 'http://$host:$port';
- _allowedOrigins.add(origin);
- }
- }
-
bool _isAllowedOrigin(String origin) {
- for (String allowedOrigin in _allowedOrigins) {
- if (origin.startsWith(allowedOrigin)) {
- return true;
- }
+ Uri uri;
+ try {
+ uri = Uri.parse(origin);
+ } catch (_) {
+ return false;
}
+
+ // Explicitly add localhost and 127.0.0.1 on any port (necessary for
+ // adb port forwarding).
+ if ((uri.host == 'localhost') ||
+ (uri.host == '127.0.0.1')) {
+ return true;
+ }
+
+ if ((uri.port == _server.port) &&
+ ((uri.host == _server.address.address) ||
+ (uri.host == _server.address.host))) {
+ return true;
+ }
+
return false;
}
@@ -248,7 +245,7 @@
}
// HTTP based service request.
try {
- var client = new HttpRequestClient(request, _service, _allowedOrigins);
+ var client = new HttpRequestClient(request, _service);
var message = new Message.fromUri(client, request.uri);
client.onMessage(null, message);
} catch (e) {
@@ -264,23 +261,13 @@
return new Future.value(this);
}
- // Clear allowed origins.
- _allowedOrigins.clear();
-
var address = new InternetAddress(_ip);
// Startup HTTP server.
return HttpServer.bind(address, _port).then((s) {
_server = s;
_server.listen(_requestHandler, cancelOnError: true);
- var ip = _server.address.address.toString();
- var port = _server.port.toString();
- // Add the numeric ip and host name to our allowed origins.
- _addOrigin(ip, port);
- _addOrigin(_server.address.host.toString(), port);
- // Explicitly add localhost and 127.0.0.1 on any port (necessary for
- // adb port forwarding).
- _addOrigin('127.0.0.1', null);
- _addOrigin('localhost', null);
+ var ip = _server.address.address;
+ var port = _server.port;
if (_displayMessages) {
print('Observatory listening on http://$ip:$port');
}
diff --git a/runtime/observatory/lib/src/elements/css/shared.css b/runtime/observatory/lib/src/elements/css/shared.css
index 9e6defc..717ad46 100644
--- a/runtime/observatory/lib/src/elements/css/shared.css
+++ b/runtime/observatory/lib/src/elements/css/shared.css
@@ -1971,20 +1971,19 @@
position: absolute;
display: inline-block;
top: 5px;
- color: #888888;
- line-height: 30px;
- font: 400 20px 'Montserrat', sans-serif;
+}
+script-inset button.refresh > svg,
+script-inset button.toggle-profile > svg {
+ fill: #888888;
}
script-inset button.refresh {
right: 5px;
- font-size: 25px;
}
script-inset button.toggle-profile {
right: 30px;
- font-size: 20px;
}
-script-inset button.toggle-profile.enabled {
- color: #BB3322;
+script-inset button.toggle-profile.enabled > svg {
+ fill: #BB3322;
}
script-inset a {
color: #0489c3;
diff --git a/runtime/observatory/lib/src/elements/icdata_view.dart b/runtime/observatory/lib/src/elements/icdata_view.dart
index 1582a27..d21c164 100644
--- a/runtime/observatory/lib/src/elements/icdata_view.dart
+++ b/runtime/observatory/lib/src/elements/icdata_view.dart
@@ -133,6 +133,13 @@
new DivElement()..classes = ['memberItem']
..children = [
new DivElement()..classes = ['memberName']
+ ..text = 'selector',
+ new DivElement()..classes = ['memberName']
+ ..text = _icdata.selector
+ ],
+ new DivElement()..classes = ['memberItem']
+ ..children = [
+ new DivElement()..classes = ['memberName']
..text = 'owner',
new DivElement()..classes = ['memberName']
..children = [
diff --git a/runtime/observatory/lib/src/elements/objectpool_view.dart b/runtime/observatory/lib/src/elements/objectpool_view.dart
index 24ac047..890b5d1 100644
--- a/runtime/observatory/lib/src/elements/objectpool_view.dart
+++ b/runtime/observatory/lib/src/elements/objectpool_view.dart
@@ -128,7 +128,7 @@
]),
new DivElement()..classes = ['content-centered-big']
..children = [
- new HeadingElement.h2()..text = 'Object Pool',
+ new HeadingElement.h2()..text = 'ObjectPool',
new HRElement(),
new ObjectCommonElement(_isolate, _pool, _retainedSizes,
_reachableSizes, _references, _retainingPaths,
diff --git a/runtime/observatory/lib/src/elements/script_inset.dart b/runtime/observatory/lib/src/elements/script_inset.dart
index 0162ab5..a4beb89 100644
--- a/runtime/observatory/lib/src/elements/script_inset.dart
+++ b/runtime/observatory/lib/src/elements/script_inset.dart
@@ -6,6 +6,7 @@
import 'dart:async';
import 'dart:html';
+import 'dart:svg';
import 'package:observatory/app.dart';
import 'package:observatory/models.dart' as M;
import 'package:observatory/service.dart' as S;
@@ -591,7 +592,9 @@
button.disabled = false;
});
button.title = 'Refresh coverage';
- button.text = '↺';
+ button.children = [
+ _iconRefresh.clone(true)
+ ];
return button;
}
@@ -607,7 +610,9 @@
_refresh();
button.disabled = false;
});
- button.text = '🔥';
+ button.children = [
+ _iconWhatsHot.clone(true)
+ ];
return button;
}
@@ -1347,3 +1352,29 @@
bool isHot(bool self) => _percent(self) > kHotThreshold;
bool isMedium(bool self) => _percent(self) > kMediumThreshold;
}
+
+final SvgSvgElement _iconRefresh = new SvgSvgElement()
+ ..setAttribute('width', '24')
+ ..setAttribute('height', '24')
+ ..children = [
+ new PathElement()
+ ..setAttribute('d', 'M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 '
+ '3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 '
+ '7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 '
+ '0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 '
+ '1.78L13 11h7V4l-2.35 2.35z')
+ ];
+
+final SvgSvgElement _iconWhatsHot = new SvgSvgElement()
+ ..setAttribute('width', '24')
+ ..setAttribute('height', '24')
+ ..children = [
+ new PathElement()
+ ..setAttribute('d', 'M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 '
+ '3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 '
+ '4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 '
+ '17.41 3.8 13.5.67zM11.71 19c-1.78 '
+ '0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 '
+ '1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 '
+ '4.04 0 2.65-2.15 4.8-4.8 4.8z')
+ ];
diff --git a/runtime/observatory/lib/src/elements/vm_view.dart b/runtime/observatory/lib/src/elements/vm_view.dart
index d5ff9a4..9b28c5e 100644
--- a/runtime/observatory/lib/src/elements/vm_view.dart
+++ b/runtime/observatory/lib/src/elements/vm_view.dart
@@ -17,6 +17,7 @@
import 'package:observatory/src/elements/nav/top_menu.dart';
import 'package:observatory/src/elements/nav/vm_menu.dart';
import 'package:observatory/src/elements/view_footer.dart';
+import 'package:observatory/utils.dart';
class VMViewElement extends HtmlElement implements Renderable {
static const tag = const Tag<VMViewElement>('vm-view',
@@ -152,9 +153,9 @@
new DivElement()..classes = ['memberItem']
..children = [
new DivElement()..classes = ['memberName']
- ..text = 'maxRSS',
+ ..text = 'peak memory',
new DivElement()..classes = ['memberValue']
- ..text = '${_vm.maxRSS}'
+ ..text = Utils.formatSize(_vm.maxRSS)
],
new BRElement(),
new DivElement()..classes = ['memberItem']
diff --git a/runtime/vm/ast.h b/runtime/vm/ast.h
index 972263c..cd25dc7 100644
--- a/runtime/vm/ast.h
+++ b/runtime/vm/ast.h
@@ -1875,6 +1875,7 @@
ASSERT(stacktrace_var != NULL);
}
+ SequenceNode* sequence() const { return catch_block_; }
const Array& handler_types() const { return handler_types_; }
const LocalVariable& context_var() const { return context_var_; }
const LocalVariable& exception_var() const { return exception_var_; }
diff --git a/runtime/vm/benchmark_test.cc b/runtime/vm/benchmark_test.cc
index b630698..0dcfa2b 100644
--- a/runtime/vm/benchmark_test.cc
+++ b/runtime/vm/benchmark_test.cc
@@ -730,4 +730,9 @@
benchmark->set_score(elapsed_time);
}
+
+BENCHMARK_MEMORY(InitialRSS) {
+ benchmark->set_score(OS::MaxRSS());
+}
+
} // namespace dart
diff --git a/runtime/vm/benchmark_test.h b/runtime/vm/benchmark_test.h
index 357fde6b..ab572e4 100644
--- a/runtime/vm/benchmark_test.h
+++ b/runtime/vm/benchmark_test.h
@@ -48,7 +48,7 @@
#define BENCHMARK(name) BENCHMARK_HELPER(name, "RunTime")
#define BENCHMARK_SIZE(name) BENCHMARK_HELPER(name, "CodeSize")
-
+#define BENCHMARK_MEMORY(name) BENCHMARK_HELPER(name, "Memory")
inline Dart_Handle NewString(const char* str) {
return Dart_NewStringFromCString(str);
diff --git a/runtime/vm/compiler.cc b/runtime/vm/compiler.cc
index 3293a18..aa92737 100644
--- a/runtime/vm/compiler.cc
+++ b/runtime/vm/compiler.cc
@@ -1251,7 +1251,6 @@
num_tokens_after - num_tokens_before);
}
-
CompileParsedFunctionHelper helper(parsed_function, optimized, osr_id);
if (Compiler::IsBackgroundCompilation()) {
diff --git a/runtime/vm/compiler_stats.cc b/runtime/vm/compiler_stats.cc
index e8d39b3..38afef2 100644
--- a/runtime/vm/compiler_stats.cc
+++ b/runtime/vm/compiler_stats.cc
@@ -235,6 +235,7 @@
log.Print("Local functions: %" Pd64 "\n", num_local_functions);
log.Print("Consts cached: %" Pd64 "\n", num_cached_consts);
log.Print("Consts cache hits: %" Pd64 "\n", num_const_cache_hits);
+ log.Print("Consts calcuated: %" Pd64 "\n", num_execute_const);
int64_t scan_usecs = scanner_timer.TotalElapsedTime();
log.Print("Scanner time: %" Pd64 " ms\n", scan_usecs / 1000);
diff --git a/runtime/vm/compiler_stats.h b/runtime/vm/compiler_stats.h
index 5ed7537..98143a3 100644
--- a/runtime/vm/compiler_stats.h
+++ b/runtime/vm/compiler_stats.h
@@ -41,6 +41,7 @@
V(num_tokens_consumed) \
V(num_cached_consts) \
V(num_const_cache_hits) \
+ V(num_execute_const) \
V(num_classes_parsed) \
V(num_class_tokens) \
V(num_functions_parsed) \
@@ -85,6 +86,7 @@
int64_t num_tokens_consumed;
int64_t num_cached_consts;
int64_t num_const_cache_hits;
+ int64_t num_execute_const;
int64_t num_classes_parsed;
int64_t num_class_tokens;
diff --git a/runtime/vm/constants_dbc.h b/runtime/vm/constants_dbc.h
index f5b2117..c5dbe04 100644
--- a/runtime/vm/constants_dbc.h
+++ b/runtime/vm/constants_dbc.h
@@ -231,7 +231,7 @@
//
// - WriteIntoDouble rA, rD
//
-// Box the double in FP[rD] with the result in FP[rA].
+// Box the double in FP[rD] using the box in FP[rA].
//
// - UnboxDouble rA, rD
//
@@ -309,10 +309,24 @@
//
// Allocate array of length SP[0] with type arguments SP[-1].
//
+// - CreateArrayOpt rA, rB, rC
+//
+// Try to allocate a new array where FP[rB] is the length, and FP[rC] is the
+// type. If allocation is successful, the result is stored in FP[rA], and
+// the next four instructions, which should be the
+// (Push type; Push length; AllocateTOS; PopLocal) slow path are skipped.
+//
// - Allocate D
//
// Allocate object of class PP[D] with no type arguments.
//
+// - AllocateOpt rA, D
+//
+// Try allocating an object with tags in PP[D] with no type arguments.
+// If allocation is successful, the result is stored in FP[rA], and
+// the next two instructions, which should be the (Allocate class; PopLocal)
+// slow path are skipped
+//
// - AllocateT
//
// Allocate object of class SP[0] with type arguments SP[-1].
@@ -684,8 +698,10 @@
V(IfEqNull, A, reg, ___, ___) \
V(IfNeNull, A, reg, ___, ___) \
V(CreateArrayTOS, 0, ___, ___, ___) \
+ V(CreateArrayOpt, A_B_C, reg, reg, ___) \
V(Allocate, D, lit, ___, ___) \
V(AllocateT, 0, ___, ___, ___) \
+ V(AllocateOpt, A_D, reg, lit, ___) \
V(StoreIndexedTOS, 0, ___, ___, ___) \
V(StoreIndexed, A_B_C, reg, reg, reg) \
V(StoreIndexedUint8, A_B_C, reg, reg, reg) \
diff --git a/runtime/vm/flow_graph_builder.cc b/runtime/vm/flow_graph_builder.cc
index 6ac47b8..7a01480 100644
--- a/runtime/vm/flow_graph_builder.cc
+++ b/runtime/vm/flow_graph_builder.cc
@@ -4225,6 +4225,24 @@
void EffectGraphVisitor::VisitTryCatchNode(TryCatchNode* node) {
InlineBailout("EffectGraphVisitor::VisitTryCatchNode (exception)");
+ CatchClauseNode* catch_block = node->catch_block();
+ SequenceNode* finally_block = node->finally_block();
+ if ((finally_block != NULL) && (finally_block->length() == 0)) {
+ SequenceNode* catch_sequence = catch_block->sequence();
+ if (catch_sequence->length() == 1) {
+ // Check for a single rethrow statement. This only matches the synthetic
+ // catch-clause generated for try-finally.
+ ThrowNode* throw_node = catch_sequence->NodeAt(0)->AsThrowNode();
+ if ((throw_node != NULL) && (throw_node->stacktrace() != NULL)) {
+ // Empty finally-block in a try-finally can be optimized away.
+ EffectGraphVisitor for_try(owner());
+ node->try_block()->Visit(&for_try);
+ Append(for_try);
+ return;
+ }
+ }
+ }
+
const intptr_t original_handler_index = owner()->try_index();
const intptr_t try_handler_index = node->try_index();
ASSERT(try_handler_index != original_handler_index);
@@ -4254,9 +4272,6 @@
// We are done generating code for the try block.
owner()->set_try_index(original_handler_index);
- CatchClauseNode* catch_block = node->catch_block();
- SequenceNode* finally_block = node->finally_block();
-
// If there is a finally block, it is the handler for code in the catch
// block.
const intptr_t catch_handler_index = (finally_block == NULL)
diff --git a/runtime/vm/intermediate_language_dbc.cc b/runtime/vm/intermediate_language_dbc.cc
index 08f05d7..d619f09 100644
--- a/runtime/vm/intermediate_language_dbc.cc
+++ b/runtime/vm/intermediate_language_dbc.cc
@@ -683,13 +683,18 @@
2, Location::RequiresRegister(),
LocationSummary::kCall) {
if (compiler->is_optimizing()) {
- __ Push(locs()->in(0).reg());
- __ Push(locs()->in(1).reg());
- }
- __ CreateArrayTOS();
- compiler->RecordSafepoint(locs());
- if (compiler->is_optimizing()) {
- __ PopLocal(locs()->out(0).reg());
+ const Register length = locs()->in(kLengthPos).reg();
+ const Register type_arguments = locs()->in(kElementTypePos).reg();
+ const Register out = locs()->out(0).reg();
+ __ CreateArrayOpt(out, length, type_arguments);
+ __ Push(type_arguments);
+ __ Push(length);
+ __ CreateArrayTOS();
+ compiler->RecordSafepoint(locs());
+ __ PopLocal(out);
+ } else {
+ __ CreateArrayTOS();
+ compiler->RecordSafepoint(locs());
}
}
@@ -910,21 +915,45 @@
0, Location::RequiresRegister(),
LocationSummary::kCall) {
if (ArgumentCount() == 1) {
+ // Allocate with type arguments.
__ PushConstant(cls());
__ AllocateT();
compiler->AddCurrentDescriptor(RawPcDescriptors::kOther,
Thread::kNoDeoptId,
token_pos());
+ compiler->RecordSafepoint(locs());
+ if (compiler->is_optimizing()) {
+ __ PopLocal(locs()->out(0).reg());
+ }
+ } else if (compiler->is_optimizing()) {
+ // If we're optimizing, try a streamlined fastpath.
+ const intptr_t instance_size = cls().instance_size();
+ Isolate* isolate = Isolate::Current();
+ if (Heap::IsAllocatableInNewSpace(instance_size) &&
+ !cls().TraceAllocation(isolate)) {
+ uword tags = 0;
+ tags = RawObject::SizeTag::update(instance_size, tags);
+ ASSERT(cls().id() != kIllegalCid);
+ tags = RawObject::ClassIdTag::update(cls().id(), tags);
+ if (Smi::IsValid(tags)) {
+ const intptr_t tags_kidx = __ AddConstant(Smi::Handle(Smi::New(tags)));
+ __ AllocateOpt(locs()->out(0).reg(), tags_kidx);
+ }
+ }
+ const intptr_t kidx = __ AddConstant(cls());
+ __ Allocate(kidx);
+ compiler->AddCurrentDescriptor(RawPcDescriptors::kOther,
+ Thread::kNoDeoptId,
+ token_pos());
+ compiler->RecordSafepoint(locs());
+ __ PopLocal(locs()->out(0).reg());
} else {
const intptr_t kidx = __ AddConstant(cls());
__ Allocate(kidx);
compiler->AddCurrentDescriptor(RawPcDescriptors::kOther,
Thread::kNoDeoptId,
token_pos());
- }
- compiler->RecordSafepoint(locs());
- if (compiler->is_optimizing()) {
- __ PopLocal(locs()->out(0).reg());
+ compiler->RecordSafepoint(locs());
}
}
@@ -1413,13 +1442,25 @@
ASSERT(from_representation() == kUnboxedDouble);
const Register value = locs()->in(0).reg();
const Register out = locs()->out(0).reg();
+ const intptr_t instance_size = compiler->double_class().instance_size();
+ Isolate* isolate = Isolate::Current();
+ ASSERT(Heap::IsAllocatableInNewSpace(instance_size));
+ if (!compiler->double_class().TraceAllocation(isolate)) {
+ uword tags = 0;
+ tags = RawObject::SizeTag::update(instance_size, tags);
+ tags = RawObject::ClassIdTag::update(compiler->double_class().id(), tags);
+ if (Smi::IsValid(tags)) {
+ const intptr_t tags_kidx = __ AddConstant(Smi::Handle(Smi::New(tags)));
+ __ AllocateOpt(out, tags_kidx);
+ }
+ }
const intptr_t kidx = __ AddConstant(compiler->double_class());
__ Allocate(kidx);
compiler->AddCurrentDescriptor(RawPcDescriptors::kOther,
Thread::kNoDeoptId,
token_pos());
compiler->RecordSafepoint(locs());
- // __ Allocate puts the box at the top of the stack.
+ __ PopLocal(out);
__ WriteIntoDouble(out, value);
}
diff --git a/runtime/vm/object.cc b/runtime/vm/object.cc
index 3af1f36..4ed0793 100644
--- a/runtime/vm/object.cc
+++ b/runtime/vm/object.cc
@@ -4554,7 +4554,7 @@
hash += hash << 3;
hash ^= hash >> 11; // Logical shift, unsigned hash.
hash += hash << 15;
- hash &= ((static_cast<intptr_t>(1) << hashbits) - 1);
+ hash &= ((static_cast<uintptr_t>(1) << hashbits) - 1);
return (hash == 0) ? 1 : hash;
}
diff --git a/runtime/vm/parser.cc b/runtime/vm/parser.cc
index 4134d2b..7c5eefc 100644
--- a/runtime/vm/parser.cc
+++ b/runtime/vm/parser.cc
@@ -2730,12 +2730,7 @@
if (init_expr->EvalConstExpr() != NULL) {
// If the expression is a compile-time constant, ensure that it
// is evaluated and canonicalized. See issue 27164.
- Instance& const_instance = Instance::ZoneHandle(Z);
- if (!GetCachedConstant(expr_pos, &const_instance)) {
- const_instance = EvaluateConstExpr(expr_pos, init_expr).raw();
- CacheConstantValue(expr_pos, const_instance);
- }
- init_expr = new(Z) LiteralNode(expr_pos, const_instance);
+ init_expr = FoldConstExpr(expr_pos, init_expr);
}
}
Field& field = Field::ZoneHandle(Z, cls.LookupInstanceField(field_name));
@@ -2812,12 +2807,7 @@
} else {
init_expr = ParseExpr(kAllowConst, kConsumeCascades);
if (init_expr->EvalConstExpr() != NULL) {
- Instance& expr_value = Instance::ZoneHandle(Z);
- if (!GetCachedConstant(expr_pos, &expr_value)) {
- expr_value = EvaluateConstExpr(expr_pos, init_expr).raw();
- CacheConstantValue(expr_pos, expr_value);
- }
- init_expr = new(Z) LiteralNode(field.token_pos(), expr_value);
+ init_expr = FoldConstExpr(expr_pos, init_expr);
}
}
set_library(saved_library);
@@ -2860,12 +2850,7 @@
TokenPosition expr_pos = TokenPos();
init_expr = ParseExpr(kAllowConst, kConsumeCascades);
if (init_expr->EvalConstExpr() != NULL) {
- Instance& expr_value = Instance::ZoneHandle(Z);
- if (!GetCachedConstant(expr_pos, &expr_value)) {
- expr_value = EvaluateConstExpr(expr_pos, init_expr).raw();
- CacheConstantValue(expr_pos, expr_value);
- }
- init_expr = new(Z) LiteralNode(field.token_pos(), expr_value);
+ init_expr = FoldConstExpr(expr_pos, init_expr);
}
}
}
@@ -11033,13 +11018,10 @@
if (binary_op == Token::kIFNULL) {
// Handle a ?? b.
if ((lhs->EvalConstExpr() != NULL) && (rhs->EvalConstExpr() != NULL)) {
- Instance& expr_value = Instance::ZoneHandle(Z);
- if (!GetCachedConstant(op_pos, &expr_value)) {
- expr_value = EvaluateConstExpr(lhs->token_pos(), lhs).raw();
- if (expr_value.IsNull()) {
- expr_value = EvaluateConstExpr(rhs->token_pos(), rhs).raw();
- }
- CacheConstantValue(op_pos, expr_value);
+ Instance& expr_value = Instance::ZoneHandle(Z,
+ EvaluateConstExpr(lhs->token_pos(), lhs).raw());
+ if (expr_value.IsNull()) {
+ expr_value = EvaluateConstExpr(rhs->token_pos(), rhs).raw();
}
return new(Z) LiteralNode(op_pos, expr_value);
}
@@ -11117,8 +11099,7 @@
if (expr->EvalConstExpr() == NULL) {
ReportError(expr_pos, "expression is not a valid compile-time constant");
}
- return new(Z) LiteralNode(
- expr_pos, EvaluateConstExpr(expr_pos, expr));
+ return new(Z) LiteralNode(expr_pos, EvaluateConstExpr(expr_pos, expr));
}
@@ -11379,10 +11360,7 @@
return ParseCascades(expr);
}
if (require_compiletime_const) {
- const bool use_cache = !expr->IsLiteralNode();
- LiteralNode* const_value = FoldConstExpr(expr_pos, expr);
- if (use_cache) CacheConstantValue(expr_pos, const_value->literal());
- expr = const_value;
+ expr = FoldConstExpr(expr_pos, expr);
} else {
expr = LiteralIfStaticConst(Z, expr);
}
@@ -12477,6 +12455,7 @@
return;
}
InsertCachedConstantValue(script_, token_pos, value);
+ INC_STAT(thread_, num_cached_consts, 1);
}
@@ -14480,15 +14459,31 @@
ASSERT(field.StaticValue() != Object::sentinel().raw());
ASSERT(field.StaticValue() != Object::transition_sentinel().raw());
return Instance::ZoneHandle(Z, field.StaticValue());
+ } else if (expr->IsTypeNode()) {
+ AbstractType& type =
+ AbstractType::ZoneHandle(Z, expr->AsTypeNode()->type().raw());
+ ASSERT(type.IsInstantiated() && !type.IsMalformedOrMalbounded());
+ return type;
+ } else if (expr->IsClosureNode()) {
+ const Function& func = expr->AsClosureNode()->function();
+ ASSERT((func.IsImplicitStaticClosureFunction()));
+ Instance& closure = Instance::ZoneHandle(Z, func.ImplicitStaticClosure());
+ closure = TryCanonicalize(closure, expr_pos);
+ return closure;
} else {
ASSERT(expr->EvalConstExpr() != NULL);
- ReturnNode* ret = new(Z) ReturnNode(expr->token_pos(), expr);
+ Instance& value = Instance::ZoneHandle(Z);
+ if (GetCachedConstant(expr_pos, &value)) {
+ return value;
+ }
+ ReturnNode* ret = new(Z) ReturnNode(expr_pos, expr);
// Compile time constant expressions cannot reference anything from a
// local scope.
LocalScope* empty_scope = new(Z) LocalScope(NULL, 0, 0);
- SequenceNode* seq = new(Z) SequenceNode(expr->token_pos(), empty_scope);
+ SequenceNode* seq = new(Z) SequenceNode(expr_pos, empty_scope);
seq->Add(ret);
+ INC_STAT(thread_, num_execute_const, 1);
Object& result = Object::Handle(Z, Compiler::ExecuteOnce(seq));
if (result.IsError()) {
ReportErrors(Error::Cast(result),
@@ -14496,9 +14491,9 @@
"error evaluating constant expression");
}
ASSERT(result.IsInstance() || result.IsNull());
- Instance& value = Instance::ZoneHandle(Z);
value ^= result.raw();
- value = TryCanonicalize(value, TokenPos());
+ value = TryCanonicalize(value, expr_pos);
+ CacheConstantValue(expr_pos, value);
return value;
}
}
diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc
index 2e271c7..e02cec3 100644
--- a/runtime/vm/simulator_dbc.cc
+++ b/runtime/vm/simulator_dbc.cc
@@ -256,8 +256,6 @@
RawTypedData* array = reinterpret_cast<RawTypedData*>(obj);
const intptr_t byte_offset = Smi::Value(RAW_CAST(Smi, index));
ASSERT(byte_offset >= 0);
- ASSERT(((byte_offset + (1 << scale)) >> scale) <=
- Smi::Value(array->ptr()->length_));
return array->ptr()->data() + byte_offset;
}
};
@@ -1826,9 +1824,8 @@
{
BYTECODE(WriteIntoDouble, A_D);
const double value = bit_cast<double, RawObject*>(FP[rD]);
- RawDouble* box = RAW_CAST(Double, *SP--);
+ RawDouble* box = RAW_CAST(Double, FP[rA]);
box->ptr()->value_ = value;
- FP[rA] = box;
DISPATCH();
}
@@ -2324,6 +2321,25 @@
}
{
+ BYTECODE(AllocateOpt, A_D);
+ const uword tags =
+ static_cast<uword>(Smi::Value(RAW_CAST(Smi, LOAD_CONSTANT(rD))));
+ const intptr_t instance_size = RawObject::SizeTag::decode(tags);
+ const uword start = thread->heap()->new_space()->TryAllocate(instance_size);
+ if (LIKELY(start != 0)) {
+ *reinterpret_cast<uword*>(start + Instance::tags_offset()) = tags;
+ for (intptr_t current_offset = sizeof(RawInstance);
+ current_offset < instance_size;
+ current_offset += kWordSize) {
+ *reinterpret_cast<RawObject**>(start + current_offset) = null_value;
+ }
+ FP[rA] = reinterpret_cast<RawObject*>(start + kHeapObjectTag);
+ pc += 2;
+ }
+ DISPATCH();
+ }
+
+ {
BYTECODE(Allocate, A_D);
SP[1] = 0; // Space for the result.
SP[2] = LOAD_CONSTANT(rD); // Class object.
@@ -2347,6 +2363,38 @@
}
{
+ BYTECODE(CreateArrayOpt, A_B_C);
+ const intptr_t length = Smi::Value(RAW_CAST(Smi, FP[rB]));
+ if (LIKELY(length <= Array::kMaxElements)) {
+ const intptr_t fixed_size = sizeof(RawArray) + kObjectAlignment - 1;
+ const intptr_t instance_size =
+ (fixed_size + length*kWordSize) & ~(kObjectAlignment - 1);
+ const uword start =
+ thread->heap()->new_space()->TryAllocate(instance_size);
+ if (LIKELY(start != 0)) {
+ const intptr_t cid = kArrayCid;
+ uword tags = 0;
+ if (LIKELY(instance_size < RawObject::SizeTag::kMaxSizeTag)) {
+ tags = RawObject::SizeTag::update(instance_size, tags);
+ }
+ tags = RawObject::ClassIdTag::update(cid, tags);
+ *reinterpret_cast<uword*>(start + Instance::tags_offset()) = tags;
+ *reinterpret_cast<RawObject**>(start + Array::length_offset()) = FP[rB];
+ *reinterpret_cast<RawObject**>(start + Array::type_arguments_offset()) =
+ FP[rC];
+ RawObject** data =
+ reinterpret_cast<RawObject**>(start + Array::data_offset());
+ for (intptr_t i = 0; i < length; i++) {
+ data[i] = null_value;
+ }
+ FP[rA] = reinterpret_cast<RawObject*>(start + kHeapObjectTag);
+ pc += 4;
+ }
+ }
+ DISPATCH();
+ }
+
+ {
BYTECODE(CreateArrayTOS, 0);
SP[1] = SP[-0]; // Length.
SP[2] = SP[-1]; // Type.
diff --git a/runtime/vm/virtual_memory_fuchsia.cc b/runtime/vm/virtual_memory_fuchsia.cc
index 6e7d439..b7b8b89 100644
--- a/runtime/vm/virtual_memory_fuchsia.cc
+++ b/runtime/vm/virtual_memory_fuchsia.cc
@@ -7,6 +7,7 @@
#include "vm/virtual_memory.h"
+#include <magenta/process.h>
#include <magenta/syscalls.h>
#include <unistd.h> // NOLINT
@@ -37,7 +38,8 @@
MX_VM_FLAG_PERM_WRITE |
MX_VM_FLAG_PERM_EXECUTE;
uintptr_t addr;
- mx_status_t status = mx_process_vm_map(0, vmo, 0, size, &addr, prot);
+ mx_status_t status = mx_process_map_vm(
+ mx_process_self(), vmo, 0, size, &addr, prot);
if (status != NO_ERROR) {
mx_handle_close(vmo);
FATAL("VirtualMemory::ReserveInternal FAILED");
@@ -53,8 +55,9 @@
if (!embedder_allocated()) {
// TODO(zra): Use reserved_size_.
// Issue MG-162.
- mx_status_t status = mx_process_vm_unmap(
- 0, reinterpret_cast<uintptr_t>(address()), 0 /*reserved_size_*/);
+ uintptr_t addr = reinterpret_cast<uintptr_t>(address());
+ mx_status_t status = mx_process_unmap_vm(
+ mx_process_self(), addr, 0 /*reserved_size_*/);
if (status != NO_ERROR) {
FATAL("VirtualMemory::~VirtualMemory: unamp FAILED");
}
diff --git a/runtime/vm/weak_table.h b/runtime/vm/weak_table.h
index 01a607b..2c40aa3 100644
--- a/runtime/vm/weak_table.h
+++ b/runtime/vm/weak_table.h
@@ -154,7 +154,7 @@
void Rehash();
static intptr_t Hash(RawObject* key) {
- return reinterpret_cast<intptr_t>(key) * 92821;
+ return reinterpret_cast<uintptr_t>(key) * 92821;
}
// data_ contains size_ tuples of key/value.
diff --git a/sdk/lib/_internal/js_runtime/lib/js_rti.dart b/sdk/lib/_internal/js_runtime/lib/js_rti.dart
index 497666f..ba18319 100644
--- a/sdk/lib/_internal/js_runtime/lib/js_rti.dart
+++ b/sdk/lib/_internal/js_runtime/lib/js_rti.dart
@@ -228,23 +228,21 @@
* possible values for [substitution].
*/
substitute(var substitution, var arguments) {
- assert(substitution == null ||
- isJsFunction(substitution));
+ if (substitution == null) return arguments;
+ assert(isJsFunction(substitution));
assert(arguments == null || isJsArray(arguments));
+ substitution = invoke(substitution, arguments);
+ if (substitution == null) return null;
+ if (isJsArray(substitution)) {
+ // Substitutions are generated too late to mark Array as used, so use a
+ // tautological JS 'cast' to mark Array as used. This is needed only in
+ // some tiny tests where the substition is the only thing that creates an
+ // Array.
+ return JS('JSArray', '#', substitution);
+ }
if (isJsFunction(substitution)) {
- substitution = invoke(substitution, arguments);
- if (substitution == null) return substitution;
- if (isJsArray(substitution)) {
- // Substitutions are generated too late to mark Array as used, so use a
- // tautological JS 'cast' to mark Array as used. This is needed only in
- // some tiny tests where the substition is the only thing that creates an
- // Array.
- return JS('JSArray', '#', substitution);
- }
- if (isJsFunction(substitution)) {
- // TODO(johnniwinther): Check if this is still needed.
- return invoke(substitution, arguments);
- }
+ // TODO(johnniwinther): Check if this is still needed.
+ return invoke(substitution, arguments);
}
return arguments;
}
@@ -467,12 +465,12 @@
// Get the necessary substitution of the type arguments, if there is one.
var substitution;
if (isNotIdentical(typeOfT, typeOfS)) {
- if (!builtinIsSubtype(typeOfS, runtimeTypeToString(typeOfT))) {
+ String typeOfTString = runtimeTypeToString(typeOfT);
+ if (!builtinIsSubtype(typeOfS, typeOfTString)) {
return false;
}
var typeOfSPrototype = JS('', '#.prototype', typeOfS);
- var field = '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}'
- '${runtimeTypeToString(typeOfT)}';
+ var field = '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}${typeOfTString}';
substitution = getField(typeOfSPrototype, field);
}
// The class of [s] is a subclass of the class of [t]. If [s] has no type
diff --git a/sdk/lib/html/dartium/html_dartium.dart b/sdk/lib/html/dartium/html_dartium.dart
index e007fc3..b3be182 100644
--- a/sdk/lib/html/dartium/html_dartium.dart
+++ b/sdk/lib/html/dartium/html_dartium.dart
@@ -9381,7 +9381,7 @@
// TODO(alanknight): I think that all the __getter__ generators should just
// do property access, but that's major surgery. This one is a problem, so
// just hard-code it for now.
- return _blink.Blink_JsNative_DomException.getProperty(this, index);
+ return _blink.Blink_JsNative_DomException.getProperty(this, index.toString());
}
}
diff --git a/tests/co19/co19-analyzer2.status b/tests/co19/co19-analyzer2.status
index 12e0ed9..0d0cdc5 100644
--- a/tests/co19/co19-analyzer2.status
+++ b/tests/co19/co19-analyzer2.status
@@ -12,347 +12,14 @@
Language/Expressions/Method_Invocation/Ordinary_Invocation/syntax_t05: MissingCompileTimeError
Language/Expressions/Method_Invocation/Ordinary_Invocation/syntax_t10: MissingCompileTimeError
Language/Expressions/Method_Invocation/Super_Invocation/syntax_t05: MissingCompileTimeError
+# End issue #26644
-WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: fail
-LayoutTests/fast/events/event-creation_t01: Skip # Roll 45 OverflowEvent removed
-LayoutTests/fast/forms/checkValidity-001_t01: fail
-LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: Skip # Roll 45 clipboardData changed
-Language/Expressions/Assignable_Expressions/syntax_t08: StaticWarning
-Language/Libraries_and_Scripts/Parts/compilation_t15: fail, pass # Issue 23595
-
-# TBF: Static members should not be accessible via subclasses.
-Language/Classes/Superclasses/Inheritance_and_Overriding/inheritance_t05: MissingStaticWarning
-
-# co19 issue #442, undefined name "Expect"
-Language/Types/Interface_Types/subtype_t12: fail, OK
-
-# co19 issue #438, Static variables are initialized lazily, need not be constants
-Language/Expressions/Constants/exception_t01: fail, OK
-Language/Expressions/Constants/exception_t02: fail, OK
-
-LibTest/isolate/IsolateStream/any_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/asBroadcastStream_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/contains_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/first_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/first_A02_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/first_A02_t02: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/isBroadcast_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/isBroadcast_A01_t02: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/isEmpty_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/last_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/last_A02_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/length_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/single_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/single_A02_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/receive_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/receive_A01_t03: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/toSendPort_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/toSendPort_A01_t03: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/call_A01_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A02_t04: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A02_t03: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A02_t05: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A02_t06: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A03_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/SendPort/send_A03_t02: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/any_A02_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/IsolateStream/contains_A02_t01: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/receive_A01_t02: Fail # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/toSendPort_A01_t02: Fail # co19-roll r706: Please triage this failure.
-
-# co19 issue 642, The argument type 'int' cannot be assigned to the parameter type 'Iterable'
-LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Fail, OK
-LibTest/collection/ListQueue/ListQueue_class_A01_t01: Fail, OK
-LibTest/collection/Queue/Queue_class_A01_t01: Fail, OK
-
-Language/Statements/Switch/last_statement_t03: MissingStaticWarning
-Language/Statements/Assert/type_t04: MissingStaticWarning
-
-Language/Variables/final_t04: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_t05: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_t06: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_t07: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_or_static_initialization_t01: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_or_static_initialization_t02: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Variables/final_or_static_initialization_t03: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t17: MissingCompileTimeError # co19-roll r651: Please triage this failure
-Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t18: MissingCompileTimeError # co19-roll r651: Please triage this failure
-
-LibTest/convert/JsonEncoder/JsonEncoder_A01_t01: StaticWarning # co19-roll r667: Please triage this failure
-
-# co19 issue 656
-LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/notEqual_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/lessThan_A01_t01: Skip # co19 issue 656
-LibTest/typed_data/Float32x4/lessThanOrEqual_A01_t01: Skip # co19 issue 656
-
-WebPlatformTest/custom-elements/*: Pass, StaticWarning # Issue 18095.
-
-# co19 roll to r706: Please triage all these issues.
-Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t03: StaticWarning # co19-roll r706: Please triage this failure.
-Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t04: StaticWarning # co19-roll r706: Please triage this failure.
-Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t05: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/dom/DOMImplementation/createDocumentType-err_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/dom/Element/scrollWidth_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/html/article-element_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/html/aside-element_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # co19-roll r706: Please triage this failure.
-LayoutTests/fast/html/text-field-input-types_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Document/adoptNode_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Document/childNodes_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Document/importNode_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Document/securityPolicy_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/HttpRequest/responseText_A01_t02: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/HttpRequest/responseType_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure.
-LibTest/html/IFrameElement/attributeChanged_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/IFrameElement/contentWindow_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/IFrameElement/enteredView_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure.
-LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/document_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/moveBy_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/moveTo_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/moveTo_A02_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/postMessage_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/postMessage_A01_t02: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/requestFileSystem_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/requestFileSystem_A01_t02: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/requestFileSystem_A02_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/resizeBy_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/html/Window/resizeTo_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/isolate/ReceivePort/sendPort_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/math/Point/operator_addition_A02_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/math/Point/operator_mult_A03_t01: StaticWarning # co19-roll r706: Please triage this failure.
-LibTest/math/Point/operator_subtraction_A02_t01: StaticWarning # co19-roll r706: Please triage this failure.
-WebPlatformTest/dom/events/event_constants/constants_A01_t01: StaticWarning # co19-roll r706: Please triage this failure.
-
-# co19-roll r722
-LayoutTests/fast/dom/HTMLAnchorElement/anchor-ismap-crash_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-rebase_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLDocument/clone-node_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLInputElement/size-attribute_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLLabelElement/label-control_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLObjectElement/set-type-to-null-crash_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/IFrameElement/outerHtml_setter_A01_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/Node/childNodes_A01_t02: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/Node/contains_A01_t02: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/Node/dispatchEvent_A01_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/Node/nodes_A01_t01: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLScriptElement/isURLAttribute_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLScriptElement/script-async-attr_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: StaticWarning
-LayoutTests/fast/dom/HTMLTableElement/createCaption_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/MutationObserver/clear-transient-without-delivery_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/MutationObserver/disconnect-cancel-pending_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/MutationObserver/document-fragment-insertion_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/MutationObserver/mutation-record-constructor_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/MutationObserver/observe-exceptions_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/NodeList/nodelist-reachable_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/Range/missing-arguments_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/dom/Range/surroundContents-check-boundary-points_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LayoutTests/fast/html/imports/import-element-removed-flag_t01: StaticWarning # co19-roll r722: Please triage this failure.
-LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/collections/emptyName_A01_t03: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/DOMImplementation-createHTMLDocument_t01: CompileTimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Document-createElement-namespace_t01: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Document-createElement_t01: CompileTimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: CompileTimeError # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Node-appendChild_t02: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Node-contains_t01: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Node-isEqualNode_t01: StaticWarning # co19-roll r722: Please triage this failure.
-WebPlatformTest/dom/nodes/Node-parentNode_t01: StaticWarning # co19-roll r722: Please triage this failure.
-
-# co19-roll r738
-Language/Classes/Classes/method_definition_t06: MissingStaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/StyleSheet/detached-parent-rule-without-wrapper_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/StyleSheet/removed-media-rule-deleted-parent-crash_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/StyleSheet/removed-stylesheet-rule-deleted-parent-crash_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/Window/atob-btoa_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/Window/replaceable_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/Window/window-scroll-arguments_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/characterdata-api-arguments_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-cached-import-rule_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-insert-import-rule-twice_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-insert-import-rule_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-mediarule-deleteRule-update_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-mediarule-functions_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-mediarule-insertRule-update_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/css-rule-functions_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/destroy-selected-radio-button-crash_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/icon-url-change_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/icon-url-list_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/implementation-api-args_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/javascript-backslash_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/location-missing-arguments_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/option-properties_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/remove-named-attribute-crash_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: StaticWarning # co19-roll r738: Please triage this failure.
-LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/DOMEvents/approved/Event.bubbles.false_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.head_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/embedded-content/the-audio-element/audio_constructor_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: StaticWarning # co19-roll r738: Please triage this failure.
-WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: StaticWarning # co19-roll r738: Please triage this failure.
-
-# co19-roll r761
-LayoutTests/fast/animation/request-animation-frame-missing-arguments_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/backgrounds/001_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: StaticWarning # Issue 20939
-LayoutTests/fast/canvas/canvas-createImageBitmap-animated_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/canvas/webgl/webgl-specific_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/dom/text-api-arguments_t01: StaticWarning # co19-roll r761: Please triage this failure.
-LayoutTests/fast/html/imports/import-events_t01: StaticWarning # co19-roll r761: Please triage this failure.
-
-# co19-roll r786
-LayoutTests/fast/events/initkeyboardevent-crash_t01: StaticWarning # co19-roll r786: Please triage this failure.
-
-# co19-roll r801
-LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/inline/boundingBox-with-continuation_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/loader/about-blank-hash-kept_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/loader/hashchange-event-properties_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/media-query-list-syntax_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/mq-append-delete_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/mq-color-index_t02: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/mq-js-media-except_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/mq-js-media-except_t02: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/media/mq-parsing_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-lr/image-inside-nested-blocks-with-border_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/overflow/scroll-vertical-not-horizontal_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/ruby/after-doesnt-crash_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: StaticWarning # co19-roll r801: Please triage this failure.
-LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: StaticWarning # co19-roll r801: Please triage this failure.
-
-LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: StaticWarning # co19 issue 703
-WebPlatformTest/dom/Node-replaceChild_t01: CompileTimeError # co19-roll r761: Please triage this failure.
-WebPlatformTest/html/semantics/forms/the-input-element/email_t02: StaticWarning # co19 issue 701
-
-# isProtocolHandlerRegistered and unregisterProtocolHandler don't exist
-LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: StaticWarning # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: StaticWarning # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: StaticWarning # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: StaticWarning # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: StaticWarning # Please triage this failure.
-WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: StaticWarning # Please triage this failure.
-LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: StaticWarning # Please triage this failure.
-
-# co19 roll to Sep 29 2015 (3ed795ea02e022ef19c77cf1b6095b7c8f5584d0)
+Language/Classes/Classes/method_definition_t06: MissingStaticWarning # Please triage this failure.
+Language/Classes/Getters/static_getter_t02: CompileTimeError # Issue 24534
Language/Classes/Getters/static_t01: StaticWarning # Please triage this failure.
Language/Classes/Getters/type_object_t01: StaticWarning # Please triage this failure.
Language/Classes/Getters/type_object_t02: StaticWarning # Please triage this failure.
Language/Classes/Instance_Variables/definition_t03: StaticWarning # Please triage this failure.
-Language/Classes/Setters/type_object_t01: StaticWarning # Please triage this failure.
-Language/Classes/Setters/type_object_t02: StaticWarning # Please triage this failure.
-Language/Classes/Static_Methods/same_name_method_and_setter_t01: MissingStaticWarning # Please triage this failure.
-Language/Classes/Static_Methods/type_object_t01: StaticWarning # Please triage this failure.
-Language/Classes/Static_Methods/type_object_t02: StaticWarning # Please triage this failure.
-Language/Classes/method_definition_t06: MissingStaticWarning # Please triage this failure.
-Language/Expressions/Lookup/Method_Lookup/superclass_t07: StaticWarning # Please triage this failure.
-Language/Expressions/Lookup/Method_Lookup/superclass_t08: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t04: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t04: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t04: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t05: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t06: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t07: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t08: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t04: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t03: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t04: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t05: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/expression_evaluation_t07: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/no_such_method_t01: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t05: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t06: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t07: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t08: StaticWarning # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/deferred_type_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t02: CompileTimeError # Please triage this failure.
-Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t03: CompileTimeError # Please triage this failure.
-Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/inheritance_t03: StaticWarning # Please triage this failure.
-Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t01: CompileTimeError # Please triage this failure.
-Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t02: CompileTimeError # Please triage this failure.
-Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # Please triage this failure.
-Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # Please triage this failure.
-Language/Mixins/Mixin_Application/warning_t01: MissingStaticWarning # Please triage this failure.
-Language/Mixins/Mixin_Application/warning_t02: MissingStaticWarning # Please triage this failure.
-
-Language/Classes/Getters/static_getter_t02: CompileTimeError # Issue 24534
Language/Classes/Setters/name_t08: CompileTimeError # Issue 23777
Language/Classes/Setters/name_t09: CompileTimeError # Issue 23777
Language/Classes/Setters/name_t10: CompileTimeError # Issue 23777
@@ -361,11 +28,23 @@
Language/Classes/Setters/name_t13: CompileTimeError # Issue 23777
Language/Classes/Setters/name_t14: CompileTimeError # Issue 23777
Language/Classes/Setters/name_t15: CompileTimeError # Issue 23777
+Language/Classes/Setters/type_object_t01: StaticWarning # Please triage this failure.
+Language/Classes/Setters/type_object_t02: StaticWarning # Please triage this failure.
+Language/Classes/Static_Methods/same_name_method_and_setter_t01: MissingStaticWarning # Please triage this failure.
+Language/Classes/Static_Methods/type_object_t01: StaticWarning # Please triage this failure.
+Language/Classes/Static_Methods/type_object_t02: StaticWarning # Please triage this failure.
+Language/Classes/Superclasses/Inheritance_and_Overriding/inheritance_t05: MissingStaticWarning # TBF: Static members should not be accessible via subclasses.
+Language/Classes/method_definition_t06: MissingStaticWarning # Please triage this failure.
Language/Enums/syntax_t08: MissingCompileTimeError # Please triage this failure.
Language/Enums/syntax_t09: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Assignable_Expressions/syntax_t08: StaticWarning
Language/Expressions/Assignment/super_assignment_static_warning_t03: StaticWarning # Issue 15467
+Language/Expressions/Constants/exception_t01: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
+Language/Expressions/Constants/exception_t02: fail, OK # co19 issue #438, Static variables are initialized lazily, need not be constants
Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t03: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Function_Invocation/Unqualified_Invocation/instance_context_invocation_t04: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t17: MissingCompileTimeError # Please triage this failure
+Language/Expressions/Function_Invocation/Unqualified_Invocation/invocation_t18: MissingCompileTimeError # Please triage this failure
Language/Expressions/Identifier_Reference/built_in_identifier_t53: MissingCompileTimeError # Issue 25733
Language/Expressions/Identifier_Reference/built_in_identifier_t54: MissingCompileTimeError # Issue 25733
Language/Expressions/Identifier_Reference/built_in_identifier_t55: MissingCompileTimeError # Issue 25733
@@ -398,14 +77,104 @@
Language/Expressions/Identifier_Reference/built_in_not_dynamic_t31: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Identifier_Reference/built_in_not_dynamic_t32: MissingCompileTimeError # Please triage this failure.
Language/Expressions/Identifier_Reference/evaluation_type_parameter_t02: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Instance_Creation/Const/abstract_class_t01/01: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Instance_Creation/Const/abstract_class_t03/01: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Lookup/Method_Lookup/superclass_t07: StaticWarning # Please triage this failure.
+Language/Expressions/Lookup/Method_Lookup/superclass_t08: StaticWarning # Please triage this failure.
Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: MissingCompileTimeError # Issue 25496
Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: MissingCompileTimeError # Issue 25496
+Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t03: StaticWarning # Please triage this failure.
+Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t04: StaticWarning # Please triage this failure.
+Language/Expressions/Method_Invocation/Super_Invocation/accessible_instance_member_t05: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t01: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t02: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t03: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/named_parameters_t01: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Issue 23777
Language/Expressions/Property_Extraction/Anonymous_Constructor_Extraction: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/expression_evaluation_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t04: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t05: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t06: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t07: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t08: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t09: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t04: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t05: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t06: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t07: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t04: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t05: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t06: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t07: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t08: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t04: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t05: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t06: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t07: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t08: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t09: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t03: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t04: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t05: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t06: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t07: CompileTimeError # Issue 23777
Language/Expressions/Property_Extraction/General_Super_Property_Extraction: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t04: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t05: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t06: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t07: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/expression_evaluation_t07: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/no_such_method_t01: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t05: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t06: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t07: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/proxy_annotation_t08: StaticWarning # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t01: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t02: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/named_parameters_t01: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Issue 23777
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/deferred_type_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t02: CompileTimeError # Please triage this failure.
+Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t03: CompileTimeError # Please triage this failure.
Language/Expressions/Property_Extraction/Named_Constructor_Extraction: CompileTimeError # Issue 23777
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization: CompileTimeError # Issue 23777
Language/Expressions/Property_Extraction/Super_Closurization: CompileTimeError # Issue 23777
+Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/inheritance_t03: StaticWarning # Please triage this failure.
+Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t01: CompileTimeError # Please triage this failure.
+Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t02: CompileTimeError # Please triage this failure.
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # co19 issue 60.
Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: CompileTimeError # Please triage this failure.
+Language/Libraries_and_Scripts/Parts/compilation_t01: Pass, MissingCompileTimeError # Issue 26692
+Language/Libraries_and_Scripts/Parts/compilation_t02: Pass, MissingCompileTimeError # Issue 26692
+Language/Libraries_and_Scripts/Parts/compilation_t04: Pass, CompileTimeError # Issue 26592
+Language/Libraries_and_Scripts/Parts/compilation_t15: fail, pass # Issue 23595
+Language/Libraries_and_Scripts/Scripts/syntax_t11: Pass, CompileTimeError # Issue 26592
+Language/Mixins/Mixin_Application/error_t01: MissingCompileTimeError # Please triage this failure.
+Language/Mixins/Mixin_Application/error_t02: MissingCompileTimeError # Please triage this failure.
Language/Mixins/Mixin_Application/static_warning_t01: CompileTimeError # Issue 26409
Language/Mixins/Mixin_Application/static_warning_t02: CompileTimeError # Issue 26409
Language/Mixins/Mixin_Application/superinterfaces_t06: CompileTimeError # Issue 26409
@@ -420,42 +189,368 @@
Language/Mixins/Mixin_Application/syntax_t23: CompileTimeError # Issue 26409
Language/Mixins/Mixin_Application/syntax_t24: CompileTimeError # Issue 26409
Language/Mixins/Mixin_Application/syntax_t25: CompileTimeError # Issue 26409
+Language/Mixins/Mixin_Application/warning_t01: MissingStaticWarning # Please triage this failure.
+Language/Mixins/Mixin_Application/warning_t02: MissingStaticWarning # Please triage this failure.
Language/Mixins/declaring_constructor_t05: MissingCompileTimeError # Issue 24767
Language/Mixins/declaring_constructor_t06: MissingCompileTimeError # Issue 24767
+Language/Statements/Assert/type_t04: MissingStaticWarning
+Language/Statements/Switch/last_statement_t03: MissingStaticWarning
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t01: MissingCompileTimeError # Issue 25495
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t03: MissingCompileTimeError # Issue 25495
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
-
-Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t01: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t02: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t03: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/named_parameters_t01: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t01: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t02: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/named_parameters_t01: CompileTimeError # Issue 23777
-Language/Expressions/Identifier_Reference/evaluation_library_or_getter_t05: StaticWarning # Misspelled "@static-waning"
-LibTest/core/Set/IterableBase_A01_t01: StaticWarning # Imports libraries with static warnings
-LibTest/collection/LinkedHashSet/LinkedHashSet_class_A01_t01: StaticWarning # Imports libraries with static warnings
-LibTest/collection/IterableBase/IterableBase_class_A01_t02: StaticWarning # Imports libraries with static warnings
+Language/Types/Interface_Types/subtype_t12: fail, OK # co19 issue #442, undefined name "Expect"
+Language/Variables/final_or_static_initialization_t01: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_or_static_initialization_t02: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_or_static_initialization_t03: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_t04: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_t05: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_t06: MissingCompileTimeError # Please triage this failure
+Language/Variables/final_t07: MissingCompileTimeError # Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-missing-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/backgrounds/001_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: StaticWarning # Issue 20939
+LayoutTests/fast/canvas/canvas-createImageBitmap-animated_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/DOMImplementation/createDocumentType-err_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Element/scrollWidth_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLAnchorElement/anchor-ismap-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-rebase_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLBaseElement/href-attribute-resolves-with-respect-to-document_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLDialogElement/inert-does-not-match-disabled-selector_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLDocument/clone-node_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLInputElement/size-attribute_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLLabelElement/label-control_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLObjectElement/set-type-to-null-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLScriptElement/isURLAttribute_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLScriptElement/script-async-attr_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLScriptElement/script-set-src_t01: StaticWarning
+LayoutTests/fast/dom/HTMLTableElement/createCaption_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLTemplateElement/inertContents_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/HTMLTemplateElement/no-form-association_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/MutationObserver/clear-transient-without-delivery_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/MutationObserver/disconnect-cancel-pending_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/MutationObserver/document-fragment-insertion_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/MutationObserver/mutation-record-constructor_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/MutationObserver/observe-exceptions_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/NodeList/nodelist-reachable_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Range/missing-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Range/surroundContents-check-boundary-points_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/StyleSheet/detached-parent-rule-without-wrapper_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/StyleSheet/removed-media-rule-deleted-parent-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/StyleSheet/removed-stylesheet-rule-deleted-parent-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Window/atob-btoa_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Window/replaceable_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/characterdata-api-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-cached-import-rule_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-insert-import-rule-twice_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-insert-import-rule_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-mediarule-deleteRule-update_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-mediarule-functions_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-mediarule-insertRule-update_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/css-rule-functions_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/destroy-selected-radio-button-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/icon-url-change_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/icon-url-list_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/implementation-api-args_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/javascript-backslash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/location-missing-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: Skip # Please triage this failure. isProtocolHandlerRegistered and unregisterProtocolHandler don't exist
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/option-properties_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/remove-named-attribute-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/shadow/content-pseudo-element-css-text_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/shadow/content-pseudo-element-relative-selector-css-text_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/shadow/shadow-root-js-api_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/dom/text-api-arguments_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/events/event-creation_t01: Skip # Roll 45 OverflowEvent removed
+LayoutTests/fast/events/initkeyboardevent-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/forms/checkValidity-001_t01: fail
+LayoutTests/fast/html/article-element_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/aside-element_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/imports/import-events_t01: CompileTimeError # Please triage this failure.
+LayoutTests/fast/html/imports/import-events_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/select-dropdown-consistent-background-color_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/html/text-field-input-types_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/loader/about-blank-hash-kept_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/loader/hashchange-event-properties_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/media-query-list-syntax_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/mq-append-delete_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/mq-color-index_t02: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/mq-js-media-except_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/mq-js-media-except_t02: StaticWarning # Please triage this failure.
+LayoutTests/fast/media/mq-parsing_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/mediastream/RTCPeerConnection-AddRemoveStream_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/multicol/vertical-lr/image-inside-nested-blocks-with-border_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/overflow/scroll-vertical-not-horizontal_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/ruby/after-doesnt-crash_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: StaticWarning # Please triage this failure.
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: StaticWarning # Please triage this failure.
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-get_t01: Skip # Roll 45 clipboardData changed
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: StaticWarning # co19 issue 703
+LibTest/async/StreamController/EventSink_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/async/StreamController/StreamConsumer_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Fail, OK # co19 issue 642, The argument type 'int' cannot be assigned to the parameter type 'Iterable'
+LibTest/collection/HashMap/HashMap_class_A01_t01: StaticWarning # Please triage this failure.
LibTest/collection/HashSet/HashSet_class_A01_t01: StaticWarning # Imports libraries with static warnings
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t05: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t06: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t07: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t05: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t06: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t07: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t08: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/getter_lookup_t09: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t05: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t06: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t07: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t08: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t09: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t06: CompileTimeError # Issue 23777
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t07: CompileTimeError # Issue 23777
-Language/Libraries_and_Scripts/Scripts/syntax_t11: Pass, CompileTimeError # Issue 26592
-Language/Libraries_and_Scripts/Parts/compilation_t04: Pass, CompileTimeError # Issue 26592
-Language/Libraries_and_Scripts/Parts/compilation_t02: Pass, MissingCompileTimeError # Issue 26692
-Language/Libraries_and_Scripts/Parts/compilation_t01: Pass, MissingCompileTimeError # Issue 26692
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: StaticWarning # Imports libraries with static warnings
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: StaticWarning # Please triage this failure.
+LibTest/collection/LinkedHashMap/LinkedHashMap_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/LinkedHashSet/LinkedHashSet_class_A01_t01: StaticWarning # Imports libraries with static warnings
+LibTest/collection/ListQueue/ListQueue_class_A01_t01: Fail, OK # co19 issue 642, The argument type 'int' cannot be assigned to the parameter type 'Iterable'
+LibTest/collection/MapView/MapView_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/Queue/Queue_class_A01_t01: Fail, OK # co19 issue 642, The argument type 'int' cannot be assigned to the parameter type 'Iterable'
+LibTest/collection/SetBase/SetBase_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/SetMixin/SetMixin_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/SplayTreeMap/inherited_tests_A01_t01: StaticWarning # Please triage this failure.
+LibTest/collection/SplayTreeSet/SplayTreeSet_class_A01_t01: StaticWarning # Please triage this failure.
+LibTest/convert/JsonEncoder/JsonEncoder_A01_t01: StaticWarning # Please triage this failure
+LibTest/core/Set/IterableBase_A01_t01: StaticWarning # Imports libraries with static warnings
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: StaticWarning # Please triage this failure.
+LibTest/html/Document/adoptNode_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Document/childNodes_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Document/importNode_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Document/securityPolicy_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/HttpRequest/responseText_A01_t02: StaticWarning # Please triage this failure.
+LibTest/html/HttpRequest/responseType_A01_t03: CompileTimeError # Please triage this failure.
+LibTest/html/IFrameElement/attributeChanged_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/IFrameElement/contentWindow_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/IFrameElement/enteredView_A01_t01: CompileTimeError # Please triage this failure.
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Node/childNodes_A01_t02: StaticWarning # Please triage this failure.
+LibTest/html/Node/contains_A01_t02: StaticWarning # Please triage this failure.
+LibTest/html/Node/dispatchEvent_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Node/nodes_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/document_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/moveBy_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/moveTo_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/moveTo_A02_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/postMessage_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/postMessage_A01_t02: StaticWarning # Please triage this failure.
+LibTest/html/Window/requestFileSystem_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/requestFileSystem_A01_t02: StaticWarning # Please triage this failure.
+LibTest/html/Window/requestFileSystem_A02_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/resizeBy_A01_t01: StaticWarning # Please triage this failure.
+LibTest/html/Window/resizeTo_A01_t01: StaticWarning # Please triage this failure.
+LibTest/isolate/Isolate/spawnUri_A02_t01: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawnUri_A02_t06: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawnUri_A02_t07: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A02_t04: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A02_t05: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A02_t06: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A02_t07: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A04_t01: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A04_t02: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A04_t03: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A04_t04: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A04_t05: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A05_t03: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t01: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t02: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t03: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t04: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t05: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t06: StaticWarning # co19 issue 74
+LibTest/isolate/Isolate/spawn_A06_t07: StaticWarning # co19 issue 74
+LibTest/isolate/IsolateStream/any_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/any_A02_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/asBroadcastStream_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/contains_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/contains_A02_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/first_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/first_A02_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/first_A02_t02: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/isBroadcast_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/isBroadcast_A01_t02: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/isEmpty_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/last_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/last_A02_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/length_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/single_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/IsolateStream/single_A02_t01: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/receive_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/receive_A01_t02: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/sendPort_A01_t01: StaticWarning # Please triage this failure.
+LibTest/isolate/ReceivePort/toSendPort_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/toSendPort_A01_t02: Fail # Please triage this failure.
+LibTest/isolate/ReceivePort/toSendPort_A01_t03: Fail # Please triage this failure.
+LibTest/isolate/SendPort/call_A01_t01: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A02_t03: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A02_t04: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A02_t05: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A02_t06: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A03_t01: Fail # Please triage this failure.
+LibTest/isolate/SendPort/send_A03_t02: Fail # Please triage this failure.
+LibTest/math/Point/operator_addition_A02_t01: StaticWarning # Please triage this failure.
+LibTest/math/Point/operator_mult_A03_t01: StaticWarning # Please triage this failure.
+LibTest/math/Point/operator_subtraction_A02_t01: StaticWarning # Please triage this failure.
+LibTest/typed_data/Float32x4/equal_A01_t01: Skip # co19 issue 656
+LibTest/typed_data/Float32x4/greaterThanOrEqual_A01_t01: Skip # co19 issue 656
+LibTest/typed_data/Float32x4/greaterThan_A01_t01: Skip # co19 issue 656
+LibTest/typed_data/Float32x4/lessThanOrEqual_A01_t01: Skip # co19 issue 656
+LibTest/typed_data/Float32x4/lessThan_A01_t01: Skip # co19 issue 656
+LibTest/typed_data/Float32x4/notEqual_A01_t01: Skip # co19 issue 656
+WebPlatformTest/DOMEvents/approved/Event.bubbles.false_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/custom-elements/*: Pass, StaticWarning # Issue 18095.
+WebPlatformTest/dom/Node-replaceChild_t01: CompileTimeError # Please triage this failure.
+WebPlatformTest/dom/collections/emptyName_A01_t03: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/events/event_constants/constants_A01_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/DOMImplementation-createHTMLDocument_t01: CompileTimeError # Please triage this failure.
+WebPlatformTest/dom/nodes/Document-createElement-namespace_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/Document-createElement_t01: CompileTimeError # Please triage this failure.
+WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: CompileTimeError # Please triage this failure.
+WebPlatformTest/dom/nodes/Node-appendChild_t02: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/Node-contains_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/dom/nodes/Node-parentNode_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.head_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/document-metadata/styling/LinkStyle_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/embedded-content/the-audio-element/audio_constructor_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistelement_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/the-datalist-element/datalistoptions_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/semantics/forms/the-input-element/email_t02: StaticWarning # co19 issue 701
+WebPlatformTest/html/semantics/forms/the-textarea-element/textarea-type_t01: fail
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: StaticWarning # Please triage this failure.
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: StaticWarning # Please triage this failure.
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: StaticWarning # Please triage this failure.
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: StaticWarning # Please triage this failure.
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: StaticWarning # Please triage this failure.
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: StaticWarning # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: StaticWarning # Please triage this failure.
diff --git a/tests/co19/co19-co19.status b/tests/co19/co19-co19.status
index 9d68884..8b1627d 100644
--- a/tests/co19/co19-co19.status
+++ b/tests/co19/co19-co19.status
@@ -18,37 +18,30 @@
LibTest/core/RegExp/firstMatch_A01_t01: Fail # co19 issue 742
+[ $system == linux ]
+LibTest/collection/ListBase/ListBase_class_A01_t01: Fail # co19 issue 72
+LibTest/collection/ListBase/ListBase_class_A01_t02: Fail # co19 issue 72
+LibTest/collection/ListBase/listToString_A01_t01: Fail # co19 issue 72
+LibTest/collection/ListBase/listToString_A02_t01: Fail # co19 issue 72
+LibTest/collection/MapBase/MapBase_class_A01_t01: Fail # co19 issue 72
+LibTest/collection/MapMixin/MapMixin_class_A01_t01: Fail # co19 issue 72
+
[ $compiler != dart2analyzer ]
# Tests that fail on every runtime, but not on the analyzer.
-LibTest/isolate/ReceivePort/asBroadcastStream_A02_t01: Fail # co19 issue 687
-LibTest/async/Stream/asBroadcastStream_A02_t01: Fail # co19 issue 687
-
-LibTest/core/Symbol/Symbol_A01_t04: RuntimeError # Issue 25804
-
Language/Classes/same_name_type_variable_t04: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
Language/Classes/same_name_type_variable_t07: Pass, MissingCompileTimeError, Fail # Issue 14513,25525
-
Language/Expressions/Instance_Creation/Const/abstract_class_t01: Pass, Fail # co19 issue 66
Language/Expressions/Instance_Creation/Const/abstract_class_t03: Pass, Fail # co19 issue 66
-
-LibTest/math/acos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/asin_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/atan_A01_t01: PASS, FAIL, OK # Issue 26261
-
-LibTest/math/cos_A01_t01: PASS, FAIL, OK # Issue 26261
-LibTest/math/tan_A01_t01: PASS, FAIL, OK # Issue 26261
-
+LibTest/async/Stream/asBroadcastStream_A02_t01: Fail # co19 issue 687
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: RuntimeError # Issue 27183
+LibTest/collection/LinkedListEntry/unlink_A01_t02: Fail # co19 pull request 73
LibTest/core/Expando/Expando_A03_t01: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t03: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t04: RuntimeError # Issue 17735
LibTest/core/Expando/Expando_A03_t05: RuntimeError # Issue 17735
-
-LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t02: Fail # co19 issue 740
LibTest/core/RegExp/Pattern_semantics/firstMatch_CharacterEscape_A06_t02: RuntimeError # co19 issue 741
-
-LibTest/isolate/SendPort/send_A02_t02: SKIP # co19 issue 493 (not fixed in r672)
-LibTest/isolate/SendPort/send_A02_t03: SKIP # co19 issue 495 (not fixed in r672)
-
+LibTest/core/RegExp/Pattern_semantics/firstMatch_DecimalEscape_A01_t02: Fail # co19 issue 740
+LibTest/core/Symbol/Symbol_A01_t04: RuntimeError # Issue 25804
LibTest/isolate/IsolateStream/any_A01_t01: Fail # Co19 issue 639 (Fixed in r674)
LibTest/isolate/IsolateStream/asBroadcastStream_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/contains_A01_t01: Fail # Co19 issue 639
@@ -63,15 +56,24 @@
LibTest/isolate/IsolateStream/length_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/single_A01_t01: Fail # Co19 issue 639
LibTest/isolate/IsolateStream/single_A02_t01: Fail # Co19 issue 639
+LibTest/isolate/ReceivePort/asBroadcastStream_A02_t01: Fail # co19 issue 687
LibTest/isolate/ReceivePort/receive_A01_t01: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/receive_A01_t03: Fail # Co19 issue 639
LibTest/isolate/ReceivePort/sendPort_A01_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/call_A01_t01: Fail # Co19 issue 639
+LibTest/isolate/SendPort/send_A02_t02: SKIP # co19 issue 493 (not fixed in r672)
+LibTest/isolate/SendPort/send_A02_t03: SKIP # co19 issue 495 (not fixed in r672)
LibTest/isolate/SendPort/send_A02_t04: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t05: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A02_t06: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t01: Fail # Co19 issue 639
LibTest/isolate/SendPort/send_A03_t02: Fail # Co19 issue 639
+LibTest/math/acos_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/asin_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/atan_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/cos_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/tan_A01_t01: PASS, FAIL, OK # Issue 26261
+LibTest/math/log_A01_t01: PASS, FAIL, OK # Issue 26261
[ $runtime == dartium || $compiler == dart2js ]
LibTest/async/Future/Future.delayed_A01_t02: Pass, Fail # Issue 15524
diff --git a/tests/co19/co19-dart2js.status b/tests/co19/co19-dart2js.status
index d48159f..0fcf220 100644
--- a/tests/co19/co19-dart2js.status
+++ b/tests/co19/co19-dart2js.status
@@ -11,6 +11,10 @@
Language/Expressions/Method_Invocation/Ordinary_Invocation/syntax_t05: MissingCompileTimeError
Language/Expressions/Method_Invocation/Ordinary_Invocation/syntax_t10: MissingCompileTimeError
Language/Expressions/Method_Invocation/Super_Invocation/syntax_t05: MissingCompileTimeError
+# End of issue 26644
+Language/Variables/final_t01/01: CompileTimeError # co19 issue 77
+Language/Variables/final_t02/01: CompileTimeError # co19 issue 77
+LibTest/isolate/Isolate/spawn_A03_t01: CompileTimeError # co19 issue 77
Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError # compiler cancelled: cannot resolve type T
Language/Classes/Constructors/Generative_Constructors/execution_of_a_superinitializer_t01: RuntimeError, OK # co19 issue 258
@@ -58,6 +62,7 @@
Language/Expressions/Constants/identifier_denotes_a_constant_t07: MissingCompileTimeError # Issue 26580
Language/Expressions/Function_Invocation/async_generator_invokation_t08: Timeout, Skip # Issue 25967
Language/Expressions/Function_Invocation/async_generator_invokation_t10: Timeout, Skip # Issue 25967
+Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError, Pass # co19 issue 57
Language/Expressions/Identifier_Reference/built_in_identifier_t35: MissingCompileTimeError # Issue 25732
Language/Expressions/Identifier_Reference/built_in_identifier_t36: MissingCompileTimeError # Issue 25732
Language/Expressions/Identifier_Reference/built_in_identifier_t37: MissingCompileTimeError # Issue 25732
@@ -91,9 +96,9 @@
Language/Expressions/Numbers/syntax_t09: fail # Issue 21098
Language/Expressions/Object_Identity/Object_Identity/constant_objects_t01: fail # Issue 11551, also related to issue 563, 18738
Language/Expressions/Object_Identity/Object_Identity/double_t02: fail # Issue 11551, also related to issue 563, 18738
-Language/Expressions/Object_Identity/double_t03: RuntimeError # Please triage this failure
Language/Expressions/Object_Identity/constant_objects_t01: RuntimeError # Please triage this failure
Language/Expressions/Object_Identity/double_t02: RuntimeError # Please triage this failure
+Language/Expressions/Object_Identity/double_t03: RuntimeError # Please triage this failure
Language/Expressions/Object_Identity/object_t02: RuntimeError # Issue 1533 (int/double related)
Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t01: CompileTimeError # Issue 24607
Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t02: CompileTimeError # Issue 24607
@@ -135,13 +140,6 @@
Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t05: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t06: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/method_lookup_t07: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t05: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t06: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t07: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t08: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t09: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t06: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/General_Closurization/static_type_t07: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/no_accessible_member_t03: CompileTimeError # Please triage this failure
@@ -154,11 +152,19 @@
Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t03: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t04: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t05: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t06: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t07: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t08: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/setter_lookup_t09: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/static_type_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/static_type_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/static_type_t03: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/static_type_t04: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/General_Closurization/static_type_t05: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t06: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Closurization/static_type_t07: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/General_Super_Property_Extraction: CompileTimeError # Issue 26287
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t01: MissingCompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t02: MissingCompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t03: MissingCompileTimeError # Please triage this failure
@@ -169,11 +175,10 @@
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/class_object_member_t08: MissingCompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/expression_evaluation_t07: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Getter_Access_and_Method_Extraction/no_such_method_t01: RuntimeError # Please triage this failure
-
-Language/Expressions/Property_Extraction/General_Super_Property_Extraction: CompileTimeError # Issue 26287
-
Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t02: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/named_parameters_t01: CompileTimeError # Please triage this failure
+Language/Expressions/Property_Extraction/Named_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/closurization_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/closurization_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/deferred_type_t01: CompileTimeError # Please triage this failure
@@ -181,7 +186,6 @@
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malbounded_type_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/malformed_type_t02: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/named_parameters_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/no_such_method_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/no_such_method_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/not_class_t01: CompileTimeError # Please triage this failure
@@ -191,7 +195,6 @@
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/static_type_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/static_type_t03: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Named_Constructor_Extraction/static_type_t04: CompileTimeError # Please triage this failure
-Language/Expressions/Property_Extraction/Named_Constructor_Closurization/positional_parameters_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/getter_closurization_t01: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/getter_closurization_t02: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/getter_closurization_t03: CompileTimeError # Please triage this failure
@@ -235,15 +238,14 @@
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/setter_closurization_t06: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/setter_closurization_t07: CompileTimeError # Please triage this failure
Language/Expressions/Property_Extraction/Ordinary_Member_Closurization/setter_closurization_t08: CompileTimeError # Please triage this failure
-
Language/Expressions/Property_Extraction/Super_Closurization: CompileTimeError # Issue 26287
-
Language/Expressions/Property_Extraction/Super_Getter_Access_and_Method_Closurization/no_such_method_t01: RuntimeError # Please triage this failure
Language/Functions/External_Functions/not_connected_to_a_body_t01: CompileTimeError, OK # Issue 5021
Language/Generics/syntax_t17: fail # Issue 21203
Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t01: CompileTimeError # Please triage this failure
Language/Interfaces/Superinterfaces/Inheritance_and_Overriding/same_name_method_and_getter_t02: CompileTimeError # Please triage this failure
-Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: CompileTimeError # Please triage this failure
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: CompileTimeError # co19 issue 60
+Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01/01: CompileTimeError # Please triage this failure
Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: CompileTimeError # Please triage this failure
Language/Libraries_and_Scripts/Scripts/top_level_main_t05: RuntimeError # Please triage this failure
Language/Metadata/before_export_t01: RuntimeError # Please triage this failure
@@ -274,8 +276,6 @@
Language/Mixins/reference_to_super_t01: MissingCompileTimeError # Please triage this failure
Language/Reference/Lexical_Rules/Reserved_Words/whitespace_t04: MissingCompileTimeError # Checks that other Unicode whitespaces are not allowed: check NO-BREAK SPACE (U+00A0)
Language/Reference/Lexical_Rules/whitespace_t06: MissingCompileTimeError # Checks that Unicode whitespaces other than WHITESPACE are not permitted in the source code. Checks symbol U+00a0.
-Language/Reference/Operator_Precedence/precedence_12_Shift_t02: RuntimeError # Issue 26573
-Language/Reference/Operator_Precedence/precedence_15_unary_prefix_t04: RuntimeError # Issue 26573
Language/Reference/Operator_Precedence/precedence_15_unary_prefix_t08: RuntimeError # Please triage this failure
Language/Statements/Continue/async_loops_t09: Crash # Please triage this failure
Language/Statements/Local_Function_Declaration/reference_before_declaration_t01: MissingCompileTimeError # Issue 21050
@@ -288,13 +288,12 @@
Language/Statements/Yield_and_Yield_Each/Yield_Each/location_t05: MissingCompileTimeError # Issue 25495
Language/Types/Dynamic_Type_System/deferred_type_error_t01: RuntimeError # Please triage this failure
Language/Types/Interface_Types/subtype_t27: Skip # Times out or crashes. Issue 21174
-Language/Types/Interface_Types/subtype_t30: fail # Issue 14654
Language/Types/Interface_Types/subtype_t28: Pass, Fail, Crash # Stack overflow. Issue 25282
-Language/Variables/final_t01: fail # Issue 21093
-Language/Variables/final_t02: fail # Issue 21093
+Language/Types/Interface_Types/subtype_t30: fail # Issue 14654
Language/Variables/local_variable_t01: MissingCompileTimeError # Issue 21050
LayoutTests/fast/dom/css-innerHTML_t01: SkipByDesign # Test is incorrect.
LayoutTests/fast/loader/loadInProgress_t01: Skip # Issue 23466
+LibTest/collection/LinkedHashSet/LinkedHashSet.from_A03_t01: RuntimeError # Please triage this failure.
LibTest/collection/LinkedList/add_A01_t01: Pass, Slow # Slow tests that needs extra time to finish.
LibTest/collection/ListBase/ListBase_class_A01_t01: RuntimeError # Please triage this failure
LibTest/collection/ListMixin/ListMixin_class_A01_t01: RuntimeError # Please triage this failure
@@ -302,8 +301,8 @@
LibTest/convert/JsonCodec/encode_A01_t02: RuntimeError # code.google.com/p/co19/issues/detail?id=735
LibTest/convert/JsonDecoder/fuse_A01_t01: RuntimeError # co19-roll r667: Please triage this failure
LibTest/convert/JsonEncoder/convert_A01_t01: RuntimeError # co19-roll r667: Please triage this failure
-LibTest/core/DateTime/DateTime_A01_t03: fail # co19-roll r546: Please triage this failure
LibTest/core/DateTime/DateTime.fromMicrosecondsSinceEpoch_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/DateTime/DateTime_A01_t03: fail # co19-roll r546: Please triage this failure
LibTest/core/DateTime/microsecond_A01_t01: RuntimeError # Please triage this failure
LibTest/core/DateTime/microsecondsSinceEpoch_A01_t01: RuntimeError # Please triage this failure
LibTest/core/DateTime/parse_A01_t03: RuntimeError # Please triage this failure
@@ -337,8 +336,12 @@
LibTest/isolate/Isolate/spawnUri_A01_t03: Fail # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t04: Fail # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t05: Fail # Dart issue 15974
+LibTest/isolate/Isolate/spawnUri_A01_t06: RuntimeError # Dart issue 15974
+LibTest/isolate/Isolate/spawnUri_A01_t07: RuntimeError # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError, Pass # Dart issue 15617
LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError, Pass # Dart issue 15617
+LibTest/isolate/Isolate/spawn_A04_t01: RuntimeError # Dart issue 15974
+LibTest/isolate/Isolate/spawn_A06_t06: Skip # Times out. Please triage this failure.
LibTest/isolate/SendPort/send_A01_t01: CompileTimeError # co19-roll r706: Please triage this failure
LibTest/isolate/SendPort/send_A01_t02: CompileTimeError # co19-roll r706: Please triage this failure
LibTest/isolate/SendPort/send_A01_t03: CompileTimeError # co19-roll r706: Please triage this failure
@@ -458,7 +461,6 @@
WebPlatformTest/dom/nodes/Document-createElement_t01: CompileTimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/dom/nodes/Element-childElementCount-nochild_t01: CompileTimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Pass, Slow
-Language/Expressions/Function_Invocation/async_invokation_t04: RuntimeError, Pass # co19 issue 57
[ $compiler == dart2js && $checked ]
Language/Errors_and_Warnings/static_warning_t02: RuntimeError # Please triage this failure
@@ -466,6 +468,9 @@
Language/Errors_and_Warnings/static_warning_t04: RuntimeError # Please triage this failure
Language/Errors_and_Warnings/static_warning_t05: RuntimeError # Please triage this failure
Language/Errors_and_Warnings/static_warning_t06: RuntimeError # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_super_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/Compound_Assignment/null_aware_static_warning_variable_t01/01: Fail # Please triage this failure
+Language/Expressions/Assignment/super_assignment_static_warning_t04/01: Fail # Please triage this failure
Language/Expressions/Assignment/super_assignment_dynamic_error_t01: RuntimeError # Please triage this failure
Language/Expressions/Function_Expressions/static_type_dynamic_async_t03: RuntimeError # Please triage this failure
Language/Expressions/Function_Expressions/static_type_dynamic_asyncs_t03: RuntimeError # Please triage this failure
@@ -480,18 +485,13 @@
Language/Functions/async_return_type_t01: RuntimeError # Please triage this failure
Language/Functions/generator_return_type_t01: RuntimeError # Please triage this failure
Language/Functions/generator_return_type_t02: RuntimeError # Please triage this failure
-Language/Libraries_and_Scripts/Imports/deferred_import_t02: RuntimeError # co19 issue 60
Language/Statements/Switch/execution_t01: Fail # Missing type check in switch expression
Language/Statements/Switch/type_t01: RuntimeError # Issue 16089
Language/Statements/Return/runtime_type_t04: RuntimeError # Issue 26584
Language/Types/Static_Types/malformed_type_t01: RuntimeError # Issue 21089
Language/Types/Dynamic_Type_System/malbounded_type_error_t01: RuntimeError # Issue 21088
Language/Types/Parameterized_Types/malbounded_t06: RuntimeError # Issue 21088
-#LibTest/async/Future/whenComplete_A01_t01: Timeout, Skip # Please triage this failure
-#LibTest/async/Stream/Stream.eventTransformed_A01_t01: Timeout, Skip # Please triage this failure
-#LibTest/async/Stream/join_A02_t01: Timeout, Skip # Please triage this failure
-#LibTest/async/Stream/last_A02_t01: Timeout, Skip # Please triage this failure
-#LibTest/async/Stream/listen_A03_t01: Timeout, Skip # Please triage this failure
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timesout. Please triage this failure.
LibTest/core/Map/Map_class_A01_t04: Slow, Pass
LibTest/core/Uri/Uri_A06_t03: Slow, Pass
LibTest/math/Point/operator_mult_A02_t01: RuntimeError # Issue 1533
@@ -539,118 +539,11 @@
Language/Metadata/compilation_t09: Pass # mirrors not supported, fails for the wrong reason
Language/Metadata/compilation_t10: Pass # mirrors not supported, fails for the wrong reason
Language/Metadata/compilation_t11: Pass # mirrors not supported, fails for the wrong reason
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
-WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
-WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
WebPlatformTest/shadow-dom/testcommon: Fail # mirrors not supported
+[ $compiler == dart2js && ($runtime == jsshell || ($fast_startup && ($runtime != chrome && $runtime != ff && $runtime != drt)))]
+LibTest/isolate/Isolate/spawn_A04_t04: Fail # please triage
+
[ $compiler == dart2js && $fast_startup && $runtime == jsshell ]
LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: Fail # please triage
@@ -665,6 +558,39 @@
LayoutTests/fast/dom/custom/element-type_t01: Fail # custom elements not supported
LayoutTests/fast/dom/custom/element-upgrade_t01: Fail # please triage
LayoutTests/fast/dom/custom/type-extensions_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: Fail # please triage
+
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: Fail # please triage
WebPlatformTest/custom-elements/concepts/type_A07_t01: Fail # custom elements not supported
WebPlatformTest/custom-elements/concepts/type_A08_t01: Fail # please triage
WebPlatformTest/custom-elements/instantiating/createElementNS_A01_t01: Fail # please triage
@@ -675,10 +601,83 @@
WebPlatformTest/custom-elements/instantiating/isAttribute_A03_t01: Fail # please triage
WebPlatformTest/custom-elements/instantiating/localName_A01_t01: Fail # please triage
+[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome && $runtime != drt]
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-event-interface/event-path-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-011_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-012_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-013_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-007_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-010_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/event-retargeting/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t03: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t04: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-002_t01: Fail # please triage
+
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-001_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/html-forms/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/html-elements-in-shadow-trees/inert-html-elements/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/composition/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/hosting-multiple-shadow-trees/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/distribution-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/nested-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/rendering-shadow-trees/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/reprojection/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-005_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/satisfying-matching-criteria/test-017_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/dom-tree-accessors-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/shadow-root-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-011_t01: Fail # please triage
+
+[ $compiler == dart2js && $fast_startup && $browser && $runtime != chrome ]
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: Fail # please triage
+
+[ $compiler == dart2js && $fast_startup && $browser && $runtime != drt ]
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-004_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-002_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-003_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-004_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-005_t01: Fail # custom elements not supported
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-006_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-007_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-008_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/events-that-are-always-stopped/test-009_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t01: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t02: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t05: Fail # please triage
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Fail # please triage
[ $compiler == dart2js && $checked != true ]
Language/Expressions/Property_Extraction/General_Super_Property_Extraction/getter_lookup_t02: Timeout, Skip # Please triage this failure
Language/Expressions/Property_Extraction/Super_Closurization/setter_closurization_t09: CompileTimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A02_t04: RuntimeError # Issue 27185
+LibTest/isolate/Isolate/spawn_A02_t05: RuntimeError # Issue 27185
[ $compiler == dart2js && $minified ]
LibTest/typed_data/Float32List/runtimeType_A01_t01: fail # co19-roll r559: Please triage this failure
@@ -718,6 +717,9 @@
Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_async_t10: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Future/Future.delayed_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Future/Future.delayed_A03_t01: fail # Issue 7728, timer not supported in jsshell
+LibTest/async/Future/doWhile_A05_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/forEach_A04_t02: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Future/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
LibTest/async/Future/wait_A01_t07: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Stream/Stream.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Stream/Stream.periodic_A02_t01: fail # Issue 7728, timer not supported in jsshell
@@ -726,6 +728,10 @@
LibTest/async/Stream/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Stream/first_A01_t01: fail # co19-roll r546: Please triage this failure
LibTest/async/Stream/first_A02_t02: fail # co19-roll r546: Please triage this failure
+LibTest/async/Stream/timeout_A01_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A02_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A03_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
+LibTest/async/Stream/timeout_A04_t01: RuntimeError # Please triage. May be unsupported timer issue 7728.
LibTest/async/Timer/Timer.periodic_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Timer/Timer.periodic_A02_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/async/Timer/Timer_A01_t01: fail # Issue 7728, timer not supported in jsshell
@@ -750,6 +756,17 @@
LibTest/core/Stopwatch/start_A01_t03: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Stopwatch/stop_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/core/Uri/Uri_A06_t03: Pass, Slow
+LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
+LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A04_t05: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t02: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t03: Fail # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Please triage this failure
+LibTest/isolate/Isolate/spawn_A06_t07: Fail # Please triage this failure
LibTest/isolate/RawReceivePort/close_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/isolate/ReceivePort/asBroadcastStream_A03_t01: RuntimeError # Issue 7728, timer not supported in jsshell
LibTest/isolate/ReceivePort/asBroadcastStream_A04_t03: RuntimeError # Issue 7728, timer not supported in jsshell
@@ -798,15 +815,15 @@
LibTest/core/int/toRadixString_A01_t01: RuntimeError, OK # Bad test: uses Expect.fail, Expect.throws, assumes case of result, and uses unsupported radixes.
[ $compiler == dart2js && $runtime == d8 ]
+LibTest/isolate/Isolate/spawn_A03_t01: Pass # co19 issue 77
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Please triage this failure.
LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: fail # co19-roll r587: Please triage this failure
LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Issue 7728, timer not supported in jsshell
+
[ $compiler == dart2js && $runtime == d8 && $system == windows ]
LibTest/async/DeferredLibrary/*: Skip # Issue 17458
-[ $compiler == dart2js && ($runtime == drt || $runtime == opera) ]
-*: Skip
-
[ $compiler == dart2js && $browser ]
Language/Classes/deсlarations_t01: Skip # Times out. Please triage this failure.
Language/Classes/deсlarations_t34: Skip # Times out. Please triage this failure.
@@ -1060,13 +1077,12 @@
LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-01_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/46
LayoutTests/fast/css/content/content-quotes-05_t01: RuntimeError # Issue https://github.com/dart-lang/co19/issues/46
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/css-escaped-identifier_t01: RuntimeError # co19 issue 14
LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/cssText-shorthand_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/csstext-of-content-string_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/ex-unit-with-no-x-height_t01: Pass, RuntimeError # Please triage this failure
@@ -1142,7 +1158,7 @@
LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-strict-mode-wtih-checkbox_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Document/CaretRangeFromPoint/hittest-relative-to-viewport_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Please triage this failure.
LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
@@ -1252,10 +1268,6 @@
LayoutTests/fast/dom/shadow/host-context-pseudo-class-css-text_t01: RuntimeError # https://github.com/dart-lang/co19/issues/49
LayoutTests/fast/dom/shadow/host-pseudo-class-css-text_t01: RuntimeError # https://github.com/dart-lang/co19/issues/49
LayoutTests/fast/dom/shadow/olderShadowRoot_t01: RuntimeError # Issue 26729
-LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Issue 26729
-LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Issue 26729
-LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Issue 26729
-LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Issue 26729
LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
@@ -1265,7 +1277,11 @@
LayoutTests/fast/dom/shadow/shadow-disable_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/dom/shadow/shadow-element-inactive_t01: RuntimeError # Issue 25155
LayoutTests/fast/dom/shadow/shadow-removechild-and-blur-event_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowdom-for-input-spellcheck_t01: RuntimeError # Issue 26729
+LayoutTests/fast/dom/shadow/shadowdom-for-input-type-change_t01: RuntimeError # Issue 26729
LayoutTests/fast/dom/shadow/shadowhost-keyframes_t01: Pass, RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/shadowroot-clonenode_t01: RuntimeError # Issue 26729
+LayoutTests/fast/dom/shadow/shadowroot-host_t01: RuntimeError # Issue 26729
LayoutTests/fast/dom/shadow/shadowroot-keyframes_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/dynamic/crash-generated-counter_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dynamic/crash-generated-image_t01: RuntimeError # Please triage this failure
@@ -1335,7 +1351,6 @@
LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-hit-test-border_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-maxlength_t01: RuntimeError # co19 issue 62
LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/menulist-disabled-selected-option_t01: RuntimeError # Please triage this failure
@@ -1401,7 +1416,6 @@
LayoutTests/fast/multicol/newmulticol/balance_t09: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # co19 issue 63
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
@@ -1745,7 +1759,9 @@
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: Skip # Times out
WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
@@ -1764,7 +1780,6 @@
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-001_t06: Skip # Times out. Please triage this failure
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: Pass, RuntimeError, Timeout # Please triage this failure
WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: Skip # Times out. Please triage this failure
-WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
@@ -1774,6 +1789,8 @@
WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-005_t01: RuntimeError # Issue 25155
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-007_t01: RuntimeError # Issue 25155
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
@@ -1872,7 +1889,6 @@
LayoutTests/fast/dom/HTMLOutputElement/htmloutputelement_t01: RuntimeError # Please triage this failure
LayoutTests/fast/dom/MutationObserver/observe-attributes_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
LayoutTests/fast/text/glyph-reordering_t01: RuntimeError # Please triage this failure
@@ -1981,7 +1997,6 @@
LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/newmulticol/balance_t04: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # co19 issue #65
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left_t01: RuntimeError # Please triage this failure
LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t02: RuntimeError # Please triage this failure
LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
@@ -2002,6 +2017,768 @@
LayoutTests/fast/text/international/combining-marks-position_t01: RuntimeError # Please triage this failure
LibTest/math/log_A01_t01: RuntimeError # Please triage this failure
+[ $compiler == dart2js && $runtime == drt ]
+Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t02: Pass # Fails on _all_ other platforms. Please triage
+LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/backgrounds/repeat/parsing-background-repeat_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/alpha_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-arc-negative-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-as-image-incremental-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-as-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-css-crazy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-empty-image-pattern_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-large-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-getImageData-largeNonintegralDimensions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-lineDash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/canvas-putImageData_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/crash-set-font_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/draw-custom-focus-ring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/WebGLContextEvent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/array-bounds-clamping_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/attrib-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/bad-arguments-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-bind-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/buffer-data-array-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-2d-webgl-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-resize-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/canvas-zero-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/compressed-tex-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-attributes-alpha-depth-stencil-antialias-t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-destroyed-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/context-lost_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/copy-tex-image-and-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/css-webkit-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-arrays-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-elements-out-of-bounds_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/draw-webgl-to-canvas-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/drawingbuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/error-reporting_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-bindings-unaffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-object-attachment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/framebuffer-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/functions-returning-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/get-active-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-bind-attrib-location-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enable-enum-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-enum-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getshadersource_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-getstring_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-object-get-calls_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-pixelstorei_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-teximage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-uniformmatrix4fv_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib-zero-issues_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertex-attrib_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/gl-vertexattribpointer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/glsl-conformance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/incorrect-context-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-copies-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-crash-with-buffer-sub-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-verifies-too-many-indices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation-with-resized-buffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/index-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-UTF-16_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/invalid-passed-params_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/is-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-object-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/null-uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/object-deletion-behaviour_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-element-index-uint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/oes-vertex-array-object_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/point-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/premultiplyalpha-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/program-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-pack-alignment_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/read-pixels-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderbuffer-initialization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/renderer-and-vendor-strings_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/shader-precision-format_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-canvas_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgb565_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba4444_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video-rgba5551_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-sub-image-2d-with-video_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-and-uniform-binding-bugs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-image-webgl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-input-validation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d-bad-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-2d_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/tex-sub-image-cube-maps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImage2DImageDataTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texImageTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-active-bind_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-bindings-uneffected-on-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/uninitialized-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/viewport-unchanged-upon-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes-repaint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-composite-modes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-depth-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-large-texture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-layer-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-specific_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-texture-binding-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-unprefixed-context-id_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/canvas/webgl/webgl-viewport-parameters-preserved_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-generated-content/pseudo-element-events_t01: Skip # Times out.
+LayoutTests/fast/css-generated-content/pseudo-transition-event_t01: Skip # Times out.
+LayoutTests/fast/css-generated-content/pseudo-transition_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-and-minmax-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-columns_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/flex-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-columns-rows-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-auto-flow-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-container-change-explicit-grid-recompute-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-border-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-empty-row-column_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-min-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-area-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-named-area-auto-placement_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-bad-resolution-double-span_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-change-order-auto-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-display_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-order-auto-flow-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/justify-self-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/MarqueeLayoutTest_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-inheritance_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/auto-min-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/deprecated-flexbox-auto-min-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/font-face-unicode-range-load_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/html-attr-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/id-or-class-before-stylesheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/inherit-initial-shorthand-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/invalid-predefined-color_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/modify-ua-rules-from-javascript_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/pseudo-target-indirect-sibling-001_t01: Skip # Times out.
+LayoutTests/fast/css/pseudo-target-indirect-sibling-002_t01: Skip # Times out.
+LayoutTests/fast/css/sticky/parsing-position-sticky_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/sticky/remove-inline-sticky-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-nested_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-dom-operation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-with-important-rule_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-first-alternate-on-load-sheet_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/stylesheet-enable-second-alternate-link_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/word-break-user-modify-allowed-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/52776_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMException/XPathException_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/DOMImplementation/createDocument-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/caretRangeFromPoint-in-zoom-and-scroll_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/CaretRangeFromPoint/replace-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Document/createElementNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/attribute-uppercase_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/getClientRects_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Element/setAttributeNS-namespace-err_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-hostname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-pathname_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-port_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-protocol_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLAnchorElement/set-href-attribute-search_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-autofocus_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/dialog-scrolled-viewport_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unfocusable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/inert-node-is-unselectable_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/multiple-centered-dialogs_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/non-anchored-dialog-positioning_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/show-modal-focusing-steps_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDocument/set-focus-on-valid-element_t01: Skip # Times out.
+LayoutTests/fast/dom/HTMLElement/set-inner-outer-optimization_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLElement/spellcheck_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLFormElement/move-option-between-documents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLHtmlElement/duplicate-html-element-crash_t01: Skip # Times out.
+LayoutTests/fast/dom/HTMLImageElement/parse-src_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLabelElement/form/test1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLLinkElement/link-beforeload-recursive_t01: Skip # Times out.
+LayoutTests/fast/dom/HTMLLinkElement/resolve-url-on-insertion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLObjectElement/beforeload-set-text-crash_t01: Skip # Times out.
+LayoutTests/fast/dom/HTMLOptionElement/collection-setter-getter_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLOutputElement/dom-settable-token-list_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/async-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/defer-onbeforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/remove-in-beforeload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLScriptElement/remove-source_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/remove-element-from-within-focus-handler-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLSelectElement/selected-index-preserved-when-option-text-changes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/custom-element-wrapper-gc_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTemplateElement/ownerDocumentXHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/observe-childList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/MutationObserver/weak-callback-gc-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/fragment-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Node/initial-values_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/NodeIterator/NodeIterator-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/bug-19527_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/insertNode-empty-fragment-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-constructor_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-detached-exceptions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-separate-endContainer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Range/range-insertNode-splittext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/SelectorAPI/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/css-medialist-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/StyleSheet/detached-stylesheet-without-wrapper_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/TreeWalker/TreeWalker-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize-contents_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-scroll-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/anchor-without-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/attribute-namespaces-get-set_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/characterdata-api-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/client-width-height-quirks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/dataset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/document-importNode-arguments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/domparser-parsefromstring-mimetype-support_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/011_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/getElementsByClassName/dumpNodeList_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-in-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/horizontal-scrollbar-when-dir-change_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/is-protocol-handler-registered_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/navigatorcontentutils/unregister-protocol-handler_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/object-plugin-hides-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/partial-layout-overlay-scrollbars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/set-innerHTML_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/event-path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-checked-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-disabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-optgroup_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/shadow/pseudoclass-update-enabled-option_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dynamic/ancestor-to-absolute_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/add-event-without-document_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Skip # Times out.
+LayoutTests/fast/events/document-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-creation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-listener-html-non-html-confusion_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/event-trace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/initkeyboardevent-crash_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/invalid-004_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-flow_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/exclusions/parsing/parsing-wrap-through_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-parts-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/blob-slice-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/url-null_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/files/xhr-response-blob_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/directory-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-entry-to-uri_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/autofocus-focus-only-once_t01: Skip # Times out.
+LayoutTests/fast/forms/date/input-valueasdate-date_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/datetimelocal/input-valueasdate-datetimelocal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/file/file-input-capture_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-appearance-elementFromPoint_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/option-strip-unicode-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/parser-associated-form-removal_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-large-size_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/select-clientheight-with-multiple-attr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/forms/setrangetext_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/details-add-child-2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-element-removed-flag_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/imports/import-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/unknown-tag_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/boundingBox-with-continuation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/continuation-inlines-inserted-in-reverse-after-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-position-top-align_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/out-of-flow-objects-and-whitespace-after-empty-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/about-blank-hash-change_t01: Skip # Times out.
+LayoutTests/fast/loader/about-blank-hash-kept_t01: Skip # Times out.
+LayoutTests/fast/loader/hashchange-event-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/onhashchange-attribute-listeners_t01: Skip # Times out.
+LayoutTests/fast/loader/scroll-position-restored-on-back_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/scroll-position-restored-on-reload-at-load-event_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/loader/stateobjects/replacestate-in-onunload_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-clip-path-shape_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/masking/parsing-mask_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/media/media-query-list-syntax_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/break-properties_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/cssom-view_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-above-or-below_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-end-of-column-with-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/hit-test-float_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/foster-parent-adopted_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/fragment-parser-doctype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/innerhtml-with-prefixed-elements_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/container-width-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/preferred-widths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/table-percent-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/ruby/ruby-line-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-diamond-margin-polygon_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-image-margin_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/shape-outside-floats/shape-outside-rounded-boxes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-boundary-events_t01: Skip # Times out.
+LayoutTests/fast/speechsynthesis/speech-synthesis-cancel_t01: Skip # Times out.
+LayoutTests/fast/speechsynthesis/speech-synthesis-pause-resume_t01: Skip # Times out.
+LayoutTests/fast/speechsynthesis/speech-synthesis-speak_t01: Skip # Times out.
+LayoutTests/fast/speechsynthesis/speech-synthesis-utterance-uses-voice_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/speechsynthesis/speech-synthesis-voices_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/disallowed-storage_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/storage/storage-disallowed-in-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/sub-pixel/cssom-subpixel-precision_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/getbbox_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-angle_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-integer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length-invalid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-length_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/svg/whitespace-number_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/caption-orthogonal-writing-mode-sizing_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/hittest-tablecell-with-borders-right-edge_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/large-shrink-wrapped-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/margins-perpendicular-containing-block_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-block-table_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-css-inline-table_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-block-table_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/min-width-html-inline-table_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/nested-tables-with-div-offset_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/padding-height-and-override-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows-except-overlapped_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-all-rowspans-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-height-distribution-in-rows_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-with-content-width-exceeding-max-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text-autosizing/vertical-writing-mode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/find-spaces_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/cjk-segmentation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/iso-8859-8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/international/thai-offsetForPosition-inside-character_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-question-mark_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/offsetForPosition-cluster-at-zero_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-ltr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-pixel_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-rtl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-vertical_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/sub-pixel/text-scaling-webfont_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/transforms/hit-test-large-scale_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file-http-base_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/file_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/host_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2003_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/idna2008_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/invalid-urls-utf8_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv4_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/ipv6_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/path_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/query_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-unix_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative-win_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments-from-data-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/standard-url_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/display-mutation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/table-hit-test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responseXML-xml-text-responsetype_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xmlhttprequest/xmlhttprequest-responsetype-arraybuffer_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/cz_20030217_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Borrowed/namespace-nodes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_core_functions_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_node_test_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/4XPath/Core/test_parser_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ambiguous-operators_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/attr-namespace_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/ensure-null-namespace_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/implicit-node-args_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/node-name-case-sensitivity_t02: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/position_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/abbreviations_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/data_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/expressions_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/py-dom-xpath/paths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/reverse-axes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xsl/default-html_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t05: RuntimeError # Please triage this failure
+LibTest/core/RegExp/Pattern_semantics/firstMatch_NonEmptyClassRanges_A01_t06: RuntimeError # Please triage this failure
+LibTest/core/int/compareTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_left_shift_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/operator_remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/operator_truncating_division_A01_t02: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t01: RuntimeError # Please triage this failure
+LibTest/core/int/remainder_A01_t03: RuntimeError # Please triage this failure
+LibTest/core/int/toRadixString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/CanvasRenderingContext2D/addEventListener_A01_t06: RuntimeError # Please triage this failure
+LibTest/html/Document/childNodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Document/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Document/securityPolicy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/contentEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/dataset_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getAttributeNS_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/isContentEditable_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/mouseWheelEvent_A01_t01: Skip # Times out.
+LibTest/html/Element/onMouseWheel_A01_t01: Skip # Times out.
+LibTest/html/Element/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Element/querySelectorAll_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/replaceWith_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Element/transitionEndEvent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getAllResponseHeaders_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getResponseHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/getString_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/onError_A01_t02: Skip # Times out.
+LibTest/html/HttpRequest/request_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/responseText_A01_t02: Skip # Times out.
+LibTest/html/HttpRequest/responseType_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/setRequestHeader_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/statusText_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequest/status_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/HttpRequestUpload/onError_A01_t02: Skip # Times out.
+LibTest/html/HttpRequestUpload/onLoadEnd_A01_t01: Skip # Times out.
+LibTest/html/HttpRequestUpload/onLoadStart_A01_t01: Skip # Times out.
+LibTest/html/HttpRequestUpload/onLoad_A01_t01: Skip # Times out.
+LibTest/html/IFrameElement/IFrameElement.created_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributeChanged_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/attributes_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/borderEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/clone_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/contentWindow_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createFragment_A01_t03: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/createShadowRoot_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/getNamespacedAttributes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/innerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/isContentEditable_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/leftView_A01_t01: Skip # Times out.
+LibTest/html/IFrameElement/marginEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/offsetTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/onMouseWheel_A01_t01: Skip # Times out.
+LibTest/html/IFrameElement/onTransitionEnd_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/outerHtml_setter_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/paddingEdge_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/querySelector_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/IFrameElement/setInnerHtml_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/append_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/nodes_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Node/parent_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/previousNode_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/close_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/document_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A03_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/find_A06_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/moveTo_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/open_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/postMessage_A01_t02: RuntimeError # Please triage this failure
+LibTest/html/Window/requestFileSystem_A02_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeBy_A01_t01: RuntimeError # Please triage this failure
+LibTest/html/Window/resizeTo_A01_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Float32x4List/Float32x4List.view_A06_t01: RuntimeError # Please triage this failure
+LibTest/typed_data/Int32x4/operator_OR_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.after.dispatchEvenr_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/EventObject.multiple.dispatchEvent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/ProcessingInstruction.DOMCharacterDataModified_t01: Skip # Times out.
+WebPlatformTest/DOMEvents/approved/addEventListener.optional.useCapture_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t01: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestFail_t02: RuntimeError # Please triage this failure
+WebPlatformTest/Utils/test/asyncTestTimeout_t01: Skip # Times out.
+WebPlatformTest/custom-elements/concepts/type_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/concepts/type_A06_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/EventTarget/dispatchEvent_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/events/type_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocument_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-adoptNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Document-getElementsByTagName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Element-childElementCount_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-appendChild_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-insertBefore_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-isEqualNode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-nodeName_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-replaceChild_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/Node-textContent_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A05_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A06_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t02: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A07_t03: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttributeNS_A08_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/attributes/setAttribute_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/ranges/Range-comparePoint_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/link-import_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html-imports/loading-import_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/innerhtml-on-templates/innerhtml_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/additions-to-the-in-head-insertion-mode/generating-of-implied-end-tags_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/creating-an-element-for-the-token/template-owner-document_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-image_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/browsers/browsing-the-web/read-media/pageload-video_t01: Skip # Times out.
+WebPlatformTest/html/browsers/browsing-the-web/read-text/load-text-plain_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-getter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.body-setter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.getElementsByName-namespace_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/document.title_t07: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/documents/dom-tree-accessors/nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-delete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-get_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-set_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/error-codes/error_t01: Skip # Times out.
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLMediaElement/addTextTrack_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/HTMLElement/HTMLTrackElement/src_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/cues_t01: Skip # Times out.
+WebPlatformTest/html/semantics/embedded-content/media-elements/interfaces/TextTrack/mode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formAction_document_address_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/attributes-common-to-form-controls/formaction_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/selection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setRangeText_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/textfieldselection/textfieldselection-setSelectionRange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-button-element/button-validation_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-fieldset-element/disabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-autocomplete_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-matches_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-form-element/form-elements-nameditem_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/date_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime-local_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/datetime_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/email_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/hidden_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/input-textselection_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/month_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/password_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/range_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/text_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/time_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/type-change-state_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/url_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/valueMode_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-input-element/week_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-meter-element/meter_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-recurse_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/forms/the-option-element/option-text-spaces_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/grouping-content/the-blockquote-element/grouping-blockquote_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-close_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/interactive-elements/the-dialog-element/dialog-showModal_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/scripting-1/the-script-element/script-text_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/checked_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/default_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/dir_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/enabled_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/indeterminate_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/selectors/pseudo-classes/inrange-outofrange_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-table-element/table-rows_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/semantics/tabular-data/the-tr-element/rowIndex_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/parsing/Document.getElementsByTagName-foreign_t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/syntax/serializing-html-fragments/outerHTML_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t02: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t03: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t04: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t05: RuntimeError # Please triage this failure
+WebPlatformTest/html/webappapis/system-state-and-capabilities/the-navigator-object/protocol/t06: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/attributes/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/event-retargeting/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-focus-events/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/events/retargeting-relatedtarget/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/html-elements-and-their-shadow-trees/test-003_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/custom-pseudo-elements/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # Please triage this failure
+WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && $fast_startup ]
+WebPlatformTest/custom-elements/concepts/type_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElementNS_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A03_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/createElement_A04_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A01_t02: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/isAttribute_A02_t01: RuntimeError # Please triage this failure
+WebPlatformTest/custom-elements/instantiating/namespace_A01_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && $fast_startup == false ]
+WebPlatformTest/custom-elements/concepts/type_A03_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && $fast_startup && $checked ]
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-001_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/auto-content-resolution-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/breadth-size-resolution-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/calc-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-padding-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-element-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-horiz-bt_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-lr_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows-vert-rl_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/grid-item-margin-auto-columns-rows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/implicit-rows-auto-resolution_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-height-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/minmax-fixed-logical-width-only_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-in-percent-grid_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-grid-item-in-percent-grid-track_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/css-tables_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-absolutes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-blocks_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-column-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-flex-items_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/multicol_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/tables_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css-intrinsic-dimensions/width-shrinks-avoid-floats_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/box-sizing-border-box-dynamic-padding-border-update_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/display-inline-block-scrollbar_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/fixed-width-intrinsic-width-excludes-scrollbars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/focus-display-block-inline_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/css/style-scoped/style-scoped-scoping-nodes-different-order_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-relative_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLDialogElement/top-layer-position-static_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/HTMLTableElement/insert-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/dom/Window/window-resize_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-abort_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/file-writer-events_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-copy_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-entry_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-metadata_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-get-parent_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-move_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-read-directory_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-remove_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-chars_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-names_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/filesystem/op-restricted-unicode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/flexing-overflow-scroll-item_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/flexbox/intrinsic-min-width-applies-with-fixed-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/article-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/html/aside-element_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/empty-inline-before-collapsed-space_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/inline-with-empty-inline-children_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/parent-inline-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/inline/positioned-element-padding-contributes-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/lists/marker-preferred-margins_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/multicol/vertical-lr/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/parser/pre-first-line-break_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/replaced/available-height-for-content_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-image-threshold_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/shapes/parsing/parsing-shape-margin_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/absolute-table-percent-lengths_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-max-height_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-width-with-border-padding_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/css-table-width_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-dynamic-cells_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout-multiple-section_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/switch-table-layout_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-colgroup-present-after-table-row_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/table/table-rowspan-cell-with-empty-cell_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/line-break-after-inline-latin1_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/text/text-combine-shrink-to-fit_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial-segments_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/url/trivial_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/writing-mode/auto-sizing-orthogonal-flows_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/xpath/xpath-result-eventlistener-crash_t01: RuntimeError # Please triage this failure
+LibTest/html/Node/ownerDocument_A01_t01: RuntimeError # Please triage this failure
+WebPlatformTest/DOMEvents/approved/Propagation.path.target.removed_t01: RuntimeError # Please triage this failure
+WebPlatformTest/dom/nodes/DOMImplementation-createDocumentType_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-body-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html-templates/parsing-html-templates/clearing-the-stack-back-to-a-given-context/clearing-stack-back-to-a-table-row-context_t01: RuntimeError # Please triage this failure
+WebPlatformTest/html/dom/elements/global-attributes/dataset-enumeration_t01: RuntimeError # Please triage this failure
+
+[ $compiler == dart2js && $runtime == drt && $checked == false ]
+LayoutTests/fast/xpath/invalid-resolver_t01: RuntimeError # Please triage this failure
+
[ $compiler == dart2js && $runtime == ff ]
Language/Expressions/Postfix_Expressions/property_decrement_t02: Skip # Times out. Please triage this failure
Language/Statements/Yield_and_Yield_Each/Yield/execution_async_t01: RuntimeError # Issue 26615
@@ -2009,7 +2786,7 @@
LayoutTests/fast/alignment/parse-align-items_t01: RuntimeError # Please triage this failure
LayoutTests/fast/alignment/parse-align-self_t01: RuntimeError # Please triage this failure
LayoutTests/fast/alignment/parse-justify-self_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/animation/request-animation-frame-cancel2_t01: RuntimeError # Please triage this failure
+LayoutTests/fast/animation/request-animation-frame-cancel2_t01: Skip # Times out and fails. Please triage this failure
LayoutTests/fast/animation/request-animation-frame-prefix_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/animation/request-animation-frame-timestamps-advance_t01: Skip # Times out. Please triage this failure
LayoutTests/fast/animation/request-animation-frame-within-callback_t01: Skip # Times out. Please triage this failure
@@ -2166,7 +2943,6 @@
LayoutTests/fast/css/child-selector-implicit-tbody_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-01_t01: RuntimeError # co19 issue 61
LayoutTests/fast/css/content/content-quotes-06_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/counters/counter-cssText_t01: RuntimeError # Please triage this failure
@@ -2756,7 +3532,6 @@
LayoutTests/fast/forms/input-implicit-length-limit_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-maxlength-unsupported_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/forms/input-maxlength_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-setvalue-selection_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-text-paste-maxlength_t01: RuntimeError # Please triage this failure
LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # Please triage this failure
@@ -2891,7 +3666,6 @@
LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # co19 issue 63
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/gap-non-negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/zeroColumnCount_t01: RuntimeError # Please triage this failure
@@ -4050,9 +4824,7 @@
LayoutTests/fast/multicol/newmulticol/balance-images_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/orphans-relayout_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # Please triage this failure
LayoutTests/fast/overflow/replaced-child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
LayoutTests/fast/overflow/scrollbar-restored_t01: RuntimeError # Fails 10 out of 10.
@@ -5331,7 +6103,6 @@
LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t02: RuntimeError # Please triage this failure
LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: RuntimeError # Please triage this failure
@@ -7085,7 +7856,6 @@
LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/gap-non-negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/zeroColumnCount_t01: RuntimeError # Please triage this failure
LayoutTests/fast/overflow/height-during-simplified-layout_t01: RuntimeError # Please triage this failure
@@ -8156,7 +8926,6 @@
LayoutTests/fast/css/computed-offset-with-zoom_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-none_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/css/content/content-quotes-01_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-quotes-03_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/content/content-quotes-06_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError # Please triage this failure
@@ -9031,7 +9800,6 @@
LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/vertical-rl/gap-non-negative_t01: RuntimeError # Please triage this failure
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/widows_t01: RuntimeError # Please triage this failure
LayoutTests/fast/multicol/zeroColumnCount_t01: RuntimeError # Please triage this failure
LayoutTests/fast/overflow/height-during-simplified-layout_t01: RuntimeError # Please triage this failure
diff --git a/tests/co19/co19-dartium.status b/tests/co19/co19-dartium.status
index 927945b..34b7cc1 100644
--- a/tests/co19/co19-dartium.status
+++ b/tests/co19/co19-dartium.status
@@ -209,18 +209,14 @@
Language/Expressions/Identifier_Reference/built_in_not_dynamic_t19: Fail # Issue 25772
Language/Expressions/Instance_Creation/New/execution_t04: Fail, OK
Language/Expressions/Instance_Creation/New/execution_t06: Fail, OK
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t01: Fail # Issue 25496
-Language/Expressions/Method_Invocation/Ordinary_Invocation/object_method_invocation_t02: Fail # Issue 25496
+Language/Expressions/Method_Invocation/Ordinary_Invocation/syntax_t05: Pass
Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t01: RuntimeError # Issue 24607
Language/Expressions/Property_Extraction/Anonymous_Constructor_Closurization/identical_t02: RuntimeError # Issue 24607
-
Language/Expressions/Property_Extraction/General_Super_Property_Extraction: RuntimeError # Issue 26287
-
Language/Expressions/Property_Extraction/Named_Constructor_Closurization/identical_t01: RuntimeError # Issue 24607
-
Language/Expressions/Property_Extraction/Super_Closurization: RuntimeError # Issue 26287
-
Language/Expressions/Spawning_an_Isolate/new_isolate_t01: RuntimeError, OK # Uses Isolate.spawn.
+Language/Functions/Formal_Parameters/syntax_t05: Pass
Language/Libraries_and_Scripts/Exports/reexport_t01: fail # Dart issue 12916
Language/Libraries_and_Scripts/Exports/reexport_t02: fail # Dart issue 12916
Language/Libraries_and_Scripts/Parts/compilation_t02: Skip # Please triage this failure.
@@ -233,8 +229,6 @@
Language/Mixins/declaring_constructor_t06: Fail # Issue 24767
Language/Mixins/not_object_superclass_t01: Fail # Please triage this failure.
Language/Mixins/reference_to_super_t01: Fail # Please triage this failure.
-Language/Reference/Operator_Precedence/precedence_12_Shift_t02: RuntimeError # Please triage this failure
-Language/Reference/Operator_Precedence/precedence_15_unary_prefix_t04: RuntimeError # Please triage this failure
Language/Statements/Assert/execution_t02: skip # co19 issue 734
Language/Statements/Assert/execution_t03: skip # co19 issue 734
Language/Statements/Assert/type_t02: skip # co19 issue 734
@@ -372,6 +366,7 @@
LayoutTests/fast/canvas/webgl/texture-color-profile_t01: RuntimeError # Issue 25653
LayoutTests/fast/canvas/webgl/texture-complete_t01: RuntimeError # Issue 25653
LayoutTests/fast/canvas/webgl/texture-npot_t01: RuntimeError # Issue 25653
+LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux but failed on mac bots.
LayoutTests/fast/canvas/webgl/triangle_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
LayoutTests/fast/canvas/webgl/uniform-location-length-limits_t01: Pass, RuntimeError # Issue 22026
LayoutTests/fast/canvas/webgl/uniform-location_t01: RuntimeError # Please triage this failure
@@ -437,13 +432,16 @@
LayoutTests/fast/css-grid-layout/percent-padding-margin-resolution-grid-item_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css-grid-layout/percent-resolution-grid-item_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/css-grid-layout/place-cell-by-index_t01: RuntimeError # co19-roll r786: Please triage this failure.
+LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Skip # 45 Roll failure.
+LayoutTests/fast/css/aspect-ratio-inheritance_t01: Skip # 45 Roll No longer supported.
+LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: Skip # 45 Roll No longer supported.
+LayoutTests/fast/css/auto-min-size_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
LayoutTests/fast/css/checked-pseudo-selector_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/collapsed-whitespace-reattach-in-style-recalc_t01: Skip # co19 issue 732.
LayoutTests/fast/css/computed-offset-with-zoom_t01: Skip # co19 issue 732.
LayoutTests/fast/css/content/content-none_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/content/content-normal_t01: RuntimeError # co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/content/content-quotes-01_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/counters/complex-before_t01: RuntimeError, Pass # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/css-properties-case-insensitive_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/css3-nth-tokens-style_t01: RuntimeError # co19-roll r761: Please triage this failure.
@@ -468,6 +466,7 @@
LayoutTests/fast/css/link-alternate-stylesheet-5_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/media-query-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/parsing-at-rule-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
+LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
LayoutTests/fast/css/parsing-object-position_t01: RuntimeError # Please triage this failure
LayoutTests/fast/css/parsing-page-rule_t01: RuntimeError # co19-roll r761: Please triage this failure.
LayoutTests/fast/css/parsing-selector-error-recovery_t01: RuntimeError # co19-roll r761: Please triage this failure.
@@ -572,6 +571,7 @@
LayoutTests/fast/dom/cssTarget-crash_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/dom/custom/document-register-basic_t01: RuntimeError # Bad test can't register HtmlElement.
LayoutTests/fast/dom/custom/document-register-svg-extends_t01: RuntimeError # co19-roll r738: Please triage this failure.
+LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # 45 Roll issue dart-lang/co19/issues/25
LayoutTests/fast/dom/dataset-xhtml_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/dataset_t01: RuntimeError # co19-roll r738: Please triage this failure.
LayoutTests/fast/dom/document-importNode-arguments_t01: RuntimeError # Please triage this failure.
@@ -602,6 +602,7 @@
LayoutTests/fast/dynamic/insertAdjacentElement_t01: Skip # Timeout. co19-roll r786: Please triage this failure.
LayoutTests/fast/dynamic/insertAdjacentHTML_t01: Pass, RuntimeError # co19 issue 11.
LayoutTests/fast/dynamic/recursive-layout_t01: RuntimeError # co19-roll r786: Please triage this failure.
+LayoutTests/fast/encoding/css-charset-dom_t01: Skip # 45 Roll No longer supported see issue https://github.com/dart-lang/co19/issues/35
LayoutTests/fast/events/change-overflow-on-overflow-change_t01: Skip # Timeout. Please triage this failure.
LayoutTests/fast/events/clipboard-clearData_t01: Skip # Timeout. co19-roll r786: Please triage this failure.
LayoutTests/fast/events/clipboard-dataTransferItemList_t01: Skip # Timeout. co19-roll r786: Please triage this failure.
@@ -618,6 +619,7 @@
LayoutTests/fast/events/mutation-during-replace-child-2_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/mutation-during-replace-child_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/nested-event-remove-node-crash_t01: Skip # Flaky timeout. co19-roll r786: Please triage this failure.
+LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # 45 Roll No longer supported.
LayoutTests/fast/events/scoped/editing-commands_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/scroll-event-does-not-bubble_t01: RuntimeError # co19-roll r786: Please triage this failure.
LayoutTests/fast/events/tabindex-removal-from-focused-element_t01: Pass, RuntimeError # co19-roll r786: Please triage this failure.
@@ -662,6 +664,7 @@
LayoutTests/fast/forms/formmethod-attribute-input-html_t01: Skip # Test reloads itself. Issue 18558.
LayoutTests/fast/forms/input-hit-test-border_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/input-inputmode_t01: RuntimeError # Experimental feature not exposed in Chrome yet
+LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # 45 roll issue
LayoutTests/fast/forms/input-width-height-attributes-without-renderer-loaded-image_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/listbox-select-all_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/forms/listbox-selection-2_t01: RuntimeError # co19-roll r801: Please triage this failure.
@@ -749,9 +752,7 @@
LayoutTests/fast/multicol/newmulticol/balance_t10: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/multicol/orphans-relayout_t01: Pass, RuntimeError # co19 issue 11.
LayoutTests/fast/multicol/vertical-lr/float-truncation_t01: RuntimeError # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-rl/break-properties_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/multicol/vertical-rl/float-truncation_t01: RuntimeError # co19-roll r801: Please triage this failure.
-LayoutTests/fast/multicol/vertical-rl/image-inside-nested-blocks-with-border_t01: RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # co19 issue 11.
LayoutTests/fast/multicol/widows_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
LayoutTests/fast/overflow/child-100percent-height-inside-fixed-container-with-overflow-auto_t01: Pass, RuntimeError # co19-roll r801: Please triage this failure.
@@ -1010,7 +1011,10 @@
LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t04: RuntimeError # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A01_t05: RuntimeError # Dart issue 15974
+LibTest/isolate/Isolate/spawnUri_A01_t06: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawnUri_A01_t07: RuntimeError # Issue 27219
LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Dart issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Issue 27219
LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Dart issue 15974
LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Dart issue 15974
@@ -1019,7 +1023,28 @@
LibTest/isolate/Isolate/spawn_A01_t03: RuntimeError, OK # Uses Isolate.spawn.
LibTest/isolate/Isolate/spawn_A01_t04: RuntimeError, OK # Uses Isolate.spawn.
LibTest/isolate/Isolate/spawn_A01_t05: RuntimeError, OK # Uses Isolate.spawn.
+LibTest/isolate/Isolate/spawn_A01_t06: RuntimeError # Issue 27219
LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError # Dart issue 15617
+LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A03_t01: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A03_t02: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A03_t03: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A03_t04: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A04_t01: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A04_t02: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A04_t03: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A04_t04: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A04_t05: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A05_t01: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A05_t02: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A05_t03: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t01: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t02: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t03: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t04: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t05: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t06: RuntimeError # Issue 27219
+LibTest/isolate/Isolate/spawn_A06_t07: RuntimeError # Issue 27219
LibTest/isolate/RawReceivePort/RawReceivePort_A01_t01: RuntimeError, OK # Uses Isolate.spawn.
LibTest/isolate/RawReceivePort/RawReceivePort_A01_t02: RuntimeError, OK # Uses Isolate.spawn.
LibTest/isolate/RawReceivePort/close_A01_t01: Pass, RuntimeError # Issue 13921, co19 issue for false pass https://github.com/dart-lang/co19/issues/13
@@ -1242,6 +1267,8 @@
WebPlatformTest/shadow-dom/elements-and-dom-objects/extensions-to-element-interface/methods/elements-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-005_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-attributes/test-006_t01: RuntimeError # Please triage this failure.
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/33
+WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-004_t02: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-content-html-element/test-006_t01: RuntimeError # co19-roll r722: Please triage this failure.
@@ -1250,6 +1277,7 @@
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-003_t02: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/elements-and-dom-objects/the-shadow-html-element/test-005_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/event-dispatch/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
+WebPlatformTest/shadow-dom/events/event-dispatch/test-002_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/events/event-dispatch/test-003_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/event-retargeting/test-001_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/events/event-retargeting/test-002_t01: RuntimeError # Not clear that any of this works. Also suppressed in dart2js
@@ -1269,23 +1297,13 @@
WebPlatformTest/shadow-dom/shadow-trees/distributed-pseudo-element/test-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/lower-boundary-encapsulation/test-004_t01: RuntimeError # co19-roll r722: Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/ownerdocument-002_t01: RuntimeError # co19-roll r722: Please triage this failure.
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-001_t01: RuntimeError # Please triage this failure.
WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/test-009_t01: RuntimeError # Please triage this failure.
WebPlatformTest/webstorage/event_constructor_t01: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/webstorage/event_constructor_t02: RuntimeError # co19-roll r761: Please triage this failure.
WebPlatformTest/webstorage/storage_local_setitem_quotaexceedederr_t01: Skip # Times out flakily. co19-roll r761: Please triage this failure.
WebPlatformTest/webstorage/storage_session_setitem_quotaexceedederr_t01: Skip # Times out flakily. co19-roll r761: Please triage this failure.
-LayoutTests/fast/css/aspect-ratio-inheritance_t01: Skip # 45 Roll No longer supported.
-LayoutTests/fast/css/aspect-ratio-parsing-tests_t01: Skip # 45 Roll No longer supported.
-LayoutTests/fast/css/auto-min-size_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
-LayoutTests/fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes_t01: Skip # 45 Roll failure.
-LayoutTests/fast/css/parsing-css-allowed-string-characters_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
-LayoutTests/fast/dom/custom/element-names_t01: RuntimeError # 45 Roll issue dart-lang/co19/issues/25
-LayoutTests/fast/encoding/css-charset-dom_t01: Skip # 45 Roll No longer supported see issue https://github.com/dart-lang/co19/issues/35
-LayoutTests/fast/events/overflowchanged-event-raf-timing_t01: Skip # 45 Roll No longer supported.
-LayoutTests/fast/forms/input-value-sanitization_t01: RuntimeError # 45 roll issue
-LayoutTests/fast/canvas/webgl/texture-transparent-pixels-initialized_t01: RuntimeError # 45 rollwebgl doesn't run on on windows/linux but failed on mac bots.
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-005_t01: RuntimeError # 45 Roll co19 test rewrite issue 25807
-WebPlatformTest/shadow-dom/elements-and-dom-objects/shadowroot-object/shadowroot-methods/test-002_t01: RuntimeError # 45 roll issue https://github.com/dart-lang/co19/issues/33
+WebPlatformTest/shadow-dom/shadow-trees/upper-boundary-encapsulation/selectors-api-002_t01: RuntimeError # Please triage this failure.
# Must fix failures below after JsInterop checkin.
WebPlatformTest/dom/nodes/Node-appendChild_t01: RuntimeError # Issue 26134
WebPlatformTest/dom/nodes/attributes/setAttribute_A01_t01: RuntimeError # Issue 26134
diff --git a/tests/co19/co19-runtime.status b/tests/co19/co19-runtime.status
index a41e0b9..df65d1f 100644
--- a/tests/co19/co19-runtime.status
+++ b/tests/co19/co19-runtime.status
@@ -29,13 +29,17 @@
LibTest/core/DateTime/DateTime.now_A01_t02: Pass, Fail # co19 issue 709
-LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Dart issue 15974
-LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Dart issue 15974
-LibTest/isolate/Isolate/spawnUri_A02_t01: RuntimeError # Dart issue 15617
-LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Dart issue 15974
-LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Dart issue 15974
-LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Dart issue 15974
-LibTest/isolate/Isolate/spawn_A02_t02: RuntimeError # Dart issue 15617
+LibTest/isolate/Isolate/spawnUri_A01_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A01_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawnUri_A02_t04: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A03_t02: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t01: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t04: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t03: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A06_t05: Skip # Issue 15974
+LibTest/isolate/Isolate/spawn_A04_t03: Pass, RuntimeError # Issue 27202
LibTest/core/Symbol/Symbol_A01_t03: RuntimeError # Issue 13596
LibTest/core/Symbol/Symbol_A01_t05: RuntimeError # Issue 13596
@@ -50,10 +54,15 @@
[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && $mode == debug ]
LibTest/core/List/List_class_A01_t02: Pass, Slow
+Language/Libraries_and_Scripts/Imports/deferred_import_t02: Crash # Issue 27201
[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && $system == windows ]
Language/Expressions/Function_Invocation/async_invokation_t04: Pass, RuntimeError # co19 issue 54
+[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && $checked == false ]
+LibTest/isolate/Isolate/spawn_A02_t04: RuntimeError # Issue 27185
+LibTest/isolate/Isolate/spawn_A02_t05: RuntimeError, Crash # Issue 27185
+
[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && ($arch != x64 && $arch != simarm64 && $arch != arm64 && $arch != simdbc && $arch != simdbc64) ]
LibTest/core/int/operator_left_shift_A01_t02: Fail # co19 issue 129
@@ -65,11 +74,14 @@
LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # co19 issue 673
[ ($runtime == vm || $runtime == dart_precompiled || $runtime == dart_app) && ($arch == simarm || $arch == simarmv6 || $arch == simarmv5te || $arch == simmips || $arch == simarm64 || $arch == simdbc || $arch == simdbc64) ]
-LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
+LibTest/collection/DoubleLinkedQueue/DoubleLinkedQueue_class_A01_t01: Skip # Timeout
+LibTest/collection/IterableBase/IterableBase_class_A01_t02: Skip # Timeout
+LibTest/collection/IterableMixin/IterableMixin_class_A02_t01: Skip # Timeout
LibTest/collection/ListBase/ListBase_class_A01_t01: Skip # Timeout
-LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # Timeout
LibTest/collection/ListBase/ListBase_class_A01_t02: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t01: Skip # Timeout
+LibTest/collection/ListMixin/ListMixin_class_A01_t02: Skip # Timeout
+LibTest/core/Uri/Uri_A06_t03: Skip # Timeout
[ $system == windows ]
LibTest/collection/ListMixin/ListMixin_class_A01_t02: Pass, Slow
@@ -150,15 +162,12 @@
Language/Expressions/Property_Extraction/General_Super_Property_Extraction: CompileTimeError # Issue 26287
Language/Expressions/Property_Extraction/Super_Closurization: CompileTimeError # Issue 26287
-# co19 Roll May 30 2016
-Language/Reference/Operator_Precedence/precedence_12_Shift_t02: RuntimeError # Issue 26573
-Language/Reference/Operator_Precedence/precedence_15_unary_prefix_t04: RuntimeError # Issue 26573
-
[ $noopt || $compiler == precompiler || $mode == product ]
Language/Metadata/*: SkipByDesign # Uses dart:mirrors
Language/Expressions/Null/instance_of_class_null_t01: Skip # Uses dart:mirrors
[ $noopt || $compiler == precompiler || $compiler == dart2appjit || $mode == product ]
+Language/Libraries_and_Scripts/Imports/deferred_import_t01: Skip # Eager loading
Language/Libraries_and_Scripts/Imports/deferred_import_t02: Skip # Eager loading
Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t01: Skip # Eager loading
Language/Libraries_and_Scripts/Imports/invalid_uri_deferred_t02: Skip # Eager loading
@@ -184,6 +193,7 @@
LibTest/collection/ListBase/ListBase_class_A01_t02: Timeout
[ $compiler == precompiler && $runtime == dart_precompiled && $system == android ]
+*: Skip # Issue 27294
LibTest/isolate/*: Skip # Issue #26373
Language/Expressions/Spawning_an_Isolate/new_isolate_t01: Skip # Issue #26373
diff --git a/tests/compiler/dart2js/async_await_js_transform_test.dart b/tests/compiler/dart2js/async_await_js_transform_test.dart
index e934d28..f5df58c 100644
--- a/tests/compiler/dart2js/async_await_js_transform_test.dart
+++ b/tests/compiler/dart2js/async_await_js_transform_test.dart
@@ -77,13 +77,13 @@
v3 = 2;
P.print(v0[v1].call$2(v2, v3));
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}"""
) /// 01: ok
;
@@ -110,13 +110,13 @@
case 2:
// returning from await.
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -234,13 +234,13 @@
break;
case 1:
// return
- return thenHelper(__returnValue, 0, __completer, null);
+ return thenHelper(__returnValue, 0, __completer);
case 2:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -289,13 +289,13 @@
// returning from await.
f = --__temp1[__result];
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -422,13 +422,13 @@
g = __result;
h = foo1() && foo2();
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -516,13 +516,13 @@
case 3:
// after while
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -577,13 +577,13 @@
case 4:
// after do
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -667,13 +667,13 @@
// after for
case 1:
// return
- return thenHelper(__returnValue, 0, __completer, null);
+ return thenHelper(__returnValue, 0, __completer);
case 2:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -742,13 +742,13 @@
// returning from await.
__temp1[__temp2] = __result;
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -859,13 +859,13 @@
case 5:
// after finally
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -925,13 +925,13 @@
// returning from await.
__temp1(__temp2(__temp3, __result, z));
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -1065,13 +1065,13 @@
// after while
case 1:
// return
- return thenHelper(__returnValue, 0, __completer, null);
+ return thenHelper(__returnValue, 0, __completer);
case 2:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -1114,13 +1114,13 @@
break;
}
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testAsyncTransform("""
@@ -1193,13 +1193,13 @@
// after finally
print(exception);
// implicit return
- return thenHelper(null, 0, __completer, null);
+ return thenHelper(null, 0, __completer);
case 1:
// rethrow
return thenHelper(__currentError, 1, __completer);
}
});
- return thenHelper(null, body, __completer, null);
+ return thenHelper(null, body, __completer);
}""");
testSyncStarTransform("""
diff --git a/tests/compiler/dart2js/kernel/impact_test.dart b/tests/compiler/dart2js/kernel/impact_test.dart
new file mode 100644
index 0000000..0720bca
--- /dev/null
+++ b/tests/compiler/dart2js/kernel/impact_test.dart
@@ -0,0 +1,100 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+library dart2js.kernel.impact_test;
+
+import 'dart:async';
+import 'package:async_helper/async_helper.dart';
+import 'package:compiler/src/common.dart';
+import 'package:compiler/src/commandline_options.dart';
+import 'package:compiler/src/common/resolution.dart';
+import 'package:compiler/src/compiler.dart';
+import 'package:compiler/src/elements/elements.dart';
+import 'package:compiler/src/ssa/kernel_impact.dart';
+import 'package:compiler/src/serialization/equivalence.dart';
+import '../memory_compiler.dart';
+import '../serialization/test_helper.dart';
+
+const Map<String, String> SOURCE = const <String, String>{
+ 'main.dart': '''
+main() {
+ testEmpty();
+ testNull();
+ testTrue();
+ testFalse();
+ testInt();
+ testDouble();
+ testString();
+ testSymbol();
+ testEmptyListLiteral();
+ testEmptyListLiteralDynamic();
+ testEmptyListLiteralTyped();
+ testEmptyListLiteralConstant();
+ testNonEmptyListLiteral();
+ testEmptyMapLiteral();
+ testEmptyMapLiteralDynamic();
+ testEmptyMapLiteralTyped();
+ testEmptyMapLiteralConstant();
+ testNonEmptyMapLiteral();
+ testNot();
+ testUnaryMinus();
+ testIfThen();
+ testIfThenElse();
+}
+
+testEmpty() {}
+testNull() => null;
+testTrue() => true;
+testFalse() => false;
+testInt() => 42;
+testDouble() => 37.5;
+testString() => 'foo';
+testSymbol() => #main;
+testEmptyListLiteral() => [];
+testEmptyListLiteralDynamic() => <dynamic>[];
+testEmptyListLiteralTyped() => <String>[];
+testEmptyListLiteralConstant() => const [];
+testNonEmptyListLiteral() => [0];
+testEmptyMapLiteral() => {};
+testEmptyMapLiteralDynamic() => <dynamic, dynamic>{};
+testEmptyMapLiteralTyped() => <String, int>{};
+testEmptyMapLiteralConstant() => const {};
+testNonEmptyMapLiteral() => {0: true};
+testNot() => !false;
+testUnaryMinus() => -1;
+testIfThen() {
+ if (false) return 42;
+ return 1;
+}
+testIfThenElse() {
+ if (true) {
+ return 42;
+ } else {
+ return 1;
+ }
+}
+'''
+};
+
+main(List<String> args) {
+ asyncTest(() async {
+ enableDebugMode();
+ Uri entryPoint = Uri.parse('memory:main.dart');
+ Compiler compiler = compilerFor(
+ entryPoint: entryPoint,
+ memorySourceFiles: SOURCE,
+ options: [Flags.analyzeOnly, Flags.useKernel]);
+ compiler.resolution.retainCachesForTesting = true;
+ await compiler.run(entryPoint);
+ compiler.mainApp
+ .forEachLocalMember((element) => checkElement(compiler, element));
+ });
+}
+
+void checkElement(Compiler compiler, AstElement element) {
+ ResolutionImpact astImpact = compiler.resolution.getResolutionImpact(element);
+ ResolutionImpact kernelImpact = build(compiler, element.resolvedAst);
+ testResolutionImpactEquivalence(
+ astImpact, kernelImpact, const CheckStrategy());
+}
diff --git a/tests/language/conditional_import_string_test.dart b/tests/language/conditional_import_string_test.dart
new file mode 100644
index 0000000..d7506bd
--- /dev/null
+++ b/tests/language/conditional_import_string_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+import "package:async_helper/async_helper.dart";
+
+// All three libraries have an HttpRequest class.
+import "conditional_import_string_test.dart"
+ if (dart.library.io == "true") "dart:io"
+ if (dart.library.html == "true") "dart:html"
+ deferred as d show HttpRequest;
+
+class HttpRequest {}
+
+void main() {
+ asyncStart();
+ var io = const String.fromEnvironment("dart.library.io");
+ var html = const String.fromEnvironment("dart.library.html");
+ () async {
+ // Shouldn't fail. Shouldn't time out.
+ await d.loadLibrary().timeout(const Duration(seconds: 5));
+ if (io == "true") {
+ print("io");
+ Expect.throws(() => new d.HttpRequest()); // Class is abstract in dart:io
+ } else if (html == "true") {
+ print("html");
+ dynamic r = new d.HttpRequest(); // Shouldn't throw
+ var o = r.open; // Shouldn't fail, the open method is there.
+ } else {
+ print("none");
+ dynamic r = new d.HttpRequest();
+ Expect.isTrue(r is HttpRequest);
+ }
+ asyncEnd();
+ }();
+}
+
diff --git a/tests/language/conditional_import_test.dart b/tests/language/conditional_import_test.dart
new file mode 100644
index 0000000..0eeff70
--- /dev/null
+++ b/tests/language/conditional_import_test.dart
@@ -0,0 +1,38 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import "package:expect/expect.dart";
+import "package:async_helper/async_helper.dart";
+
+// All three libraries have an HttpRequest class.
+import "conditional_import_test.dart"
+ if (dart.library.io) "dart:io"
+ if (dart.library.html) "dart:html"
+ deferred as d show HttpRequest;
+
+class HttpRequest {}
+
+void main() {
+ asyncStart();
+ var io = const bool.fromEnvironment("dart.library.io");
+ var html = const bool.fromEnvironment("dart.library.html");
+ () async {
+ // Shouldn't fail. Shouldn't time out.
+ await d.loadLibrary().timeout(const Duration(seconds: 5));
+ if (io) {
+ print("io");
+ Expect.throws(() => new d.HttpRequest()); // Class is abstract in dart:io
+ } else if (html) {
+ print("html");
+ dynamic r = new d.HttpRequest(); // Shouldn't throw
+ var o = r.open; // Shouldn't fail, the open method is there.
+ } else {
+ print("none");
+ dynamic r = new d.HttpRequest();
+ Expect.isTrue(r is HttpRequest);
+ }
+ asyncEnd();
+ }();
+}
+
diff --git a/tests/language/generic_methods_generic_function_parameter_test.dart b/tests/language/generic_methods_generic_function_parameter_test.dart
new file mode 100644
index 0000000..81eeade
--- /dev/null
+++ b/tests/language/generic_methods_generic_function_parameter_test.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+//
+// DartOptions=--generic-method-syntax
+// VMOptions=--generic-method-syntax
+
+import "package:expect/expect.dart";
+
+class C<T> {
+ bar<V>(T t, int u, V v) => t + u + v;
+ foo<U>(bar<V>(T t, U u, V v)) => bar<int>(1, 2, 3);
+}
+
+main() {
+ var c = new C<int>();
+ Expect.equals(6, c.foo<int>(c.bar));
+}
diff --git a/tests/language/generic_methods_generic_function_parameter_test.options b/tests/language/generic_methods_generic_function_parameter_test.options
new file mode 100644
index 0000000..86e2aac
--- /dev/null
+++ b/tests/language/generic_methods_generic_function_parameter_test.options
@@ -0,0 +1,3 @@
+analyzer:
+ language:
+ enableGenericMethods: true
diff --git a/tests/language/language.status b/tests/language/language.status
index ce7e840..6c6ba24 100644
--- a/tests/language/language.status
+++ b/tests/language/language.status
@@ -46,6 +46,7 @@
# Experimental feature: Syntactic support for generic methods.
generic_methods_type_expression_test: RuntimeError # Issue 25869
+generic_methods_generic_function_parameter_test: CompileTimeError # Issue #27299
[ ($compiler == none || $compiler == precompiler || $compiler == dart2app || $compiler == dart2appjit) && $checked ]
# The generic functions tests fail in checked mode because the parsed type parameters
@@ -278,6 +279,8 @@
regress_23408_test: Crash # Requires deferred libraries
regress_22443_test: Crash # Requires deferred libraries
tearoff_basic_test: Crash # Requires deferred libraries
+conditional_import_test: Crash # Requires deferred libraries
+conditional_import_string_test: Crash # Requires deferred libraries
[$runtime != vm || $compiler != none]
assert_initializer_test: SKIP # not implemented yet, experiment is VM only.
diff --git a/tests/language/language_analyzer2.status b/tests/language/language_analyzer2.status
index 492e396..cb9c4b0c 100644
--- a/tests/language/language_analyzer2.status
+++ b/tests/language/language_analyzer2.status
@@ -505,10 +505,8 @@
generic_methods_new_test: CompiletimeError # Issue 25868
generic_methods_function_type_test: CompiletimeError # Issue 25868
generic_methods_type_expression_test: CompiletimeError # Issue 25868
+generic_methods_generic_function_parameter_test: CompiletimeError # Issue 25868
# Experimental feature: Use initializing formals in initializers and constructor body.
-initializing_formal_access_test: CompiletimeError # Issue 26658
-initializing_formal_capture_test: CompiletimeError # Issue 26658
-initializing_formal_final_test: CompiletimeError # Issue 26658
initializing_formal_promotion_test: StaticWarning # Issue 26658
-initializing_formal_type_test: CompiletimeError # Issue 26658
+initializing_formal_type_test: StaticWarning # Issue 26658
diff --git a/tests/language/language_dart2js.status b/tests/language/language_dart2js.status
index 55566a3..11b17cc 100644
--- a/tests/language/language_dart2js.status
+++ b/tests/language/language_dart2js.status
@@ -65,6 +65,7 @@
[ $compiler == dart2js && $fast_startup && $checked ]
generic_local_functions_test: Fail # reified type for generic function not generated correctly
+generic_methods_generic_function_parameter_test: Fail # reified type for generic function not generated correctly
[ $compiler == dart2js && $runtime == jsshell ]
await_for_test: Skip # Jsshell does not provide periodic timers, Issue 7728
@@ -84,6 +85,7 @@
generic_methods_new_test: CompiletimeError # DartOptions not passed to compiler.
generic_methods_function_type_test: CompiletimeError # DartOptions not passed to compiler.
generic_methods_type_expression_test: CompiletimeError # DartOptions not passed to compiler.
+generic_methods_generic_function_parameter_test: CompiletimeError # DartOptions not passed to compiler.
# Experimental feature: Use initializing formals in initializers and constructor body.
initializing_formal_access_test: CompiletimeError # DartOptions not passed to compiler.
diff --git a/tests/standalone/standalone.status b/tests/standalone/standalone.status
index df3c7a2..96dac8f 100644
--- a/tests/standalone/standalone.status
+++ b/tests/standalone/standalone.status
@@ -183,6 +183,7 @@
[ $compiler == dart2analyzer ]
package/package1_test: CompileTimeError
package/package_test: CompileTimeError
+package/package_isolate_test: CompileTimeError
package/scenarios/packages_dir_only/packages_dir_only_test: CompileTimeError
package/scenarios/packages_file_only/packages_file_only_test: CompileTimeError
package/scenarios/both_dir_and_file/prefers_packages_file_test: CompileTimeError
diff --git a/tools/VERSION b/tools/VERSION
index 5b3f2a8..4da48d6 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 1
MINOR 20
PATCH 0
-PRERELEASE 4
+PRERELEASE 5
PRERELEASE_PATCH 0
diff --git a/tools/apps/update_homebrew/bin/update_homebrew.dart b/tools/apps/update_homebrew/bin/update_homebrew.dart
index 4623e9a..adbe580 100644
--- a/tools/apps/update_homebrew/bin/update_homebrew.dart
+++ b/tools/apps/update_homebrew/bin/update_homebrew.dart
@@ -26,8 +26,8 @@
const urlBase = 'https://storage.googleapis.com/dart-archive/channels';
const x64File = 'sdk/dartsdk-macos-x64-release.zip';
const ia32File = 'sdk/dartsdk-macos-ia32-release.zip';
-const dartiumFile = 'dartium/dartium-macos-ia32-release.zip';
-const contentShellFile = 'dartium/content_shell-macos-ia32-release.zip';
+const dartiumFile = 'dartium/dartium-macos-x64-release.zip';
+const contentShellFile = 'dartium/content_shell-macos-x64-release.zip';
Future<String> getHash256(
String channel, String revision, String download) async {
diff --git a/tools/deps/dartium.deps/DEPS b/tools/deps/dartium.deps/DEPS
index d907204..6a7b70f 100644
--- a/tools/deps/dartium.deps/DEPS
+++ b/tools/deps/dartium.deps/DEPS
@@ -40,7 +40,7 @@
"http_parser_rev" : "@8b179e36aba985208e4c5fb15cfddd386b6370a4",
"http_throttle_rev" : "@a81f08be942cdd608883c7b67795c12226abc235",
"json_rpc_2_rev": "@a38eefd116d910199de205f962af92fed87c164c",
- "kernel_rev": "@9509d282a62fe025f8d6242bb233b02e0a7fee04",
+ "kernel_rev": "@9677d68402ea15d0eca6430d64f631bb3e505499",
"logging_rev": "@85d83e002670545e9039ad3985f0018ab640e597",
"matcher_tag": "@0.12.0",
"mime_rev": "@75890811d4af5af080351ba8a2853ad4c8df98dd",
@@ -69,7 +69,7 @@
"web_components_rev": "@6349e09f9118dce7ae1b309af5763745e25a9d61",
"WebCore_rev": "@a86fe28efadcfc781f836037a80f27e22a5dad17",
- "co19_rev": "@3f0a4bc9a080a792cdf5f093147a900f99ea301f",
+ "co19_rev": "@d4767b4caea3c5828ad8e053cd051d44a59061af",
})
deps.update({
diff --git a/tools/dom/templates/html/impl/impl_DataTransferItemList.darttemplate b/tools/dom/templates/html/impl/impl_DataTransferItemList.darttemplate
index ab0442a..926ad91 100644
--- a/tools/dom/templates/html/impl/impl_DataTransferItemList.darttemplate
+++ b/tools/dom/templates/html/impl/impl_DataTransferItemList.darttemplate
@@ -15,7 +15,7 @@
// TODO(alanknight): I think that all the __getter__ generators should just
// do property access, but that's major surgery. This one is a problem, so
// just hard-code it for now.
- return _blink.Blink_JsNative_DomException.getProperty(this, index);
+ return _blink.Blink_JsNative_DomException.getProperty(this, index.toString());
$endif
}