Version 2.17.0-10.0.dev
Merge commit '442836bce4676cd4ed1b8518af2e1a2dc5c1a463' into 'dev'
diff --git a/DEPS b/DEPS
index 727b7a0..79df492 100644
--- a/DEPS
+++ b/DEPS
@@ -44,7 +44,7 @@
# co19 is a cipd package. Use update.sh in tests/co19[_2] to update these
# hashes. It requires access to the dart-build-access group, which EngProd
# has.
- "co19_rev": "a4144628905e0d3326b2549c9a1425bfca06c681",
+ "co19_rev": "143ad7f74919b132951e447a547236e991d9f900",
# This line prevents conflicts when both packages are rolled simultaneously.
"co19_2_rev": "995745937abffe9fc3a6441f9f0db27b2d706e4c",
diff --git a/pkg/front_end/test/fasta/types/shared_type_tests.dart b/pkg/front_end/test/fasta/types/shared_type_tests.dart
index 224378f..fc0b9b8 100644
--- a/pkg/front_end/test/fasta/types/shared_type_tests.dart
+++ b/pkg/front_end/test/fasta/types/shared_type_tests.dart
@@ -426,6 +426,10 @@
typeParameters: 'T extends Object');
isObliviousSubtype('T & Future<int?>', 'FutureOr<num>?',
typeParameters: 'T extends Object');
+ isNotSubtype('FutureOr<T?>?', 'FutureOr<Never?>?',
+ typeParameters: 'T extends FutureOr<T?>?');
+ isSubtype('FutureOr<Never?>?', 'FutureOr<T?>?',
+ typeParameters: 'T extends FutureOr<T?>?');
if (!skipFutureOrPromotion) {
isSubtype('T & FutureOr<int*>*', 'FutureOr<num*>*', typeParameters: 'T');
diff --git a/pkg/kernel/lib/src/types.dart b/pkg/kernel/lib/src/types.dart
index b78578c..f207418 100644
--- a/pkg/kernel/lib/src/types.dart
+++ b/pkg/kernel/lib/src/types.dart
@@ -404,12 +404,11 @@
IsSubtypeOf isFutureOrRelated(FutureOrType s, InterfaceType t, Types types) {
// Rules 7.1 and 7.2.
return types
- .performNullabilityAwareSubtypeCheck(s.typeArgument, t)
- .andSubtypeCheckFor(
+ .performNullabilityAwareSubtypeCheck(
new InterfaceType(types.hierarchy.coreTypes.futureClass,
Nullability.nonNullable, [s.typeArgument]),
- t,
- types)
+ t)
+ .andSubtypeCheckFor(s.typeArgument, t, types)
.and(new IsSubtypeOf.basedSolelyOnNullabilities(s, t));
}
diff --git a/tools/VERSION b/tools/VERSION
index a83e30d..5ade2e0 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 9
+PRERELEASE 10
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/yaml2json.dart b/tools/yaml2json.dart
index 50eba45..ef9fcdd 100644
--- a/tools/yaml2json.dart
+++ b/tools/yaml2json.dart
@@ -28,12 +28,12 @@
stderr.writeln("Usage: yaml2json.dart input.yaml output.json [--check]");
exit(1);
}
- Uri input = Uri.base.resolve(arguments[0]);
- Uri output = Uri.base.resolve(arguments[1]);
+ Uri input = new File(arguments[0]).absolute.uri;
+ Uri output = new File(arguments[1]).absolute.uri;
String inputString = arguments[0];
String outputString = arguments[1];
if (relative != null) {
- String relativeTo = Uri.base.resolve(relative).toString();
+ String relativeTo = new File(relative).absolute.uri.toString();
if (input.toString().startsWith(relativeTo)) {
inputString = input.toString().substring(relativeTo.length);
}