'Tests that structure/union member names reside in a separate
namespace and can be named after existing types.'

def test_struct_members_namespace(self):

    s1 = '\n                                                                typedef    int    Name;\n                                                                typedef    Name    NameArray[10];\n\n                                                                struct    {\n                                                                                Name    Name;\n                                                                                Name    NameArray[3];\n                                                                }    sye;\n\n                                                                void    main(void)\n                                                                {\n                                                                                sye.Name    =    1;\n                                                                }\n                                                '
    s1_ast = self.parse(s1)
    self.assertEqual(expand_decl(s1_ast.ext[2]), ['Decl', 'sye', ['TypeDecl', ['Struct', None, [['Decl', 'Name', ['TypeDecl', ['IdentifierType', ['Name']]]], ['Decl', 'NameArray', ['ArrayDecl', '3', [], ['TypeDecl', ['IdentifierType', ['Name']]]]]]]]])
    self.assertEqual(s1_ast.ext[3].body.block_items[0].lvalue.field.name, 'Name')
