Skip to content

Conversation

@jimingham
Copy link

Also add a test for swift expression result & persistent values (the patch had C++ tests already.)

…ions (llvm#168611) When you run an expression and the result has a dynamic type that is different from the expression's static result type, we print the result variable using the dynamic type, but at present when you use the result variable in an expression later on, we only give you access to the static type. For instance: ``` (lldb) expr MakeADerivedReportABase() (Derived *) $0 = 0x00000001007e93e0 (lldb) expr $0->method_from_derived() ^ error: no member named 'method_from_derived' in 'Base' (lldb) ``` The static return type of that function is `Base *`, but we printed that the result was a `Derived *` and then only used the `Base *` part of it in subsequent expressions. That's not very helpful, and forces you to guess and then cast the result types to their dynamic type in order to be able to access the full type you were returned, which is inconvenient. This patch makes lldb retain the dynamic type of the result variable (and ditto for persistent result variables). It also adds more testing of expression result variables with various types of dynamic values, to ensure we can access both the ivars and methods of the type we print the result as. (cherry picked from commit 6344e3a)
…lvm#171922) This is a follow-on to: llvm#168611 which added a bunch of tests for detecting dynamic types of C++ result variables. I don't actually know how well dynamic type detection works on Windows if at all. It would require Windows support, since the Linux/Darwin version is specific to the Itanium ABI. (cherry picked from commit 2f14fb3)
@jimingham jimingham requested a review from a team as a code owner December 12, 2025 01:45
@jimingham
Copy link
Author

@swift-ci please test

@jimingham
Copy link
Author

Huh, supposedly all the checks failed but the links to tell me why are all 404...

@jimingham
Copy link
Author

@swift-ci please test

@jimingham
Copy link
Author

I didn't get failures when running these tests locally. Gotta figure out why they are failing on the bots.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants