diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect index 9b6b0d9150e..4adba0a00a8 100644 --- a/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect +++ b/pkg/vm/testcases/transformations/type_flow/transformer/regress_flutter16182.dart.expect @@ -19,7 +19,7 @@ class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; -[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:5,getterSelectorId:6] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=#lib::T1?] dynamic a5 = #C1]) → void { +[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:5,getterSelectorId:6] method call([[@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4 = #C1, [@vm.inferred-type.metadata=#lib::T1] dynamic a5 = #C1]) → void { [@vm.direct-call.metadata=#lib::A1.foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A1::foo} = _in::unsafeCast(a5); } } @@ -42,7 +42,7 @@ class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; -[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:13,getterSelectorId:14] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=#lib::T2?] dynamic a6 = #C1]) → void { +[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:13,getterSelectorId:14] method call([[@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 5)] dynamic a5 = #C1, [@vm.inferred-type.metadata=#lib::T2] dynamic a6 = #C1]) → void { [@vm.direct-call.metadata=#lib::A2.foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A2::foo} = a6; } } @@ -75,7 +75,7 @@ class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; -[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:24,getterSelectorId:25] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=#lib::T3?] dynamic a7 = #C1]) → void { +[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:24,getterSelectorId:25] method call([[@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 5)] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 6)] dynamic a6 = #C1, [@vm.inferred-type.metadata=#lib::T3] dynamic a7 = #C1]) → void { [@vm.direct-call.metadata=#lib::A3.foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A3::foo} = a7; } } @@ -98,7 +98,7 @@ class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; -[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:32,getterSelectorId:33] method call([dynamic a1 = #C1, dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a6 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi?] dynamic a7 = #C1, [@vm.inferred-type.metadata=#lib::T4?] dynamic a8 = #C1]) → void { +[@vm.procedure-attributes.metadata=getterCalledDynamically:false,hasThisUses:false,hasTearOffUses:false,methodOrSetterSelectorId:32,getterSelectorId:33] method call([[@vm.inferred-type.metadata=dart.core::_Smi (value: 1)] dynamic a1 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 2)] dynamic a2 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 3)] dynamic a3 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 4)] dynamic a4 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 5)] dynamic a5 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 6)] dynamic a6 = #C1, [@vm.inferred-type.metadata=dart.core::_Smi (value: 7)] dynamic a7 = #C1, [@vm.inferred-type.metadata=#lib::T4] dynamic a8 = #C1]) → void { [@vm.direct-call.metadata=#lib::A4.foo] [@vm.inferred-type.metadata=!? (skip check)] this.{self::A4::foo} = a8; } } diff --git a/sdk/lib/_internal/vm/lib/errors_patch.dart b/sdk/lib/_internal/vm/lib/errors_patch.dart index cf11d3eafca..3e1baffe8c3 100644 --- a/sdk/lib/_internal/vm/lib/errors_patch.dart +++ b/sdk/lib/_internal/vm/lib/errors_patch.dart @@ -59,10 +59,10 @@ class _AssertionError extends Error implements AssertionError { return condition; } if (condition is _Closure) { - return (condition as dynamic)(); + return (condition as dynamic Function())(); } if (condition is Function) { - condition = condition(); + condition = (condition as dynamic Function())(); } return condition; } diff --git a/sdk/lib/_internal/vm/lib/isolate_patch.dart b/sdk/lib/_internal/vm/lib/isolate_patch.dart index 34829c833fa..30c3225756b 100644 --- a/sdk/lib/_internal/vm/lib/isolate_patch.dart +++ b/sdk/lib/_internal/vm/lib/isolate_patch.dart @@ -190,7 +190,7 @@ class _RawReceivePortImpl implements RawReceivePort { // TODO(floitsch): this relies on the fact that any exception aborts the // VM. Once we have non-fatal global exceptions we need to catch errors // so that we can run the immediate callbacks. - handler(message); + (handler as Function)(message); _runPendingImmediateCallback(); return handler; } @@ -291,9 +291,9 @@ void _delayEntrypointInvocation(Function entryPoint, List? args, port.close(); if (allowZeroOneOrTwoArgs) { if (entryPoint is _BinaryFunction) { - (entryPoint as dynamic)(args, message); + (entryPoint as Function)(args, message); } else if (entryPoint is _UnaryFunction) { - (entryPoint as dynamic)(args); + (entryPoint as Function)(args); } else { entryPoint(); } diff --git a/tests/language/vm/no_such_method_error_message_callable_vm_test.dart b/tests/language/vm/no_such_method_error_message_callable_vm_test.dart index a7d5ed9bf9a..87b67fd45f0 100644 --- a/tests/language/vm/no_such_method_error_message_callable_vm_test.dart +++ b/tests/language/vm/no_such_method_error_message_callable_vm_test.dart @@ -27,9 +27,7 @@ testMessageCall() { try { call_with_bar(new Callable()); } catch (e) { - final noMatchingArgs = - "has no instance method 'call' with matching arguments"; - Expect.isTrue(e.toString().contains(noMatchingArgs)); + Expect.isTrue(e.toString().contains("has no instance method 'call'")); } } diff --git a/tests/language_2/vm/no_such_method_error_message_callable_vm_test.dart b/tests/language_2/vm/no_such_method_error_message_callable_vm_test.dart index 063b47c5b16..aedb1afd91e 100644 --- a/tests/language_2/vm/no_such_method_error_message_callable_vm_test.dart +++ b/tests/language_2/vm/no_such_method_error_message_callable_vm_test.dart @@ -29,9 +29,7 @@ testMessageCall() { try { call_with_bar(new Callable()); } catch (e) { - final noMatchingArgs = - "has no instance method 'call' with matching arguments"; - Expect.isTrue(e.toString().contains(noMatchingArgs)); + Expect.isTrue(e.toString().contains("has no instance method 'call'")); } }