[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:
committed by
commit-bot@chromium.org
parent
4aa097b082
commit
b158bf7bd5
+9
-22
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user