# This test fails on Win32 currently if (platform != "Win64") Stop() # Tests that even when removing an old virtual method, adding a new one, and then # adding back a method with the same name as the old one, we can call this new # method using an old virtual call ShowFile("src/HotSwap.bf") GotoText("//HotStart_VirtualRemap") ToggleBreakpoint() RunWithCompiling() # Turn off MethodB ToggleCommentAt("HotA_MethodB") ToggleCommentAt("HotTester_Test1") ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall") ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall_2") Compile() # Make sure we can call the old 'MethodB' StepOver() StepOver() AssertEvalEquals("val", "11") # Turn on MethodC ShowCurrent() ToggleCommentAt("HotA_MethodC") ToggleCommentAt("HotTester_TestVirtualRemap2_MethodCCall") Compile() StepInto() StepOver() AssertEvalEquals("val", "12") # Turn on MethodB (version 2) ToggleCommentAt("HotA_MethodB_2") ToggleCommentAt("HotTester_TestVirtualRemap_MethodBCall") Compile() StepOver() StepOver() # We are running an old version of TestVirtualRemap that used the old virtual slot # number for the MethodB call, but the new MethodB should be mapped to that same # slot because it mangles the same AssertEvalEquals("val", "111")