Skip to content

Commit c06a789

Browse files
authored
Merge pull request #18280 from apple/revert-18226-42480588
Revert "migrator: handle AppKit protocol migrations. rdar://42480588"
2 parents 00c7cb6 + f0d1f0b commit c06a789

File tree

3 files changed

+1
-349
lines changed

3 files changed

+1
-349
lines changed

lib/Migrator/APIDiffMigratorPass.cpp

Lines changed: 1 addition & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,6 @@ struct APIDiffMigratorPass : public ASTMigratorPass, public SourceEntityWalker {
363363

364364
std::vector<ConversionFunctionInfo> HelperFuncInfo;
365365
SourceLoc FileEndLoc;
366-
llvm::StringSet<> OverridingRemoveNames;
367366

368367
/// For a given expression, check whether the type of this expression is
369368
/// name alias type, and the name alias type is known to change to raw
@@ -386,8 +385,7 @@ struct APIDiffMigratorPass : public ASTMigratorPass, public SourceEntityWalker {
386385
APIDiffMigratorPass(EditorAdapter &Editor, SourceFile *SF,
387386
const MigratorOptions &Opts):
388387
ASTMigratorPass(Editor, SF, Opts), DiffStore(Diags),
389-
FileEndLoc(SM.getRangeForBuffer(BufferID).getEnd()),
390-
OverridingRemoveNames(funcNamesForOverrideRemoval()) {}
388+
FileEndLoc(SM.getRangeForBuffer(BufferID).getEnd()) {}
391389

392390
~APIDiffMigratorPass() {
393391
Editor.disableCache();
@@ -1292,92 +1290,6 @@ struct APIDiffMigratorPass : public ASTMigratorPass, public SourceEntityWalker {
12921290
}
12931291
}
12941292

1295-
llvm::StringSet<> funcNamesForOverrideRemoval() {
1296-
llvm::StringSet<> Results;
1297-
Results.insert("c:objc(cs)NSObject(im)application:delegateHandlesKey:");
1298-
Results.insert("c:objc(cs)NSObject(im)changeColor:");
1299-
Results.insert("c:objc(cs)NSObject(im)controlTextDidBeginEditing:");
1300-
Results.insert("c:objc(cs)NSObject(im)controlTextDidEndEditing:");
1301-
Results.insert("c:objc(cs)NSObject(im)controlTextDidChange:");
1302-
Results.insert("c:objc(cs)NSObject(im)changeFont:");
1303-
Results.insert("c:objc(cs)NSObject(im)validModesForFontPanel:");
1304-
Results.insert("c:objc(cs)NSObject(im)discardEditing");
1305-
Results.insert("c:objc(cs)NSObject(im)commitEditing");
1306-
Results.insert("c:objc(cs)NSObject(im)commitEditingWithDelegate:didCommitSelector:contextInfo:");
1307-
Results.insert("c:objc(cs)NSObject(im)commitEditingAndReturnError:");
1308-
Results.insert("c:objc(cs)NSObject(im)objectDidBeginEditing:");
1309-
Results.insert("c:objc(cs)NSObject(im)objectDidEndEditing:");
1310-
Results.insert("c:objc(cs)NSObject(im)validateMenuItem:");
1311-
Results.insert("c:objc(cs)NSObject(im)pasteboard:provideDataForType:");
1312-
Results.insert("c:objc(cs)NSObject(im)pasteboardChangedOwner:");
1313-
Results.insert("c:objc(cs)NSObject(im)validateToolbarItem:");
1314-
Results.insert("c:objc(cs)NSObject(im)layer:shouldInheritContentsScale:fromWindow:");
1315-
Results.insert("c:objc(cs)NSObject(im)view:stringForToolTip:point:userData:");
1316-
return Results;
1317-
}
1318-
1319-
SourceLoc shouldRemoveOverride(AbstractFunctionDecl *AFD) {
1320-
if (AFD->getKind() != DeclKind::Func)
1321-
return SourceLoc();
1322-
SourceLoc OverrideLoc;
1323-
1324-
// Get the location of override keyword.
1325-
if (auto *Override = AFD->getAttrs().getAttribute<OverrideAttr>()) {
1326-
if (Override->getRange().isValid()) {
1327-
OverrideLoc = Override->getLocation();
1328-
}
1329-
}
1330-
if (OverrideLoc.isInvalid())
1331-
return SourceLoc();
1332-
auto *OD = AFD->getOverriddenDecl();
1333-
llvm::SmallString<64> Buffer;
1334-
llvm::raw_svector_ostream OS(Buffer);
1335-
if (swift::ide::printDeclUSR(OD, OS))
1336-
return SourceLoc();
1337-
return OverridingRemoveNames.find(OS.str()) == OverridingRemoveNames.end() ?
1338-
SourceLoc() : OverrideLoc;
1339-
}
1340-
1341-
struct SuperRemoval: public ASTWalker {
1342-
EditorAdapter &Editor;
1343-
llvm::StringSet<> &USRs;
1344-
SuperRemoval(EditorAdapter &Editor, llvm::StringSet<> &USRs):
1345-
Editor(Editor), USRs(USRs) {}
1346-
bool isSuperExpr(Expr *E) {
1347-
if (E->isImplicit())
1348-
return false;
1349-
// Check if the expression is super.foo().
1350-
if (auto *CE = dyn_cast<CallExpr>(E)) {
1351-
if (auto *DSC = dyn_cast<DotSyntaxCallExpr>(CE->getFn())) {
1352-
if (DSC->getBase()->getKind() != ExprKind::SuperRef)
1353-
return false;
1354-
llvm::SmallString<64> Buffer;
1355-
llvm::raw_svector_ostream OS(Buffer);
1356-
auto *RD = DSC->getFn()->getReferencedDecl().getDecl();
1357-
if (swift::ide::printDeclUSR(RD, OS))
1358-
return false;
1359-
return USRs.find(OS.str()) != USRs.end();
1360-
}
1361-
}
1362-
// We should handle try super.foo() too.
1363-
if (auto *TE = dyn_cast<AnyTryExpr>(E)) {
1364-
return isSuperExpr(TE->getSubExpr());
1365-
}
1366-
return false;
1367-
}
1368-
std::pair<bool, Stmt*> walkToStmtPre(Stmt *S) override {
1369-
if (auto *BS = dyn_cast<BraceStmt>(S)) {
1370-
for(auto Ele: BS->getElements()) {
1371-
if (Ele.is<Expr*>() && isSuperExpr(Ele.get<Expr*>())) {
1372-
Editor.remove(Ele.getSourceRange());
1373-
}
1374-
}
1375-
}
1376-
// We only handle top-level expressions, so avoid visiting further.
1377-
return {false, S};
1378-
}
1379-
};
1380-
13811293
bool walkToDeclPre(Decl *D, CharSourceRange Range) override {
13821294
if (D->isImplicit())
13831295
return true;
@@ -1393,14 +1305,6 @@ struct APIDiffMigratorPass : public ASTMigratorPass, public SourceEntityWalker {
13931305
handleLocalParameterBridge(AFD, DiffItem);
13941306
}
13951307
}
1396-
auto OverrideLoc = shouldRemoveOverride(AFD);
1397-
if (OverrideLoc.isValid()) {
1398-
// Remove override keyword.
1399-
Editor.remove(OverrideLoc);
1400-
// Remove super-dot call.
1401-
SuperRemoval Removal(Editor, OverridingRemoveNames);
1402-
D->walk(Removal);
1403-
}
14041308
}
14051309
return true;
14061310
}

test/Migrator/remove_override.swift

Lines changed: 0 additions & 126 deletions
This file was deleted.

test/Migrator/remove_override.swift.expected

Lines changed: 0 additions & 126 deletions
This file was deleted.

0 commit comments

Comments
 (0)