"""
Tests declaring RecordDecls in non-top-level expressions.
"""
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
from lldbsuite.test import lldbutil
class TestCase(TestBase):
@no_debug_info_test
def test_fwd_decl(self):
# Declare a forward decl and import it to the scratch AST.
self.expect_expr("struct S; S *s = nullptr; s", result_type="S *")
@no_debug_info_test
def test_struct(self):
# Declare a struct and import it to the scratch AST.
self.expect("expr struct S {}; S s; s", substrs=["= {}"])
@no_debug_info_test
def test_struct_with_fwd_decl(self):
# Import the forward decl to the scratch AST.
self.expect_expr("struct S; S *s = nullptr; s", result_type="S *")
# Merge the definition into the scratch AST.
self.expect("expr struct S {}; S s; s", substrs=["= {}"])
@no_debug_info_test
def test_struct_with_fwd_decl_same_expr(self):
# Test both a forward decl and a definition in one expression and
# import them into the scratch AST.
self.expect("expr struct S; struct S{}; S s; s", substrs=["= {}"])