mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
swift-api-digester: teach the tool to detect member variables change to global ones. rdar://41658300
This commit is contained in:
@@ -1,4 +1,15 @@
|
|||||||
[
|
[
|
||||||
|
{
|
||||||
|
"DiffItemKind": "CommonDiffItem",
|
||||||
|
"NodeKind": "Var",
|
||||||
|
"NodeAnnotation": "RevertSimpleStringRepresentableUpdate",
|
||||||
|
"ChildIndex": "0",
|
||||||
|
"LeftUsr": "c:@globalAttributeName",
|
||||||
|
"LeftComment": "AnimalAttributeName",
|
||||||
|
"RightUsr": "",
|
||||||
|
"RightComment": "String",
|
||||||
|
"ModuleName": "APINotesTest"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DiffItemKind": "CommonDiffItem",
|
"DiffItemKind": "CommonDiffItem",
|
||||||
"NodeKind": "TypeDecl",
|
"NodeKind": "TypeDecl",
|
||||||
@@ -161,6 +172,14 @@
|
|||||||
"NewPrintedName": "oldMember",
|
"NewPrintedName": "oldMember",
|
||||||
"NewTypeName": "OldType"
|
"NewTypeName": "OldType"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"DiffItemKind": "TypeMemberDiffItem",
|
||||||
|
"Usr": "c:@globalAttributeName",
|
||||||
|
"OldPrintedName": "globalAttributeName",
|
||||||
|
"OldTypeName": "AnimalAttributeName",
|
||||||
|
"NewPrintedName": "globalAttributeName",
|
||||||
|
"NewTypeName": ""
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"DiffItemKind": "TypeMemberDiffItem",
|
"DiffItemKind": "TypeMemberDiffItem",
|
||||||
"Usr": "c:objc(pl)TypeWithMethod(cm)plusPrint",
|
"Usr": "c:objc(pl)TypeWithMethod(cm)plusPrint",
|
||||||
|
|||||||
@@ -2543,6 +2543,12 @@ class TypeMemberDiffFinder : public SDKNodeVisitor {
|
|||||||
if (nodeParent->getKind() == SDKNodeKind::DeclType &&
|
if (nodeParent->getKind() == SDKNodeKind::DeclType &&
|
||||||
diffParent->getKind() == SDKNodeKind::Root)
|
diffParent->getKind() == SDKNodeKind::Root)
|
||||||
TypeMemberDiffs.insert({diffNode, node});
|
TypeMemberDiffs.insert({diffNode, node});
|
||||||
|
|
||||||
|
// Move from a member variable to global variable.
|
||||||
|
if (nodeParent->getKind() == SDKNodeKind::Root &&
|
||||||
|
diffParent->getKind() == SDKNodeKind::DeclType)
|
||||||
|
TypeMemberDiffs.insert({diffNode, node});
|
||||||
|
|
||||||
// Move from a member variable to another member variable
|
// Move from a member variable to another member variable
|
||||||
if (nodeParent->getKind() == SDKNodeKind::DeclType &&
|
if (nodeParent->getKind() == SDKNodeKind::DeclType &&
|
||||||
diffParent->getKind() == SDKNodeKind::DeclType &&
|
diffParent->getKind() == SDKNodeKind::DeclType &&
|
||||||
@@ -3757,7 +3763,8 @@ static void findTypeMemberDiffs(NodePtr leftSDKRoot, NodePtr rightSDKRoot,
|
|||||||
// index, old printed name)
|
// index, old printed name)
|
||||||
TypeMemberDiffItem item = {
|
TypeMemberDiffItem item = {
|
||||||
right->getAs<SDKNodeDecl>()->getUsr(),
|
right->getAs<SDKNodeDecl>()->getUsr(),
|
||||||
rightParent->getAs<SDKNodeDecl>()->getFullyQualifiedName(),
|
rightParent->getKind() == SDKNodeKind::Root ?
|
||||||
|
StringRef() : rightParent->getAs<SDKNodeDecl>()->getFullyQualifiedName(),
|
||||||
right->getPrintedName(), findSelfIndex(right), None,
|
right->getPrintedName(), findSelfIndex(right), None,
|
||||||
leftParent->getKind() == SDKNodeKind::Root ?
|
leftParent->getKind() == SDKNodeKind::Root ?
|
||||||
StringRef() : leftParent->getAs<SDKNodeDecl>()->getFullyQualifiedName(),
|
StringRef() : leftParent->getAs<SDKNodeDecl>()->getFullyQualifiedName(),
|
||||||
|
|||||||
Reference in New Issue
Block a user