[VM/Libraries] Turn on NNBD versions of dart:io and dart:_http libraries

- Turn on NNBD versions of dart:io and dart:_http libraries
- Fix an unimplemented section in Class::InvokeSetter

Change-Id: I5343a76e62c0bacaddd9b1859bef5119d80bc5ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/134884
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
This commit is contained in:
asiva
2020-02-08 21:42:07 +00:00
committed by commit-bot@chromium.org
parent 4aa097b082
commit b158bf7bd5
3 changed files with 41 additions and 54 deletions
+9 -22
View File
@@ -3914,8 +3914,7 @@ RawObject* Class::InvokeSetter(const String& setter_name,
}
AbstractType& parameter_type = AbstractType::Handle(zone);
AbstractType& argument_type =
AbstractType::Handle(zone, value.GetType(Heap::kOld));
NNBDMode mode = nnbd_mode();
if (field.IsNull()) {
const Function& setter =
@@ -3933,14 +3932,9 @@ RawObject* Class::InvokeSetter(const String& setter_name,
InvocationMirror::kSetter);
}
parameter_type = setter.ParameterTypeAt(0);
if (nnbd_mode() != NNBDMode::kLegacyLib) {
// TODO(regis): Make type check nullability aware.
UNIMPLEMENTED();
}
if (!argument_type.IsNullType() && !parameter_type.IsDynamicType() &&
!value.IsInstanceOf(nnbd_mode(), parameter_type,
Object::null_type_arguments(),
Object::null_type_arguments())) {
if (!value.RuntimeTypeIsSubtypeOf(mode, parameter_type,
Object::null_type_arguments(),
Object::null_type_arguments())) {
const String& argument_name =
String::Handle(zone, setter.ParameterNameAt(0));
return ThrowTypeError(setter.token_pos(), value, parameter_type,
@@ -3961,14 +3955,9 @@ RawObject* Class::InvokeSetter(const String& setter_name,
}
parameter_type = field.type();
if (nnbd_mode() != NNBDMode::kLegacyLib) {
// TODO(regis): Make type check nullability aware.
UNIMPLEMENTED();
}
if (!argument_type.IsNullType() && !parameter_type.IsDynamicType() &&
!value.IsInstanceOf(nnbd_mode(), parameter_type,
Object::null_type_arguments(),
Object::null_type_arguments())) {
if (!value.RuntimeTypeIsSubtypeOf(mode, parameter_type,
Object::null_type_arguments(),
Object::null_type_arguments())) {
const String& argument_name = String::Handle(zone, field.name());
return ThrowTypeError(field.token_pos(), value, parameter_type,
argument_name);
@@ -17427,8 +17416,6 @@ bool Instance::IsInstanceOf(
ASSERT(other.IsFinalized());
ASSERT(!other.IsDynamicType());
ASSERT(!other.IsTypeRef()); // Must be dereferenced at compile time.
// Note that Object::sentinel() has Null class, but !IsNull().
ASSERT(raw() != Object::sentinel().raw());
if (IsNull()) {
if (mode == NNBDMode::kOptedInLib) {
// Compute NNBD_SUBTYPE(Null, other), either in weak or strong mode.
@@ -17460,8 +17447,6 @@ bool Instance::IsAssignableTo(
ASSERT(other.IsFinalized());
ASSERT(!other.IsDynamicType());
ASSERT(!other.IsTypeRef()); // Must be dereferenced at compile time.
// Note that Object::sentinel() has Null class, but !IsNull().
ASSERT(raw() != Object::sentinel().raw());
// In weak mode type casts, whether in legacy or opted-in libraries, the null
// instance is detected and handled in inlined code and therefore cannot be
// encountered here as a Dart null receiver.
@@ -17545,6 +17530,8 @@ bool Instance::RuntimeTypeIsSubtypeOf(
ASSERT(other.IsFinalized());
ASSERT(!other.IsDynamicType());
ASSERT(!other.IsTypeRef()); // Must be dereferenced at compile time.
// Note that Object::sentinel() has Null class, but !IsNull().
ASSERT(raw() != Object::sentinel().raw());
// Instance may not have runtimeType dynamic, void, or Never.
if (other.IsTopType(mode)) {
return true;
+16 -16
View File
@@ -97,25 +97,25 @@
]
},
"_http": {
"uri": "../../sdk/lib/_http/http.dart"
"uri": "_http/http.dart"
},
"io": {
"uri": "../../sdk/lib/io/io.dart",
"uri": "io/io.dart",
"patches": [
"../../sdk/lib/_internal/vm/bin/common_patch.dart",
"../../sdk/lib/_internal/vm/bin/directory_patch.dart",
"../../sdk/lib/_internal/vm/bin/eventhandler_patch.dart",
"../../sdk/lib/_internal/vm/bin/file_patch.dart",
"../../sdk/lib/_internal/vm/bin/file_system_entity_patch.dart",
"../../sdk/lib/_internal/vm/bin/filter_patch.dart",
"../../sdk/lib/_internal/vm/bin/io_service_patch.dart",
"../../sdk/lib/_internal/vm/bin/namespace_patch.dart",
"../../sdk/lib/_internal/vm/bin/platform_patch.dart",
"../../sdk/lib/_internal/vm/bin/process_patch.dart",
"../../sdk/lib/_internal/vm/bin/socket_patch.dart",
"../../sdk/lib/_internal/vm/bin/stdio_patch.dart",
"../../sdk/lib/_internal/vm/bin/secure_socket_patch.dart",
"../../sdk/lib/_internal/vm/bin/sync_socket_patch.dart"
"_internal/vm/bin/common_patch.dart",
"_internal/vm/bin/directory_patch.dart",
"_internal/vm/bin/eventhandler_patch.dart",
"_internal/vm/bin/file_patch.dart",
"_internal/vm/bin/file_system_entity_patch.dart",
"_internal/vm/bin/filter_patch.dart",
"_internal/vm/bin/io_service_patch.dart",
"_internal/vm/bin/namespace_patch.dart",
"_internal/vm/bin/platform_patch.dart",
"_internal/vm/bin/process_patch.dart",
"_internal/vm/bin/socket_patch.dart",
"_internal/vm/bin/stdio_patch.dart",
"_internal/vm/bin/secure_socket_patch.dart",
"_internal/vm/bin/sync_socket_patch.dart"
]
},
"isolate": {
+16 -16
View File
@@ -100,25 +100,25 @@ vm:
- "_internal/vm/lib/wasm_patch.dart"
_http:
uri: "../../sdk/lib/_http/http.dart"
uri: "_http/http.dart"
io:
uri: "../../sdk/lib/io/io.dart"
uri: "io/io.dart"
patches:
- "../../sdk/lib/_internal/vm/bin/common_patch.dart"
- "../../sdk/lib/_internal/vm/bin/directory_patch.dart"
- "../../sdk/lib/_internal/vm/bin/eventhandler_patch.dart"
- "../../sdk/lib/_internal/vm/bin/file_patch.dart"
- "../../sdk/lib/_internal/vm/bin/file_system_entity_patch.dart"
- "../../sdk/lib/_internal/vm/bin/filter_patch.dart"
- "../../sdk/lib/_internal/vm/bin/io_service_patch.dart"
- "../../sdk/lib/_internal/vm/bin/namespace_patch.dart"
- "../../sdk/lib/_internal/vm/bin/platform_patch.dart"
- "../../sdk/lib/_internal/vm/bin/process_patch.dart"
- "../../sdk/lib/_internal/vm/bin/socket_patch.dart"
- "../../sdk/lib/_internal/vm/bin/stdio_patch.dart"
- "../../sdk/lib/_internal/vm/bin/secure_socket_patch.dart"
- "../../sdk/lib/_internal/vm/bin/sync_socket_patch.dart"
- "_internal/vm/bin/common_patch.dart"
- "_internal/vm/bin/directory_patch.dart"
- "_internal/vm/bin/eventhandler_patch.dart"
- "_internal/vm/bin/file_patch.dart"
- "_internal/vm/bin/file_system_entity_patch.dart"
- "_internal/vm/bin/filter_patch.dart"
- "_internal/vm/bin/io_service_patch.dart"
- "_internal/vm/bin/namespace_patch.dart"
- "_internal/vm/bin/platform_patch.dart"
- "_internal/vm/bin/process_patch.dart"
- "_internal/vm/bin/socket_patch.dart"
- "_internal/vm/bin/stdio_patch.dart"
- "_internal/vm/bin/secure_socket_patch.dart"
- "_internal/vm/bin/sync_socket_patch.dart"
isolate:
uri: "isolate/isolate.dart"