""" Tests a C++ fixit for the `expr` command and `po` alias (aka DWIM aka "do what I mean") alias. """ import lldb from lldbsuite.test.decorators import * from lldbsuite.test.lldbtest import * from lldbsuite.test import lldbutil class TestCase(TestBase): def test_fixit_with_dwim(self): """Confirms `po` shows an expression after applying Fix-It(s).""" self.build() lldbutil.run_to_source_breakpoint( self, "// break here", lldb.SBFileSpec("main.cpp") ) self.expect( "dwim-print -O -- class C { int i; void f() { []() { ++i; }(); } }; 42", error=True, substrs=[ "Evaluated this expression after applying Fix-It(s)", "class C { int i; void f() { [this]() { ++i; }(); } }", ], ) def test_fixit_with_expression(self): """Confirms `expression` shows an expression after applying Fix-It(s).""" self.build() lldbutil.run_to_source_breakpoint( self, "// break here", lldb.SBFileSpec("main.cpp") ) self.expect( "expr class C { int i; void f() { []() { ++i; }(); } }; 42", error=True, substrs=[ "Evaluated this expression after applying Fix-It(s)", "class C { int i; void f() { [this]() { ++i; }(); } }", ], )