| //===--- TextualInterfaceGeneration.h - swiftinterface files ----*- C++ -*-===// |
| // |
| // This source file is part of the Swift.org open source project |
| // |
| // Copyright (c) 2018 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 |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SWIFT_FRONTENDTOOL_TEXTUALINTERFACEGENERATION_H |
| #define SWIFT_FRONTENDTOOL_TEXTUALINTERFACEGENERATION_H |
| |
| #include "swift/Basic/LLVM.h" |
| |
| namespace swift { |
| |
| class ModuleDecl; |
| |
| /// Emit a stable, textual interface for \p M, which can be used by a client |
| /// source file to import this module. |
| /// |
| /// Unlike a serialized module, the textual format generated by |
| /// emitModuleInterface is intended to be stable across compiler versions while |
| /// still describing the full ABI of the module in question. |
| /// |
| /// The initial plan for this format can be found at |
| /// https://forums.swift.org/t/plan-for-module-stability/14551/ |
| /// |
| /// \return true if an error occurred |
| /// |
| /// \sa swift::serialize |
| bool emitModuleInterface(raw_ostream &out, ModuleDecl *M); |
| |
| } // end namespace swift |
| |
| #endif |