@@ -443,12 +443,30 @@ For later versions of Visual Studio, no setup is required-->
443
443
</Type >
444
444
445
445
<Type Name =" clang::NestedNameSpecifier" >
446
- <DisplayString Condition =" !Specifier" ></DisplayString >
447
- <DisplayString Condition =" ((*(uintptr_t *)Prefix.Value.Data>> 1)& 3) == 0" >{(IdentifierInfo*)Specifier,view(cpp)na}::</DisplayString >
448
- <DisplayString Condition =" ((*(uintptr_t *)Prefix.Value.Data>> 1)& 3) == 1" >{(NamedDecl*)Specifier,view(cpp)na}::</DisplayString >
449
- <DisplayString Condition =" ((*(uintptr_t *)Prefix.Value.Data>> 1)& 3) == 2" >{(Type*)Specifier,view(cpp)na}::</DisplayString >
450
- <Expand >
451
- <Item Name =" Kind" >(NestedNameSpecifier::StoredSpecifierKind)((*(uintptr_t *)Prefix.Value.Data>> 1)& 3)</Item >
446
+ <Intrinsic Category =" Data" Name =" as_decl" Expression =" (clang::NamedDecl*)Specifier" />
447
+ <Intrinsic Category =" Data" Name =" as_type" Expression =" (clang::Type*)Specifier" />
448
+ <Intrinsic Category =" Data" Name =" as_identifier" Expression =" (clang::IdentifierInfo*)Specifier" />
449
+ <Intrinsic Category =" Data" Name =" get_stored_kind" Expression =" (NestedNameSpecifier::StoredSpecifierKind)Prefix.get_int()" />
450
+ <Intrinsic Category =" Data" Name =" get_kind" Expression =" (NestedNameSpecifier::SpecifierKind)(
451
+ Specifier ? (
452
+ get_stored_kind() != StoredSpecifierKind::StoredIdentifier ? (
453
+ get_stored_kind() == StoredSpecifierKind::StoredDecl ? (
454
+ as_decl()-> is(Decl::Namespace) ? SpecifierKind::Namespace : (
455
+ as_decl()-> is(Decl::NamespaceAlias) ? SpecifierKind::NamespaceAlias : SpecifierKind::Super
456
+ )
457
+ ) : (get_stored_kind() == StoredSpecifierKind::StoredTypeSpec ? SpecifierKind::TypeSpec : SpecifierKind::TypeSpecWithTemplate)
458
+ ) : SpecifierKind::Identifier
459
+ ) : SpecifierKind::Global
460
+ )" />
461
+
462
+ <Expand >
463
+ <!-- <Item Name="StoredKind">get_stored_kind(),en</Item> -->
464
+ <Item Name =" Kind" >get_kind(),en</Item >
465
+ <Item Name =" Specifier" Condition =" Specifier && get_stored_kind() == StoredSpecifierKind::StoredIdentifier" >as_identifier(),na</Item >
466
+ <Item Name =" Specifier" Condition =" Specifier && get_stored_kind() == StoredSpecifierKind::StoredDecl" >as_decl(),na</Item >
467
+ <Item Name =" Specifier" Condition =" Specifier && get_stored_kind() == StoredSpecifierKind::StoredTypeSpec ||
468
+ get_stored_kind() == StoredSpecifierKind::StoredTypeSpecWithTemplate" >as_type(),na</Item >
469
+ <Item Name =" Prefix" Condition =" ! Prefix.is_null()" >Prefix.get_ptr(),na</Item >
452
470
</Expand >
453
471
</Type >
454
472
@@ -946,7 +964,8 @@ For later versions of Visual Studio, no setup is required-->
946
964
<ExpandedItem >*(clang::Type*)this,nd</ExpandedItem >
947
965
<Item Name =" [return type]" >ResultType</Item >
948
966
<Synthetic Name =" [parameter types]" >
949
- <DisplayString >size = {FunctionTypeBits.NumParams}</DisplayString >
967
+ <DisplayString Condition =" FunctionTypeBits.NumParams" >size = {FunctionTypeBits.NumParams}</DisplayString >
968
+ <DisplayString >none</DisplayString >
950
969
<Expand >
951
970
<ArrayItems >
952
971
<Size >FunctionTypeBits.NumParams</Size >
@@ -1084,6 +1103,9 @@ For later versions of Visual Studio, no setup is required-->
1084
1103
<!-- ================================================================================================ -->
1085
1104
1086
1105
<Type Name =" clang::Decl" >
1106
+ <Intrinsic Category =" Data" Name =" is" Expression =" (Decl::Kind)DeclKind == k" >
1107
+ <Parameter Type =" Decl::Kind" Name =" k" />
1108
+ </Intrinsic >
1087
1109
<Intrinsic Category =" Data" Name =" get_kind" Expression =" (clang::Decl::Kind)DeclKind" />
1088
1110
<Intrinsic Category =" Data" Name =" get_semantic_dc" Expression =" (DeclContext*)(DeclCtx.is_null() ? nullptr :
1089
1111
(DeclCtx.get_int() == 0 ? DeclCtx.get_ptr() : ((Decl::MultipleDC*)DeclCtx.get_ptr())-> SemanticDC))" />
@@ -1279,11 +1301,15 @@ For later versions of Visual Studio, no setup is required-->
1279
1301
<Type Name =" clang::DeclaratorDecl" >
1280
1302
<Intrinsic Category =" Data" Name =" get_type_as_written"
1281
1303
Expression =" DeclInfo.is_null() ? nullptr : (TypeSourceInfo*)(DeclInfo.get_int() == 0 ?
1282
- DeclInfo.get_ptr() : ((clang::DeclaratorDecl::ExtInfo*)DeclInfo.get_ptr())-> TInfo)" />
1304
+ DeclInfo.get_ptr() : ((DeclaratorDecl::ExtInfo*)DeclInfo.get_ptr())-> TInfo)" />
1305
+ <Intrinsic Category =" Data" Name =" get_qualifier"
1306
+ Expression =" DeclInfo.is_null() || DeclInfo.get_int() == 0 ? nullptr :
1307
+ (NestedNameSpecifier*)(((DeclaratorDecl::ExtInfo*)DeclInfo.get_ptr())-> QualifierLoc.Qualifier)" />
1283
1308
1284
1309
<DisplayString >{(ValueDecl*)this,nand}</DisplayString >
1285
1310
<Expand >
1286
1311
<ExpandedItem >*(NamedDecl*)this,nd</ExpandedItem >
1312
+ <Item Name =" Qualifier" Condition =" get_qualifier()" >get_qualifier(),na</Item >
1287
1313
<Synthetic Name =" Type" >
1288
1314
<DisplayString >{DeclType}</DisplayString >
1289
1315
<Expand >
@@ -1295,6 +1321,10 @@ For later versions of Visual Studio, no setup is required-->
1295
1321
</Type >
1296
1322
1297
1323
<Type Name =" clang::TagDecl" >
1324
+ <Intrinsic Category =" Data" Name =" get_qualifier"
1325
+ Expression =" TypedefNameDeclOrQualifier.is_null() || TypedefNameDeclOrQualifier.get_int() == 0 ? nullptr :
1326
+ (NestedNameSpecifier*)(((TagDecl::ExtInfo*)TypedefNameDeclOrQualifier.get_ptr())-> QualifierLoc.Qualifier)" />
1327
+
1298
1328
<DisplayString Condition =" (TagTypeKind)TagDeclBits.TagDeclKind == TagTypeKind::TTK_Struct" >{(Decl*)this,nand} struct {Name}</DisplayString >
1299
1329
<DisplayString Condition =" (TagTypeKind)TagDeclBits.TagDeclKind == TagTypeKind::TTK_Class" >{(Decl*)this,nand} class {Name}</DisplayString >
1300
1330
<DisplayString Condition =" (TagTypeKind)TagDeclBits.TagDeclKind == TagTypeKind::TTK_Union" >{(Decl*)this,nand} union {Name}</DisplayString >
@@ -1311,6 +1341,7 @@ For later versions of Visual Studio, no setup is required-->
1311
1341
<DisplayString Condition =" (TagTypeKind)TagDeclBits.TagDeclKind == TagTypeKind::TTK_Interface" >__interface</DisplayString >
1312
1342
<DisplayString >invalid</DisplayString >
1313
1343
</Synthetic >
1344
+ <Item Name =" Qualifier" Condition =" ! TypedefNameDeclOrQualifier.is_null() && TypedefNameDeclOrQualifier.get_int() == 1" >get_qualifier(),na</Item >
1314
1345
<ExpandedItem >*(redeclarable_base*)this,nd</ExpandedItem >
1315
1346
<ExpandedItem >*(DeclContext*)this,nd</ExpandedItem >
1316
1347
</Expand >
@@ -1345,7 +1376,7 @@ For later versions of Visual Studio, no setup is required-->
1345
1376
<Expand >
1346
1377
<ExpandedItem >*(NamedDecl*)this,nd</ExpandedItem >
1347
1378
<Item Name =" Type" >get_type_as_written()</Item >
1348
- <Item Name =" DescribedTemplate" Condition =" Template" >Template</Item >
1379
+ <Item Name =" DescribedTemplate" Condition =" Template" >Template,na </Item >
1349
1380
<ExpandedItem >*(redeclarable_base*)this,nd</ExpandedItem >
1350
1381
</Expand >
1351
1382
</Type >
@@ -1396,7 +1427,28 @@ For later versions of Visual Studio, no setup is required-->
1396
1427
1397
1428
<DisplayString >{(DeclaratorDecl*)this,nand}</DisplayString >
1398
1429
<Expand >
1399
- <ExpandedItem >*(DeclaratorDecl*)this,nd</ExpandedItem >
1430
+ <!-- <ExpandedItem>*(DeclaratorDecl*)this,nd</ExpandedItem> -->
1431
+ <ExpandedItem >*(NamedDecl*)this,nd</ExpandedItem >
1432
+ <Item Name =" Qualifier" Condition =" get_qualifier()" >get_qualifier(),na</Item >
1433
+
1434
+ <Item Name =" IsDefinition" >
1435
+ (FunctionDeclBits.IsDeleted && ! FunctionDeclBits.IsDefaulted) ||
1436
+ ((! FunctionDeclBits.HasDefaultedFunctionInfo && Body.Ptr) || FunctionDeclBits.IsLateTemplateParsed) ||
1437
+ FunctionDeclBits.HasSkippedBody ||
1438
+ FunctionDeclBits.WillHaveBody
1439
+ </Item >
1440
+ <!--
1441
+ <Synthetic Name="[definition]">
1442
+ <Expand>
1443
+ <Item Name="IsDefinition">
1444
+ (FunctionDeclBits.IsDeleted && ! FunctionDeclBits.IsDefaulted) ||
1445
+ ((! FunctionDeclBits.HasDefaultedFunctionInfo && Body.Ptr) || FunctionDeclBits.IsLateTemplateParsed) ||
1446
+ FunctionDeclBits.HasSkippedBody ||
1447
+ FunctionDeclBits.WillHaveBody
1448
+ </Item>
1449
+ </Expand>
1450
+ </Synthetic>
1451
+ -->
1400
1452
1401
1453
<Item Name =" DescribedTemplate" Condition =" ! TemplateOrSpecialization.is_null() &&
1402
1454
TemplateOrSpecialization.get_int() == 0 &&
@@ -1410,35 +1462,20 @@ For later versions of Visual Studio, no setup is required-->
1410
1462
</Item >
1411
1463
1412
1464
<Item Name =" MemberSpecialization" Condition =" ! TemplateOrSpecialization.is_null() && TemplateOrSpecialization.get_int() == 1" >
1413
- (MemberSpecializationInfo*)TemplateOrSpecialization.get_ptr()
1465
+ (MemberSpecializationInfo*)TemplateOrSpecialization.get_ptr(),na
1414
1466
</Item >
1415
1467
1416
1468
<Item Name =" TemplateSpecialization" Condition =" ! TemplateOrSpecialization.is_null() && TemplateOrSpecialization.get_int() == 2" >
1417
- (FunctionTemplateSpecializationInfo*)TemplateOrSpecialization.get_ptr()
1469
+ (FunctionTemplateSpecializationInfo*)TemplateOrSpecialization.get_ptr(),na
1418
1470
</Item >
1419
1471
1420
- <Item Name =" isDefinition" >
1421
- (FunctionDeclBits.IsDeleted && ! FunctionDeclBits.IsDefaulted) ||
1422
- ((! FunctionDeclBits.HasDefaultedFunctionInfo && Body.Ptr) || FunctionDeclBits.IsLateTemplateParsed) ||
1423
- FunctionDeclBits.HasSkippedBody ||
1424
- FunctionDeclBits.WillHaveBody
1425
- </Item >
1426
- <!--
1427
- <Synthetic Name="[definition]">
1428
- <Expand>
1429
- <Item Name="isDefinition">
1430
- (FunctionDeclBits.IsDeleted && ! FunctionDeclBits.IsDefaulted) ||
1431
- ((! FunctionDeclBits.HasDefaultedFunctionInfo && Body.Ptr) || FunctionDeclBits.IsLateTemplateParsed) ||
1432
- FunctionDeclBits.HasSkippedBody ||
1433
- FunctionDeclBits.WillHaveBody
1434
- </Item>
1435
- </Expand>
1436
- </Synthetic>
1437
- -->
1472
+ <Item Name =" [returns]" Condition =" DeclType.is(Type::FunctionProto)" >((FunctionType*)(DeclType.get_type_ptr()))-> ResultType</Item >
1438
1473
1439
1474
<Synthetic Name =" [parameters]" >
1440
- <DisplayString Condition =" ParamInfo && DeclType.is(Type::FunctionProto)" >size = {DeclType.get_type_ptr()-> FunctionTypeBits.NumParams}</DisplayString >
1441
- <DisplayString >size = 0</DisplayString >
1475
+ <DisplayString Condition =" ParamInfo && DeclType.is(Type::FunctionProto) && DeclType.get_type_ptr()-> FunctionTypeBits.NumParams" >
1476
+ size = {DeclType.get_type_ptr()-> FunctionTypeBits.NumParams}
1477
+ </DisplayString >
1478
+ <DisplayString >none</DisplayString >
1442
1479
<Expand >
1443
1480
<ArrayItems Condition =" ParamInfo && DeclType.is(Type::FunctionProto)" >
1444
1481
<Size >DeclType.get_type_ptr()-> FunctionTypeBits.NumParams</Size >
@@ -1682,13 +1719,7 @@ For later versions of Visual Studio, no setup is required-->
1682
1719
1683
1720
<!-- ================================================================================================ -->
1684
1721
1685
- <Type Name =" clang::ParmVarDecl" >
1686
- <DisplayString >{*(VarDecl*)this,nand}</DisplayString >
1687
- <Expand >
1688
- <ExpandedItem >*(VarDecl*)this,nd</ExpandedItem >
1689
- <Item Name =" ParmVarDeclBits" >ParmVarDeclBits</Item >
1690
- </Expand >
1691
- </Type >
1722
+
1692
1723
1693
1724
<Type Name =" clang::VarDecl" >
1694
1725
<AlternativeType Name =" clang::VarTemplatePartialSpecializationDecl" Inheritable =" false" />
@@ -1709,9 +1740,6 @@ For later versions of Visual Studio, no setup is required-->
1709
1740
clang::TemplateSpecializationKind(SpecializationKind),en
1710
1741
</Item >
1711
1742
1712
- <Item Name =" SpecializationType" Optional =" true" Condition =" ExplicitInfo" >ExplicitInfo-> TypeAsWritten</Item >
1713
-
1714
-
1715
1743
<!-- KRYSTIAN TODO: this is stored in a DenseMap in ASTContext...
1716
1744
<Item Name="SpecializationKind" Condition="! is_vtsd() && ! TemplateOrInstantiation.is_null() && TemplateOrInstantiation.get_int() == 1">
1717
1745
clang::TemplateSpecializationKind(
@@ -1739,12 +1767,21 @@ For later versions of Visual Studio, no setup is required-->
1739
1767
<Item Name =" SpecializedPartial" Optional =" true" Condition =" SpecializedTemplate.get_int() == 1" >
1740
1768
((VarTemplateSpecializationDecl::SpecializedPartialSpecialization*)(SpecializedTemplate.get_ptr()))-> PartialSpecialization
1741
1769
</Item >
1770
+
1771
+ <Item Name =" SpecializationType" Optional =" true" Condition =" ExplicitInfo" >ExplicitInfo-> TypeAsWritten</Item >
1742
1772
<Item Name =" PointOfInstantiation" Optional =" true" >PointOfInstantiation</Item >
1743
1773
1744
1774
<ExpandedItem >*(redeclarable_base*)this,nd</ExpandedItem >
1745
1775
</Expand >
1746
1776
</Type >
1747
1777
1778
+ <Type Name =" clang::ParmVarDecl" >
1779
+ <DisplayString >{*(VarDecl*)this,nand}</DisplayString >
1780
+ <Expand >
1781
+ <ExpandedItem >*(VarDecl*)this,nd</ExpandedItem >
1782
+ <!-- <Item Name="ParmVarDeclBits">ParmVarDeclBits</Item> -->
1783
+ </Expand >
1784
+ </Type >
1748
1785
1749
1786
<!-- ================================================================================================ -->
1750
1787
@@ -1760,6 +1797,8 @@ For later versions of Visual Studio, no setup is required-->
1760
1797
<Expand >
1761
1798
<ExpandedItem >*(NamedDecl*)this,nd</ExpandedItem >
1762
1799
1800
+ <Item Name =" Qualifier" Condition =" get_qualifier()" >get_qualifier(),na</Item >
1801
+
1763
1802
<Item Name =" TemplateParams" Optional =" true" >TemplateParams,na</Item >
1764
1803
<Item Name =" TemplateArgs" Optional =" true" >TemplateArgs,na</Item >
1765
1804
@@ -1775,14 +1814,12 @@ For later versions of Visual Studio, no setup is required-->
1775
1814
(ClassTemplateDecl*)TemplateOrInstantiation.get_ptr()
1776
1815
</Item >
1777
1816
<Item Name =" MemberSpecialization" Condition =" ! TemplateOrInstantiation.is_null() && TemplateOrInstantiation.get_int() == 1" >
1778
- (MemberSpecializationInfo*)TemplateOrInstantiation.get_ptr()
1817
+ (MemberSpecializationInfo*)TemplateOrInstantiation.get_ptr(),na
1779
1818
</Item >
1780
1819
1781
- <Item Name =" SpecializationType" Optional =" true" Condition =" ExplicitInfo" >ExplicitInfo-> TypeAsWritten</Item >
1782
-
1783
1820
<Item Name =" IsMemberSpecialization" Optional =" true" >InstantiatedFromMember.get_int()</Item >
1784
1821
<Item Name =" InstantiatedFromMember" Optional =" true" Condition =" ! InstantiatedFromMember.is_null()" >
1785
- as_ctpsd()- > InstantiatedFromMember.get_ptr()
1822
+ InstantiatedFromMember.get_ptr()
1786
1823
</Item >
1787
1824
1788
1825
<Item Name =" SpecializedTemplate" Optional =" true" Condition =" SpecializedTemplate.get_int() == 0" >
@@ -1792,6 +1829,8 @@ For later versions of Visual Studio, no setup is required-->
1792
1829
((ClassTemplateSpecializationDecl::SpecializedPartialSpecialization*)(SpecializedTemplate.get_ptr()))-> PartialSpecialization
1793
1830
</Item >
1794
1831
1832
+ <Item Name =" SpecializationType" Optional =" true" Condition =" ExplicitInfo" >ExplicitInfo-> TypeAsWritten</Item >
1833
+
1795
1834
<Item Name =" PointOfInstantiation" Optional =" true" >PointOfInstantiation</Item >
1796
1835
1797
1836
<ExpandedItem >*(redeclarable_base*)this,nd</ExpandedItem >
0 commit comments