From 15ecb9b39f5bb0f583c05ae5f0e87af3bea865b3 Mon Sep 17 00:00:00 2001 From: Martin Kustermann Date: Mon, 20 Feb 2023 13:54:29 +0000 Subject: [PATCH] [gardening] Fix vm/cc/IsolateReload_{TypedefToNotTypeDef,NotTypedefToTypeDef} tests With introduction to Dart 2.0 and Kernel as intermediate format, the VM consumes kernel. The kernel is produced by CFE which lowers named function type definitions to function types. We therefore no longer have name classes between typedefs and classes and the corresponding vm/cc/IsolateReload_* can be updated to no longer expect an error. Issue https://github.com/dart-lang/sdk/issues/50521 Issue https://github.com/dart-lang/sdk/issues/32190 TEST=Fixes vm/cc/IsolateReload_*Typedef* tests Change-Id: Ic0697c5de03ef28e6cca104f5fbcb214e99d3fd8 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284182 Commit-Queue: Martin Kustermann Reviewed-by: Slava Egorov --- pkg/status_file/test/data/vm.status | 2 -- runtime/tests/vm/vm.status | 2 -- runtime/vm/isolate_reload_test.cc | 11 ++++++++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/status_file/test/data/vm.status b/pkg/status_file/test/data/vm.status index f795cec3b4b..6e4a1f9d98f 100644 --- a/pkg/status_file/test/data/vm.status +++ b/pkg/status_file/test/data/vm.status @@ -258,7 +258,6 @@ cc/IsolateReload_LiveStack: Fail cc/IsolateReload_MainLibModified: Crash cc/IsolateReload_NoLibsModified: Crash cc/IsolateReload_NotEnumToEnum: Skip -cc/IsolateReload_NotTypedefToTypedef: Fail cc/IsolateReload_PendingSuperCall: Fail cc/IsolateReload_PrefixImportedLibModified: Crash cc/IsolateReload_RunNewFieldInitializersSuperClass: Skip @@ -280,7 +279,6 @@ cc/IsolateReload_TopLevelParseError: Fail cc/IsolateReload_TypeIdentity: Fail cc/IsolateReload_TypeIdentityGeneric: Fail cc/IsolateReload_TypeIdentityParameter: Fail -cc/IsolateReload_TypedefToNotTypedef: Fail cc/Parser_AllocateVariables_CaptureLoopVar: Fail cc/Parser_AllocateVariables_CapturedVar: Fail cc/Parser_AllocateVariables_Issue7681: Fail diff --git a/runtime/tests/vm/vm.status b/runtime/tests/vm/vm.status index 1379f602aa1..2f51948179b 100644 --- a/runtime/tests/vm/vm.status +++ b/runtime/tests/vm/vm.status @@ -269,8 +269,6 @@ cc/DebuggerAPI_ScriptGetTokenInfo_MultiLineInterpolation: Fail cc/Debugger_PrintBreakpointsToJSONArray: Fail cc/Debugger_Rewind_Optimized: SkipSlow cc/Debugger_SetBreakpointInPartOfLibrary: Crash -cc/IsolateReload_NotTypedefToTypedef: Fail -cc/IsolateReload_TypedefToNotTypedef: Fail dart/spawn_shutdown_test: SkipSlow dart_2/spawn_shutdown_test: SkipSlow diff --git a/runtime/vm/isolate_reload_test.cc b/runtime/vm/isolate_reload_test.cc index e09d4d2372b..b5da247133c 100644 --- a/runtime/vm/isolate_reload_test.cc +++ b/runtime/vm/isolate_reload_test.cc @@ -4631,6 +4631,9 @@ TEST_CASE(IsolateReload_ExistingStaticFieldChangesTypeIndirectFunction) { } TEST_CASE(IsolateReload_TypedefToNotTypedef) { + // The CFE lowers typedefs to function types and as such the VM will not see + // any name collision between a class and a typedef class (which doesn't exist + // anymore). const char* kScript = "typedef bool Predicate(dynamic x);\n" "main() {\n" @@ -4650,8 +4653,7 @@ TEST_CASE(IsolateReload_TypedefToNotTypedef) { "}\n"; Dart_Handle result = TestCase::ReloadTestScript(kReloadScript); - EXPECT_ERROR(result, - "Typedef class cannot be redefined to be a non-typedef class"); + EXPECT_VALID(result); } TEST_CASE(IsolateReload_NotTypedefToTypedef) { @@ -4667,6 +4669,9 @@ TEST_CASE(IsolateReload_NotTypedefToTypedef) { EXPECT_VALID(lib); EXPECT_STREQ("false", SimpleInvokeStr(lib, "main")); + // The CFE lowers typedefs to function types and as such the VM will not see + // any name collision between a class and a typedef class (which doesn't exist + // anymore). const char* kReloadScript = "typedef bool Predicate(dynamic x);\n" "main() {\n" @@ -4674,7 +4679,7 @@ TEST_CASE(IsolateReload_NotTypedefToTypedef) { "}\n"; Dart_Handle result = TestCase::ReloadTestScript(kReloadScript); - EXPECT_ERROR(result, "Class cannot be redefined to be a typedef class"); + EXPECT_VALID(result); } TEST_CASE(IsolateReload_TypedefAddParameter) {