mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The SyntacticMigratorPass is getting Too Big To Fail and covers multiple migrations. There was already an early exit to not run the pass if APIDigesterDataStorePath wasn't supplied, so SE-0110 tuple splat fix-its weren't getting run. This manifested in Migrator tests not printing migrated contents on Linux. New: ASTMigratorPass Renamed: SyntacticMigratorPass -> APIDiffMigratorPass New: TupleSplatMigratorPass These implementations are entirely hidden and can only be invoked by a swift::migrator function. rdar://problem/32025974
67 lines
2.3 KiB
C++
67 lines
2.3 KiB
C++
//===--- ASTMigratorPass.h --------------------------------------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// A base class for a syntactic migrator pass that uses the temporary
|
|
// swift::migrator::EditorAdapter infrastructure.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_MIGRATOR_ASTMIGRATORPASS_H
|
|
#define SWIFT_MIGRATOR_ASTMIGRATORPASS_H
|
|
|
|
#include "swift/AST/ASTContext.h"
|
|
#include "swift/Migrator/EditorAdapter.h"
|
|
|
|
namespace swift {
|
|
class SourceManager;
|
|
struct MigratorOptions;
|
|
|
|
namespace migrator {
|
|
class ASTMigratorPass {
|
|
protected:
|
|
EditorAdapter &Editor;
|
|
SourceFile *SF;
|
|
const MigratorOptions &Opts;
|
|
const StringRef Filename;
|
|
const unsigned BufferID;
|
|
SourceManager &SM;
|
|
|
|
ASTMigratorPass(EditorAdapter &Editor, SourceFile *SF,
|
|
const MigratorOptions &Opts)
|
|
: Editor(Editor), SF(SF), Opts(Opts), Filename(SF->getFilename()),
|
|
BufferID(SF->getBufferID().getValue()),
|
|
SM(SF->getASTContext().SourceMgr) {}
|
|
};
|
|
|
|
/// Run a general pass to migrate code based on SDK differences in the previous
|
|
/// release.
|
|
void runAPIDiffMigratorPass(EditorAdapter &Editor,
|
|
SourceFile *SF,
|
|
const MigratorOptions &Opts);
|
|
|
|
/// Run a pass to fix up new tuple interpretation in SE-0110.
|
|
void runTupleSplatMigratorPass(EditorAdapter &Editor,
|
|
SourceFile *SF,
|
|
const MigratorOptions &Opts);
|
|
|
|
/// Run a pass to prepend 'Swift.' to `type(of:)` expressions if they will
|
|
/// be shadowed in Swift 4, as these are now resolved by normal overload
|
|
/// resolution.
|
|
void runTypeOfMigratorPass(EditorAdapter &Editor,
|
|
SourceFile *SF,
|
|
const MigratorOptions &Opts);
|
|
|
|
} // end namespace migrator
|
|
} // end namespace swift
|
|
|
|
#endif // SWIFT_MIGRATOR_ASTMIGRATORPASS_H
|