Version 2.10.0-145.0.dev
Merge commit 'eac07c1770d2ea1ef4af58a537f9208321fdcca7' into 'dev'
diff --git a/DEPS b/DEPS
index 43df7a6..d96c4d0 100644
--- a/DEPS
+++ b/DEPS
@@ -39,7 +39,7 @@
# Checked-in SDK version. The checked-in SDK is a Dart SDK distribution in a
# cipd package used to run Dart scripts in the build and test infrastructure.
- "sdk_tag": "version:2.10.0-79.0.dev",
+ "sdk_tag": "version:2.10.0-110.3.beta",
# 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
diff --git a/runtime/vm/type_testing_stubs.cc b/runtime/vm/type_testing_stubs.cc
index c68f655..90b40a3 100644
--- a/runtime/vm/type_testing_stubs.cc
+++ b/runtime/vm/type_testing_stubs.cc
@@ -23,7 +23,6 @@
: lib_(Library::Handle()),
klass_(Class::Handle()),
type_(AbstractType::Handle()),
- type_arguments_(TypeArguments::Handle()),
string_(String::Handle()) {}
const char* TypeTestingStubNamer::StubNameForType(
@@ -56,16 +55,18 @@
OS::SCreate(Z, "%s_%s", curl, klass_.ScrubbedNameCString()));
const intptr_t type_parameters = klass_.NumTypeParameters();
+ auto& type_arguments = TypeArguments::Handle();
if (type.arguments() != TypeArguments::null() && type_parameters > 0) {
- type_arguments_ = type.arguments();
- ASSERT(type_arguments_.Length() >= type_parameters);
- const intptr_t length = type_arguments_.Length();
+ type_arguments = type.arguments();
+ ASSERT(type_arguments.Length() >= type_parameters);
+ const intptr_t length = type_arguments.Length();
for (intptr_t i = 0; i < type_parameters; ++i) {
- type_ = type_arguments_.TypeAt(length - type_parameters + i);
+ type_ = type_arguments.TypeAt(length - type_parameters + i);
concatenated =
OS::SCreate(Z, "%s__%s", concatenated, StringifyType(type_));
}
}
+
return concatenated;
} else if (type.IsTypeParameter()) {
string_ = TypeParameter::Cast(type).name();
diff --git a/runtime/vm/type_testing_stubs.h b/runtime/vm/type_testing_stubs.h
index b602c6a..09c6f1d 100644
--- a/runtime/vm/type_testing_stubs.h
+++ b/runtime/vm/type_testing_stubs.h
@@ -32,7 +32,6 @@
Library& lib_;
Class& klass_;
AbstractType& type_;
- TypeArguments& type_arguments_;
String& string_;
};
diff --git a/tests/dart2js/async_stacktrace_test.dart b/tests/dart2js/async_stacktrace_test.dart
index fffb946..74a85fd 100644
--- a/tests/dart2js/async_stacktrace_test.dart
+++ b/tests/dart2js/async_stacktrace_test.dart
@@ -26,10 +26,8 @@
}
}
-Future test1(Tracer tracer) {
- foo() async
- * //# asyncStar: ok
- {
+Future<void> test1(Tracer tracer) {
+ Future<void> foo() async {
var savedStackTrace;
try {
try {
@@ -49,16 +47,36 @@
tracer.trace("f");
}
- return foo()
- .toList() //# asyncStar: continued
- ;
+ return foo();
}
-Future test2(Tracer tracer) {
+Future<List<void>> test1star(Tracer tracer) {
+ Stream<void> foo() async* {
+ var savedStackTrace;
+ try {
+ try {
+ tracer.trace("a");
+ throw "Error";
+ } catch (e, st) {
+ tracer.trace("b");
+ savedStackTrace = st;
+ }
+ tracer.trace("c");
+ await new Future.error("Error 2", savedStackTrace);
+ tracer.trace("d");
+ } catch (e, st) {
+ tracer.trace("e");
+ Expect.equals(savedStackTrace.toString(), st.toString());
+ }
+ tracer.trace("f");
+ }
+
+ return foo().toList();
+}
+
+Future<void> test2(Tracer tracer) {
var savedStackTrace;
- foo() async
- * //# asyncStar: continued
- {
+ Future<void> foo() async {
try {
tracer.trace("a");
throw "Error";
@@ -71,19 +89,37 @@
tracer.trace("d");
}
- return foo()
- .toList() //# asyncStar: continued
- .catchError((e, st) {
+ return foo().catchError((e, st) {
tracer.trace("e");
Expect.equals(savedStackTrace.toString(), st.toString());
});
}
-Future test3(Tracer tracer) {
+Future<List<void>> test2star(Tracer tracer) {
var savedStackTrace;
- foo() async
- * //# asyncStar: continued
- {
+ Stream<void> foo() async* {
+ try {
+ tracer.trace("a");
+ throw "Error";
+ } catch (e, st) {
+ tracer.trace("b");
+ savedStackTrace = st;
+ }
+ tracer.trace("c");
+ await new Future.error("Error 2", savedStackTrace);
+ tracer.trace("d");
+ }
+
+ return foo().toList().catchError((e, st) {
+ tracer.trace("e");
+ Expect.equals(savedStackTrace.toString(), st.toString());
+ return [];
+ });
+}
+
+Future<void> test3(Tracer tracer) {
+ var savedStackTrace;
+ Future<void> foo() async {
try {
tracer.trace("a");
throw "Error";
@@ -94,14 +130,32 @@
}
}
- return foo()
- .toList() //# asyncStar: continued
- .catchError((e, st) {
+ return foo().catchError((e, st) {
tracer.trace("c");
Expect.equals(savedStackTrace.toString(), st.toString());
});
}
+Future<List<void>> test3star(Tracer tracer) {
+ var savedStackTrace;
+ Stream<void> foo() async* {
+ try {
+ tracer.trace("a");
+ throw "Error";
+ } catch (e, st) {
+ tracer.trace("b");
+ savedStackTrace = st;
+ rethrow;
+ }
+ }
+
+ return foo().toList().catchError((e, st) {
+ tracer.trace("c");
+ Expect.equals(savedStackTrace.toString(), st.toString());
+ return [];
+ });
+}
+
runTest(String expectedTrace, Future test(Tracer tracer)) async {
Tracer tracer = new Tracer(expectedTrace);
await test(tracer);
@@ -110,8 +164,11 @@
runTests() async {
await runTest("abcef", test1);
+ await runTest("abcef", test1star);
await runTest("abce", test2);
+ await runTest("abce", test2star);
await runTest("abc", test3);
+ await runTest("abc", test3star);
}
main() {
diff --git a/tests/language/variance/variance_in_inference_error_test.dart b/tests/language/variance/variance_in_inference_error_test.dart
index d73f8b0..34c6fb3 100644
--- a/tests/language/variance/variance_in_inference_error_test.dart
+++ b/tests/language/variance/variance_in_inference_error_test.dart
@@ -47,41 +47,31 @@
inferCovContra(Covariant<int>(), Contravariant<String>());
//^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-// ^^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
-// [cfe] The argument type 'Contravariant<String>' can't be assigned to the parameter type 'Contravariant<int>'.
+// [cfe] unspecified
// String <: T <: int is not a valid constraint.
inferCovContra(Covariant<String>(), Contravariant<int>());
//^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-// ^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
-// [cfe] The argument type 'Contravariant<int>' can't be assigned to the parameter type 'Contravariant<String>'.
+// [cfe] unspecified
// Middle <: T <: Lower is not a valid constraint
inferCovContra(Covariant<Middle>(), Contravariant<Lower>());
//^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-// ^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Lower>' can't be assigned to the parameter type 'Contravariant<Middle>'.
+// [cfe] unspecified
// Upper <: T <: Lower is not a valid constraint
inferCovContra(Covariant<Upper>(), Contravariant<Lower>());
//^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-// ^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Lower>' can't be assigned to the parameter type 'Contravariant<Upper>'.
+// [cfe] unspecified
// Upper <: T <: Middle is not a valid constraint
inferCovContra(Covariant<Upper>(), Contravariant<Middle>());
//^^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.COULD_NOT_INFER
-// ^^^^^^^^^^^^^^^^^^^^^^^
-// [analyzer] COMPILE_TIME_ERROR.INVALID_CAST_NEW_EXPR
-// [cfe] The argument type 'Contravariant<Middle>' can't be assigned to the parameter type 'Contravariant<Upper>'.
+// [cfe] unspecified
// Inference for Contrabound(...) produces Lower <: T <: Upper.
// Since T is contravariant, we choose Upper as the solution.
diff --git a/tools/VERSION b/tools/VERSION
index 0010549..6868e51 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 10
PATCH 0
-PRERELEASE 144
+PRERELEASE 145
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/sdks/README b/tools/sdks/README
index 88e40d8..b7d766a5 100644
--- a/tools/sdks/README
+++ b/tools/sdks/README
@@ -3,9 +3,8 @@
The DEPS use CIPD's ${platform} syntax find the right SDK for the platform.
-We are currently using the 32-bit ia32 build as the default on Windows, and the
-64-bit x64 build as the default on Linux and Mac. arm and arm64 CIPD packages
-are used on Linux.
+We use the x64 build as the default on Linux, Mac and Windows. Builds for Linux
+on ARM and ARM64 are also provided.
To upload new versions of these CIPD packages, run "./update.sh" in this
directory. Because these SDKs are used for the presubmit dartfmt check on
diff --git a/tools/sdks/update.sh b/tools/sdks/update.sh
index dc96ef1..df63b09 100755
--- a/tools/sdks/update.sh
+++ b/tools/sdks/update.sh
@@ -61,9 +61,8 @@
-ref $channel
rm -rf sdk
-# We currently use the ia32 SDK on x64 Windows as well, see also README.
-gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-ia32-release.zip" .
-unzip -q dartsdk-windows-ia32-release.zip -d sdk
+gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-x64-release.zip" .
+unzip -q dartsdk-windows-x64-release.zip -d sdk
cipd create \
-name dart/dart-sdk/windows-amd64 \
-in sdk \
@@ -72,16 +71,6 @@
-ref $channel
rm -rf sdk
-gsutil.py cp "gs://dart-archive/channels/$channel/release/$1/sdk/dartsdk-windows-ia32-release.zip" .
-unzip -q dartsdk-windows-ia32-release.zip -d sdk
-cipd create \
- -name dart/dart-sdk/windows-386 \
- -in sdk \
- -install-mode copy \
- -tag version:$1 \
- -ref $channel
-rm -rf sdk
-
popd
gclient setdep --var="sdk_tag=version:$1"