[SourceKit] Stop printing normal comments in clang generated interface

Generated interfaces for Clang modules used to try printing normal
comments between decls extracted from the header text. That was because
doc-comment was not common in C/ObjC headers. But mainly because of
"import as member feature" Clang decls aren't printed in the order as
they appear in the header file, the logic determinig which comment
belongs to which decl was not working property. We've decided to remove
that feature and only print the proper doc-comments as it has been
getting common.

rdar://93731287
This commit is contained in:
Rintaro Ishizaki
2023-11-06 22:35:17 -08:00
parent 5d6ce704dd
commit c9785d955d
30 changed files with 4245 additions and 5127 deletions

View File

@@ -502,9 +502,6 @@ struct PrintOptions {
/// (e.g. the overridden method in the superclass) if such comment is found.
bool PrintDocumentationComments = false;
/// Whether to print regular comments from clang module headers.
bool PrintRegularClangComments = false;
/// When true, printing interface from a source file will print the original
/// source text for applicable declarations, in order to preserve the
/// formatting.
@@ -645,7 +642,6 @@ struct PrintOptions {
result.TypeDefinitions = true;
result.VarInitializers = true;
result.PrintDocumentationComments = true;
result.PrintRegularClangComments = true;
result.PrintLongAttrsOnSeparateLines = true;
result.AlwaysTryPrintParameterLabels = true;
return result;

View File

@@ -1138,9 +1138,7 @@ public:
// handles this, but we need to insert it for clang doc comments when not
// printing other clang comments. Do it now so the printDeclPre callback
// happens after the newline.
if (Options.PrintDocumentationComments &&
!Options.PrintRegularClangComments &&
D->hasClangNode()) {
if (Options.PrintDocumentationComments && D->hasClangNode()) {
auto clangNode = D->getClangNode();
auto clangDecl = clangNode.getAsDecl();
if (clangDecl &&
@@ -1150,7 +1148,6 @@ public:
}
}
Printer.callPrintDeclPre(D, Options.BracketOptions);
if (Options.PrintCompatibilityFeatureChecks) {

View File

@@ -118,7 +118,6 @@ PrintOptions PrintOptions::printDocInterface() {
result.ArgAndParamPrinting =
PrintOptions::ArgAndParamPrintingMode::BothAlways;
result.PrintDocumentationComments = false;
result.PrintRegularClangComments = false;
result.PrintFunctionRepresentationAttrs =
PrintOptions::FunctionRepresentationMode::None;
return result;

View File

@@ -44,108 +44,6 @@
using namespace swift;
namespace {
/// Prints regular comments from clang module headers.
class ClangCommentPrinter : public ASTPrinter {
public:
ClangCommentPrinter(ASTPrinter &OtherPrinter, ClangModuleLoader &ClangLoader)
: OtherPrinter(OtherPrinter),
ClangLoader(ClangLoader) {}
private:
void printDeclPre(const Decl *D,
std::optional<BracketOptions> Bracket) override;
void printDeclPost(const Decl *D,
std::optional<BracketOptions> Bracket) override;
void avoidPrintDeclPost(const Decl *D) override;
// Forwarding implementations.
void printText(StringRef Text) override {
return OtherPrinter.printText(Text);
}
void printDeclLoc(const Decl *D) override {
return OtherPrinter.printDeclLoc(D);
}
void printDeclNameEndLoc(const Decl *D) override {
return OtherPrinter.printDeclNameEndLoc(D);
}
void printDeclNameOrSignatureEndLoc(const Decl *D) override {
return OtherPrinter.printDeclNameOrSignatureEndLoc(D);
}
void printTypePre(const TypeLoc &TL) override {
return OtherPrinter.printTypePre(TL);
}
void printTypePost(const TypeLoc &TL) override {
return OtherPrinter.printTypePost(TL);
}
void printTypeRef(Type T, const TypeDecl *TD, Identifier Name,
PrintNameContext NameContext) override {
return OtherPrinter.printTypeRef(T, TD, Name, NameContext);
}
void printModuleRef(ModuleEntity Mod, Identifier Name) override {
return OtherPrinter.printModuleRef(Mod, Name);
}
void
printSynthesizedExtensionPre(const ExtensionDecl *ED,
TypeOrExtensionDecl Target,
std::optional<BracketOptions> Bracket) override {
return OtherPrinter.printSynthesizedExtensionPre(ED, Target, Bracket);
}
void printSynthesizedExtensionPost(
const ExtensionDecl *ED, TypeOrExtensionDecl Target,
std::optional<BracketOptions> Bracket) override {
return OtherPrinter.printSynthesizedExtensionPost(ED, Target, Bracket);
}
void printStructurePre(PrintStructureKind Kind, const Decl *D) override {
return OtherPrinter.printStructurePre(Kind, D);
}
void printStructurePost(PrintStructureKind Kind, const Decl *D) override {
return OtherPrinter.printStructurePost(Kind, D);
}
void printNamePre(PrintNameContext Context) override {
return OtherPrinter.printNamePre(Context);
}
void printNamePost(PrintNameContext Context) override {
return OtherPrinter.printNamePost(Context);
}
// Prints regular comments of the header the clang node comes from, until
// the location of the node. Keeps track of the comments that were printed
// from the file and resumes printing for the next node from the same file.
// This expects to get passed clang nodes in source-order (at least within the
// same header).
void printCommentsUntil(ClangNode Node);
void printComment(StringRef Text, unsigned StartLocCol);
bool isDocumentationComment(clang::SourceLocation CommentLoc,
ClangNode Node) const;
unsigned getResumeOffset(clang::FileID FID) const {
auto OffsI = ResumeOffsets.find(FID);
if (OffsI != ResumeOffsets.end())
return OffsI->second;
return 0;
}
void setResumeOffset(clang::FileID FID, unsigned Offset) {
ResumeOffsets[FID] = Offset;
}
bool shouldPrintNewLineBefore(ClangNode Node) const;
void updateLastEntityLine(clang::SourceLocation Loc);
void updateLastEntityLine(clang::FileID FID, unsigned LineNo);
ASTPrinter &OtherPrinter;
ClangModuleLoader &ClangLoader;
llvm::DenseMap<clang::FileID, unsigned> ResumeOffsets;
SmallVector<StringRef, 2> PendingComments;
llvm::DenseMap<clang::FileID, unsigned> LastEntityLines;
};
} // unnamed namespace
static const clang::Module *
getUnderlyingClangModuleForImport(ImportDecl *Import) {
if (auto *ClangMod = Import->getClangModule())
@@ -761,14 +659,8 @@ void swift::ide::printModuleInterface(
if (GroupNames.empty())
std::stable_sort(SwiftDecls.begin(), SwiftDecls.end(), compareSwiftDecls);
ASTPrinter *PrinterToUse = &Printer;
ClangCommentPrinter RegularCommentPrinter(Printer, Importer);
if (Options.PrintRegularClangComments)
PrinterToUse = &RegularCommentPrinter;
auto PrintDecl = [&](Decl *D) {
return printModuleInterfaceDecl(D, *PrinterToUse, AdjustedOptions,
return printModuleInterfaceDecl(D, Printer, AdjustedOptions,
PrintSynthesizedExtensions);
};
@@ -808,7 +700,7 @@ void swift::ide::printModuleInterface(
// also print the decls from any underscored Swift cross-import overlays it
// is the underlying module of, transitively.
if (GroupNames.empty()) {
printCrossImportOverlays(TargetMod, SwiftContext, *PrinterToUse,
printCrossImportOverlays(TargetMod, SwiftContext, Printer,
AdjustedOptions, PrintSynthesizedExtensions);
}
}
@@ -911,18 +803,11 @@ void swift::ide::printHeaderInterface(
getEffectiveClangNode(RHS).getLocation());
});
ASTPrinter *PrinterToUse = &Printer;
ClangCommentPrinter RegularCommentPrinter(Printer, Importer);
if (Options.PrintRegularClangComments)
PrinterToUse = &RegularCommentPrinter;
for (auto *D : ClangDecls) {
// Even though the corresponding clang decl should be top-level, its
// equivalent Swift decl may not be. E.g. a top-level function may be mapped
// to a property accessor in Swift.
D = getTopLevelDecl(D);
ASTPrinter &Printer = *PrinterToUse;
if (!AdjustedOptions.shouldPrint(D)) {
Printer.callAvoidPrintDeclPost(D);
continue;
@@ -932,215 +817,6 @@ void swift::ide::printHeaderInterface(
}
}
void ClangCommentPrinter::avoidPrintDeclPost(const Decl *D) {
auto CD = D->getClangDecl();
if (!CD)
return;
const auto &Ctx = ClangLoader.getClangASTContext();
const auto &SM = Ctx.getSourceManager();
auto EndLoc = CD->getSourceRange().getEnd();
if (EndLoc.isInvalid())
return;
clang::FileID FID = SM.getFileID(EndLoc);
if (FID.isInvalid())
return;
auto Loc = EndLoc;
for (unsigned Line = SM.getSpellingLineNumber(EndLoc);
Loc.isValid() && SM.getSpellingLineNumber(Loc) == Line;
Loc = Loc.getLocWithOffset(1));
if (Loc.isInvalid())
return;
if (SM.getFileOffset(Loc) > getResumeOffset(FID))
setResumeOffset(FID, SM.getFileOffset(Loc));
}
void ClangCommentPrinter::printDeclPre(const Decl *D,
std::optional<BracketOptions> Bracket) {
// Skip parameters, since we do not gracefully handle nested declarations on a
// single line.
// FIXME: we should fix that, since it also affects struct members, etc.
if (!isa<ParamDecl>(D)) {
if (auto ClangN = swift::ide::getEffectiveClangNode(D)) {
printCommentsUntil(ClangN);
if (shouldPrintNewLineBefore(ClangN)) {
*this << "\n";
printIndent();
}
updateLastEntityLine(ClangN.getSourceRange().getBegin());
}
}
return OtherPrinter.printDeclPre(D, Bracket);
}
void ClangCommentPrinter::printDeclPost(const Decl *D,
std::optional<BracketOptions> Bracket) {
OtherPrinter.printDeclPost(D, Bracket);
// Skip parameters; see printDeclPre().
if (isa<ParamDecl>(D))
return;
for (auto CommentText : PendingComments) {
*this << " " << unicode::sanitizeUTF8(CommentText);
}
PendingComments.clear();
if (auto ClangN = swift::ide::getEffectiveClangNode(D))
updateLastEntityLine(ClangN.getSourceRange().getEnd());
}
void ClangCommentPrinter::printCommentsUntil(ClangNode Node) {
const auto &Ctx = ClangLoader.getClangASTContext();
const auto &SM = Ctx.getSourceManager();
clang::SourceLocation NodeLoc =
SM.getFileLoc(Node.getSourceRange().getBegin());
if (NodeLoc.isInvalid())
return;
unsigned NodeLineNo = SM.getSpellingLineNumber(NodeLoc);
clang::FileID FID = SM.getFileID(NodeLoc);
if (FID.isInvalid())
return;
clang::SourceLocation FileLoc = SM.getLocForStartOfFile(FID);
StringRef Text = SM.getBufferData(FID);
if (Text.empty())
return;
const char *BufStart = Text.data();
const char *BufPtr = BufStart + getResumeOffset(FID);
const char *BufEnd = BufStart + Text.size();
assert(BufPtr <= BufEnd);
if (BufPtr == BufEnd)
return; // nothing left.
clang::Lexer Lex(FileLoc, Ctx.getLangOpts(), BufStart, BufPtr, BufEnd);
Lex.SetCommentRetentionState(true);
unsigned &LastPrintedLineNo = LastEntityLines[FID];
clang::Token Tok;
do {
BufPtr = Lex.getBufferLocation();
Lex.LexFromRawLexer(Tok);
if (Tok.is(clang::tok::eof))
break;
if (Tok.isNot(clang::tok::comment))
continue;
// Reached a comment.
clang::SourceLocation CommentLoc = Tok.getLocation();
std::pair<clang::FileID, unsigned> LocInfo =
SM.getDecomposedLoc(CommentLoc);
assert(LocInfo.first == FID);
unsigned LineNo = SM.getLineNumber(LocInfo.first, LocInfo.second);
if (LineNo > NodeLineNo)
break; // Comment is past the clang node.
bool IsDocComment = isDocumentationComment(CommentLoc, Node);
// Print out the comment.
StringRef CommentText(BufStart + LocInfo.second, Tok.getLength());
// Check if comment is on same line but after the declaration.
if (SM.isBeforeInTranslationUnit(NodeLoc, Tok.getLocation())) {
if (!IsDocComment)
PendingComments.push_back(CommentText);
continue;
}
if (LastPrintedLineNo && LineNo - LastPrintedLineNo > 1) {
*this << "\n";
printIndent();
}
if (!IsDocComment) {
unsigned StartLocCol = SM.getSpellingColumnNumber(Tok.getLocation());
printComment(CommentText, StartLocCol);
}
LastPrintedLineNo =
SM.getLineNumber(LocInfo.first, LocInfo.second + Tok.getLength());
} while (true);
// Resume printing comments from this point.
setResumeOffset(FID, BufPtr - BufStart);
}
void ClangCommentPrinter::printComment(StringRef RawText, unsigned StartCol) {
unsigned WhitespaceToTrim = StartCol ? StartCol - 1 : 0;
SmallVector<StringRef, 8> Lines;
trimLeadingWhitespaceFromLines(RawText, WhitespaceToTrim, Lines);
for (auto Line : Lines) {
*this << unicode::sanitizeUTF8(Line) << "\n";
printIndent();
}
}
bool ClangCommentPrinter::isDocumentationComment(
clang::SourceLocation CommentLoc, ClangNode Node) const {
const clang::Decl *D = Node.getAsDecl();
if (!D)
return false;
const auto &Ctx = ClangLoader.getClangASTContext();
const auto &SM = Ctx.getSourceManager();
const clang::RawComment *RC = Ctx.getRawCommentForAnyRedecl(D);
if (!RC)
return false;
clang::SourceRange DocRange = RC->getSourceRange();
if (SM.isBeforeInTranslationUnit(CommentLoc, DocRange.getBegin()) ||
SM.isBeforeInTranslationUnit(DocRange.getEnd(), CommentLoc))
return false;
return true;
}
bool ClangCommentPrinter::shouldPrintNewLineBefore(ClangNode Node) const {
assert(Node);
const auto &Ctx = ClangLoader.getClangASTContext();
const auto &SM = Ctx.getSourceManager();
clang::SourceLocation NodeLoc =
SM.getFileLoc(Node.getSourceRange().getBegin());
if (NodeLoc.isInvalid())
return false;
unsigned NodeLineNo = SM.getSpellingLineNumber(NodeLoc);
clang::FileID FID = SM.getFileID(NodeLoc);
if (FID.isInvalid())
return false;
unsigned LastEntiyLine = 0;
auto It = LastEntityLines.find(FID);
if (It != LastEntityLines.end())
LastEntiyLine = It->second;
return (NodeLineNo > LastEntiyLine) && NodeLineNo - LastEntiyLine > 1;
}
void ClangCommentPrinter::updateLastEntityLine(clang::SourceLocation Loc) {
if (Loc.isInvalid())
return;
const auto &Ctx = ClangLoader.getClangASTContext();
const auto &SM = Ctx.getSourceManager();
unsigned LineNo = SM.getSpellingLineNumber(Loc);
clang::FileID FID = SM.getFileID(Loc);
if (FID.isInvalid())
return;
updateLastEntityLine(FID, LineNo);
}
void ClangCommentPrinter::updateLastEntityLine(clang::FileID FID,
unsigned LineNo) {
assert(!FID.isInvalid());
unsigned &LastEntiyLine = LastEntityLines[FID];
if (LineNo > LastEntiyLine)
LastEntiyLine = LineNo;
}
void swift::ide::printSymbolicSwiftClangModuleInterface(
ModuleDecl *M, ASTPrinter &Printer, const clang::Module *clangModule) {
std::string headerComment;
@@ -1154,7 +830,6 @@ void swift::ide::printSymbolicSwiftClangModuleInterface(
auto popts =
PrintOptions::printModuleInterface(/*printFullConvention=*/false);
popts.PrintDocumentationComments = false;
popts.PrintRegularClangComments = false;
popts.SkipInlineCXXNamespace = true;
auto &SwiftContext = M->getTopLevelModule()->getASTContext();

View File

@@ -1,8 +1,8 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 -check-prefix=CHECK-BOTH %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 -check-prefix=CHECK-BOTH %s
// REQUIRES: objc_interop

View File

@@ -1,8 +1,8 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -swift-version 5 | %FileCheck -check-prefix=CHECK-SWIFT-5 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -print-regular-comments -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 %s
// RUN: %target-swift-ide-test -F %S/Inputs/custom-frameworks -print-module -source-filename %s -module-to-print=APINotesFrameworkTest -function-definitions=false -swift-version 4 | %FileCheck -check-prefix=CHECK-SWIFT-4 %s
// CHECK-SWIFT-5: func jumpTo(x: Double, y: Double, z: Double)
// CHECK-SWIFT-4: func jumpTo(x: Double, y: Double, z: Double)

View File

@@ -12,9 +12,9 @@
// RUN: %target-swift-frontend -typecheck %s -import-objc-header %S/Inputs/enum-error.h -DERRORS -verify
// RUN: echo '#include "enum-error.h"' > %t.m
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/enum-error.h -import-objc-header %S/Inputs/enum-error.h -print-regular-comments --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t.txt
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/enum-error.h -import-objc-header %S/Inputs/enum-error.h --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t.txt
// RUN: %FileCheck -check-prefix=HEADER %s < %t.txt
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/enum-error.h -import-objc-header %S/Inputs/enum-error.h -print-regular-comments --skip-private-stdlib-decls -skip-underscored-stdlib-protocols --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t2.txt
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/enum-error.h -import-objc-header %S/Inputs/enum-error.h --skip-private-stdlib-decls -skip-underscored-stdlib-protocols --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t2.txt
// RUN: %FileCheck -check-prefix=HEADER-NO-PRIVATE %s < %t2.txt
import Foundation

View File

@@ -3,7 +3,7 @@
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-objc-interop -import-objc-header %S/Inputs/nested_protocol_name.h -typecheck -verify %s
// RUN: echo '#include "nested_protocol_name.h"' > %t.m
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/nested_protocol_name.h -import-objc-header %S/Inputs/nested_protocol_name.h -print-regular-comments --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t.txt
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/nested_protocol_name.h -import-objc-header %S/Inputs/nested_protocol_name.h --cc-args %target-cc-options -fsyntax-only %t.m -I %S/Inputs > %t.txt
// RUN: %FileCheck -check-prefix=HEADER %s < %t.txt
// rdar://59431058
@@ -15,7 +15,6 @@
// HEADER: func addLimb(_ limb: (any Trunk.Branch)!)
// HEADER: func addLimbs(_ limbs: [any Trunk.Branch]!)
// HEADER: }
// HEADER: // NS_SWIFT_NAME(Trunk.Branch)
// HEADER: protocol Branch {
// HEADER: func flower()
// HEADER: }

View File

@@ -1,13 +1,9 @@
import Foundation
import CoreFoundation
import Dispatch
var MY_MACRO: Int32 { get }
var MACRO_DUP: Int32 { get }
func doSomethingInHead(_ arg: Int32)
class BaseInHead {
class func doIt(_ arg: Int32)
func doIt(_ arg: Int32)
@@ -18,15 +14,12 @@ class SameName {
}
protocol SameNameProtocol {
}
extension BaseInHead {
class func doItInCategory()
func doItInCategory()
}
protocol Superproto {
func lala()
}
class MyLittleCFType {
}

View File

@@ -1,10 +1,6 @@
var MY_MACRO: Int32 { get }
var MACRO_DUP: Int32 { get }
func doSomethingInHead(_ arg: Int32)
class BaseInHead {
class func doIt(_ arg: Int32)
func doIt(_ arg: Int32)
@@ -15,15 +11,12 @@ class SameName {
}
protocol SameNameProtocol {
}
extension BaseInHead {
class func doItInCategory()
func doItInCategory()
}
protocol Superproto {
func lala()
}
class MyLittleCFType : _CFObject {
}

View File

@@ -1,13 +1,9 @@
import Foundation
import CoreFoundation
import Dispatch
var MY_MACRO: Int32 { get }
var MACRO_DUP: Int32 { get }
func doSomethingInHead(_ arg: Int32)
class BaseInHead {
class func doIt(_ arg: Int32)
func doIt(_ arg: Int32)
@@ -18,15 +14,12 @@ class SameName {
}
protocol SameNameProtocol {
}
extension BaseInHead {
class func doItInCategory()
func doItInCategory()
}
protocol Superproto {
func lala()
}
class MyLittleCFType : _CFObject {
}

View File

@@ -1,6 +1,6 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test -print-module -source-filename %s -module-to-print=BoolBridgingTests -function-definitions=false -print-regular-comments -skip-unavailable -F %S/Inputs/mock-sdk > %t.txt
// RUN: %target-swift-ide-test -print-module -source-filename %s -module-to-print=BoolBridgingTests -function-definitions=false -skip-unavailable -F %S/Inputs/mock-sdk > %t.txt
// RUN: diff -u <(tail -n +9 %s) %t.txt
// REQUIRES: objc_interop
@@ -8,76 +8,57 @@
// EXPECTED OUTPUT STARTS BELOW THIS LINE.
@_exported import Foundation
// stdbool.h uses #define, so this test does as well.
func testCBool(_: Bool) -> Bool
func testObjCBool(_: Bool) -> Bool
func testDarwinBoolean(_: Bool) -> Bool
typealias CBoolTypedef = Bool
typealias ObjCBoolTypedef = ObjCBool
typealias DarwinBooleanTypedef = DarwinBoolean
func testCBoolTypedef(_: CBoolTypedef) -> CBoolTypedef
func testObjCBoolTypedef(_: Bool) -> Bool
func testDarwinBooleanTypedef(_: Bool) -> Bool
func testCBoolPointer(_: UnsafeMutablePointer<Bool>) -> UnsafePointer<Bool>
func testObjCBoolPointer(_: UnsafeMutablePointer<ObjCBool>) -> UnsafePointer<ObjCBool>
func testDarwinBooleanPointer(_: UnsafeMutablePointer<DarwinBoolean>) -> UnsafePointer<DarwinBoolean>
typealias CBoolFn = @convention(c) (Bool) -> Bool
typealias ObjCBoolFn = @convention(c) (ObjCBool) -> ObjCBool
typealias DarwinBooleanFn = @convention(c) (DarwinBoolean) -> DarwinBoolean
typealias CBoolBlock = (Bool) -> Bool
typealias ObjCBoolBlock = (Bool) -> Bool
typealias DarwinBooleanBlock = (Bool) -> Bool
func testCBoolFnToBlock(_: @convention(c) (Bool) -> Bool) -> (Bool) -> Bool
func testObjCBoolFnToBlock(_: @convention(c) (ObjCBool) -> ObjCBool) -> (Bool) -> Bool
func testDarwinBooleanFnToBlock(_: @convention(c) (DarwinBoolean) -> DarwinBoolean) -> (Bool) -> Bool
func testCBoolFnToBlockTypedef(_: CBoolFn) -> CBoolBlock
func testObjCBoolFnToBlockTypedef(_: ObjCBoolFn) -> ObjCBoolBlock
func testDarwinBooleanFnToBlockTypedef(_: DarwinBooleanFn) -> DarwinBooleanBlock
typealias CBoolFnToBlockType = (CBoolFn) -> (Bool) -> Bool
typealias ObjCBoolFnToBlockType = (ObjCBoolFn) -> (ObjCBool) -> ObjCBool
typealias DarwinBooleanFnToBlockType = (DarwinBooleanFn) -> (DarwinBoolean) -> DarwinBoolean
var globalObjCBoolFnToBlockFP: @convention(c) (ObjCBoolFn) -> (ObjCBool) -> ObjCBool
var globalObjCBoolFnToBlockFPP: UnsafeMutablePointer<@convention(c) (ObjCBoolFn) -> (ObjCBool) -> ObjCBool>?
var globalObjCBoolFnToBlockBP: @convention(block) (ObjCBoolFn) -> (ObjCBool) -> ObjCBool
var globalCBoolFn: CBoolFn
var globalObjCBoolFn: ObjCBoolFn
var globalDarwinBooleanFn: DarwinBooleanFn
var globalCBoolBlock: @convention(block) (Bool) -> Bool
var globalObjCBoolBlock: @convention(block) (ObjCBool) -> ObjCBool
var globalDarwinBooleanBlock: @convention(block) (DarwinBoolean) -> DarwinBoolean
class Test : NSObject {
var propCBool: Bool
var propObjCBool: Bool
var propDarwinBoolean: Bool
func testCBool(_ b: Bool) -> Bool
func testObjCBool(_ b: Bool) -> Bool
func testDarwinBoolean(_ b: Bool) -> Bool
var propCBoolBlock: (Bool) -> Bool
var propObjCBoolBlock: (Bool) -> Bool
var propDarwinBooleanBlock: (Bool) -> Bool
func testCBoolFn(toBlock fp: @convention(c) (Bool) -> Bool) -> (Bool) -> Bool
func testObjCBoolFn(toBlock fp: @convention(c) (ObjCBool) -> ObjCBool) -> (Bool) -> Bool
func testDarwinBooleanFn(toBlock fp: @convention(c) (DarwinBoolean) -> DarwinBoolean) -> (Bool) -> Bool
func produceCBoolBlockTypedef(_ outBlock: AutoreleasingUnsafeMutablePointer<(@convention(block) (Bool) -> Bool)?>)
func produceObjCBoolBlockTypedef(_ outBlock: AutoreleasingUnsafeMutablePointer<(@convention(block) (ObjCBool) -> ObjCBool)?>)
func produceDarwinBooleanBlockTypedef(_ outBlock: AutoreleasingUnsafeMutablePointer<(@convention(block) (DarwinBoolean) -> DarwinBoolean)?>)
init()
}

View File

@@ -17,7 +17,7 @@
// CHECK_NSARRAY: class NSMutableArray : NSArray
// CHECK_NSARRAY: func setArray(_ otherArray: [Any])
// RUN: %target-swift-ide-test -print-module -source-filename %s -module-to-print=Foundation.NSKeyValueCoding -function-definitions=false -print-regular-comments > %t/Foundation.NSKeyValueCoding.printed.txt
// RUN: %target-swift-ide-test -print-module -source-filename %s -module-to-print=Foundation.NSKeyValueCoding -function-definitions=false > %t/Foundation.NSKeyValueCoding.printed.txt
// RUN: %FileCheck -input-file %t/Foundation.NSKeyValueCoding.printed.txt -check-prefix=CHECK2 %s
// CHECK2: extension NSObject

View File

@@ -3,10 +3,10 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test(mock-sdk: -F %S/Inputs/mock-sdk) -print-module -source-filename %s -module-to-print=Foo -function-definitions=false -print-regular-comments > %t/Foo.printed.txt
// RUN: %target-swift-ide-test(mock-sdk: -F %S/Inputs/mock-sdk) -print-module -source-filename %s -module-to-print=Foo -function-definitions=false > %t/Foo.printed.txt
// RUN: diff -u %S/Inputs/mock-sdk/Foo.printed.txt %t/Foo.printed.txt
// RUN: %target-swift-ide-test(mock-sdk: -F %S/Inputs/mock-sdk) -print-interface -print-module -source-filename %s -module-to-print=Foo -function-definitions=false -print-regular-comments > %t/Foo.interface.printed.txt
// RUN: %target-swift-ide-test(mock-sdk: -F %S/Inputs/mock-sdk) -print-interface -print-module -source-filename %s -module-to-print=Foo -function-definitions=false > %t/Foo.interface.printed.txt
// RUN: %FileCheck %s -check-prefix=INTERFACE1 < %t/Foo.interface.printed.txt
// RUN: %target-swift-ide-test(mock-sdk: -F %S/Inputs/mock-sdk) -print-module -source-filename %s -module-to-print=Foo -function-definitions=false -prefer-type-repr=true -module-print-submodules > %t/Foo.printed.recursive.txt

View File

@@ -2,21 +2,21 @@
// REQUIRES: objc_interop
// RUN: echo '#include "header-to-print.h"' > %t.m
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.m -I %S/Inputs/print_clang_header > %t.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.m -I %S/Inputs/print_clang_header > %t.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.printed.txt %t.txt
// RUN: %clang %target-cc-options -isysroot %clang-importer-sdk-path -fmodules -x objective-c-header %S/Inputs/print_clang_header/header-to-print.h -o %t.h.pch
// RUN: touch %t.empty.m
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.empty.m -I %S/Inputs/print_clang_header -include %t.h > %t.with-pch.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.empty.m -I %S/Inputs/print_clang_header -include %t.h > %t.with-pch.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.command-line-include.printed.txt %t.with-pch.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.empty.m -I %S/Inputs/print_clang_header -include %S/Inputs/print_clang_header/header-to-print.h > %t.with-include.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.empty.m -I %S/Inputs/print_clang_header -include %S/Inputs/print_clang_header/header-to-print.h > %t.with-include.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.command-line-include.printed.txt %t.with-include.txt
// RUN: echo '#include <Foo/header-to-print.h>' > %t.framework.m
// RUN: sed -e "s:INPUT_DIR:%S/Inputs/print_clang_header:g" -e "s:OUT_DIR:%t:g" %S/Inputs/print_clang_header/Foo-vfsoverlay.yaml > %t.yaml
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.framework.m -F %t -ivfsoverlay %t.yaml -Xclang -fmodule-name=Foo > %t.framework.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.framework.m -F %t -ivfsoverlay %t.yaml -Xclang -fmodule-name=Foo > %t.framework.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.printed.txt %t.framework.txt
// Test header interface printing from a clang module.
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.framework.m -F %t -ivfsoverlay %t.yaml > %t.module.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -enable-objc-interop -disable-objc-attr-requires-foundation-module --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.framework.m -F %t -ivfsoverlay %t.yaml > %t.module.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.module.printed.txt %t.module.txt

View File

@@ -4,10 +4,10 @@
// RUN: echo '#include "header-to-print-availability.h"' > %t.m
// RUN: cp %S/Inputs/print_clang_header/header-to-print-availability.h %t/
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %t/header-to-print-availability.h -print-regular-comments --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.m -I %t > %t.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %t/header-to-print-availability.h --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.m -I %t > %t.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print-availability.h.printed.txt %t.txt
// RUN: echo '@import HeaderToPrintAvailability;' > %t.module.m
// Test header interface printing from a clang module.
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print-availability.h -print-regular-comments --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.module.m -I %S/Inputs/print_clang_header > %t.module.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print-availability.h --cc-args %target-cc-options -isysroot %clang-importer-sdk-path -fsyntax-only %t.module.m -I %S/Inputs/print_clang_header > %t.module.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print-availability.h.module.printed.txt %t.module.txt

View File

@@ -5,5 +5,5 @@
// RUN: echo '#include "header-to-print.h"' > %t.i386.m
// RUN: %empty-directory(%t)
// RUN: %build-clang-importer-objc-overlays
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -print-regular-comments -I %t --cc-args -arch i386 -isysroot %clang-importer-sdk-path -fsyntax-only %t.i386.m -I %S/Inputs/print_clang_header > %t.i386.txt
// RUN: %target-swift-ide-test -source-filename %s -print-header -header-to-print %S/Inputs/print_clang_header/header-to-print.h -I %t --cc-args -arch i386 -isysroot %clang-importer-sdk-path -fsyntax-only %t.i386.m -I %S/Inputs/print_clang_header > %t.i386.txt
// RUN: diff -u %S/Inputs/print_clang_header/header-to-print.h.printed.txt %t.i386.txt

View File

@@ -1,6 +1,6 @@
// RUN: %empty-directory(%t)
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -print-module -source-filename %s -module-to-print=SwiftNameTests -function-definitions=false -print-regular-comments -F %S/Inputs/mock-sdk > %t.txt
// RUN: %target-swift-ide-test(mock-sdk: %clang-importer-sdk) -print-module -source-filename %s -module-to-print=SwiftNameTests -function-definitions=false -F %S/Inputs/mock-sdk > %t.txt
// RUN: diff -u <(tail -n +9 %s) %t.txt
// REQUIRES: objc_interop
@@ -8,10 +8,7 @@
// EXPECTED OUTPUT STARTS BELOW THIS LINE.
@_exported import Foundation
class Test : NSObject {
// "Factory methods" that we'd rather have as initializers.
@available(*, unavailable, message: "superseded by import of -[NSObject init]")
convenience init()
@available(*, unavailable, renamed: "init()", message: "Not available in Swift")
@@ -19,23 +16,18 @@ class Test : NSObject {
convenience init(dummyParam: ())
@available(*, unavailable, renamed: "init(dummyParam:)", message: "Not available in Swift")
class func b() -> Self
convenience init(cc x: Any)
@available(*, unavailable, renamed: "init(cc:)", message: "Not available in Swift")
class func c(_ x: Any) -> Self
convenience init(_ x: Any)
@available(*, unavailable, renamed: "init(_:)", message: "Not available in Swift")
class func d(_ x: Any) -> Self
convenience init(aa a: Any, _ b: Any, cc c: Any)
@available(*, unavailable, renamed: "init(aa:_:cc:)", message: "Not available in Swift")
class func e(_ a: Any, e b: Any, e c: Any) -> Self
/*not inherited*/ init(fixedType: ())
@available(*, unavailable, renamed: "init(fixedType:)", message: "Not available in Swift")
class func f() -> Test
// Would-be initializers.
class func zz() -> Self
@available(swift, obsoleted: 3, renamed: "zz()")
class func testZ() -> Self
@@ -45,12 +37,9 @@ class Test : NSObject {
class func xx(_ x: Any, bb xx: Any) -> Self
@available(*, unavailable, renamed: "xx(_:bb:)", message: "Not available in Swift")
class func testX(_ x: Any, xx: Any) -> Self
init()
}
class TestError : NSObject {
// Factory methods with NSError.
convenience init(error: ()) throws
@available(*, unavailable, renamed: "init(error:)", message: "Not available in Swift")
class func err1() throws -> Self
@@ -63,7 +52,6 @@ class TestError : NSObject {
convenience init(error: (), block: @escaping () -> Void) throws
@available(*, unavailable, renamed: "init(error:block:)", message: "Not available in Swift")
class func err4(callback block: @escaping () -> Void) throws -> Self
convenience init(aa x: Any?) throws
@available(*, unavailable, renamed: "init(aa:)", message: "Not available in Swift")
class func err5(_ x: Any?) throws -> Self
@@ -73,8 +61,6 @@ class TestError : NSObject {
convenience init(block: @escaping () -> Void) throws
@available(*, unavailable, renamed: "init(block:)", message: "Not available in Swift")
class func err7(callback block: @escaping () -> Void) throws -> Self
// Would-be initializers.
class func ww(_ x: Any?) throws -> Self
@available(swift, obsoleted: 3, renamed: "ww(_:)")
class func testW(_ x: Any?) throws -> Self
@@ -89,7 +75,6 @@ class TestError : NSObject {
class func testV2() throws -> Self
init()
}
class TestSub : Test {
@available(*, unavailable, message: "superseded by import of -[NSObject init]")
convenience init()
@@ -99,7 +84,6 @@ class TestSub : Test {
convenience init(aa a: Any, _ b: Any, cc c: Any)
init()
}
class TestErrorSub : TestError {
convenience init(error: ()) throws
convenience init(aa x: Any?, error: ()) throws

View File

@@ -41,7 +41,7 @@ public class ASwiftType {
}
// LibA is a mixed framework with no source info and a submodule
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=12:36 -print-raw-response | %FileCheck %s --check-prefix=CHECKA
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=11:36 -print-raw-response | %FileCheck %s --check-prefix=CHECKA
// CHECKA: key.name: "ASwiftType"
// CHECKA: key.modulename: "LibA"
// CHECKA: key.decl_lang: source.lang.swift
@@ -60,7 +60,7 @@ framework module LibA {
@interface AObjcType
@end
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=12:54 -print-raw-response | %FileCheck %s --check-prefix=CHECKAOBJ
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=11:54 -print-raw-response | %FileCheck %s --check-prefix=CHECKAOBJ
// CHECKAOBJ: key.name: "AObjcType"
// CHECKAOBJ: key.line: [[@LINE-5]]
// CHECKAOBJ: key.column: 12
@@ -72,7 +72,7 @@ framework module LibA {
@interface ASubType
@end
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=12:70 -print-raw-response | %FileCheck %s --check-prefix=CHECKASUB
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=11:70 -print-raw-response | %FileCheck %s --check-prefix=CHECKASUB
// CHECKASUB: key.name: "ASubType"
// CHECKASUB: key.line: [[@LINE-5]]
// CHECKASUB: key.column: 12
@@ -84,7 +84,7 @@ framework module LibA {
public class BType {}
// LibB has source info
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=14:32 -print-raw-response | %FileCheck %s --check-prefix=CHECKB
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=13:32 -print-raw-response | %FileCheck %s --check-prefix=CHECKB
// CHECKB: key.name: "BType"
// CHECKB: key.line: [[@LINE-5]]
// CHECKB: key.column: 14
@@ -96,7 +96,7 @@ public class BType {}
public class CType {}
// LibC has no source info
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=14:47 -print-raw-response | %FileCheck %s --check-prefix=CHECKC
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=13:47 -print-raw-response | %FileCheck %s --check-prefix=CHECKC
// CHECKC: key.name: "CType"
// CHECKC: key.modulename: "LibC"
// CHECKC: key.decl_lang: source.lang.swift
@@ -105,7 +105,7 @@ public class CType {}
@interface DType
@end
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=14:57 -print-raw-response | %FileCheck %s --check-prefix=CHECKD
// RUN: %sourcekitd-test -req=interface-gen-open -module LibA -- -F %t/frameworks -target %target-triple == -req=cursor -pos=13:57 -print-raw-response | %FileCheck %s --check-prefix=CHECKD
// CHECKD: key.name: "DType"
// CHECKD: key.line: [[@LINE-5]]
// CHECKD: key.column: 12

View File

@@ -11,14 +11,14 @@ import Foo
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- \
// RUN: -F %S/../Inputs/libIDE-mock-sdk \
// RUN: -target %target-triple %clang-importer-sdk-nosource -I %t \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 | %FileCheck %s -check-prefix=CHECK-FOO
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=49:15 | %FileCheck %s -check-prefix=CHECK-FOO
// CHECK-FOO: <decl.struct><syntaxtype.keyword>struct</syntaxtype.keyword> <decl.name>FooRuncingOptions
// CHECK-FOO: <decl.struct><syntaxtype.keyword>struct</syntaxtype.keyword> <decl.name>FooRuncingOptions

View File

@@ -31,7 +31,7 @@ var x: FooClassBase
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t.overlays -F %S/../Inputs/libIDE-mock-sdk \
// RUN: -target %target-triple %clang-importer-sdk-nosource -I %t \
// RUN: == -req=cursor -pos=204:67 | %FileCheck -check-prefix=CHECK1 %s
// RUN: == -req=cursor -pos=176:67 | %FileCheck -check-prefix=CHECK1 %s
// The cursor points to 'FooClassBase' inside the list of base classes, see 'gen_clang_module.swift.response'
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t.overlays -F %S/../Inputs/libIDE-mock-sdk \
@@ -47,7 +47,7 @@ var x: FooClassBase
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t.overlays -F %S/../Inputs/libIDE-mock-sdk \
// RUN: -target %target-triple %clang-importer-sdk-nosource -I %t \
// RUN: == -req=cursor -pos=231:20 | %FileCheck -check-prefix=CHECK2 %s
// RUN: == -req=cursor -pos=196:20 | %FileCheck -check-prefix=CHECK2 %s
// The cursor points inside the interface, see 'gen_clang_module.swift.response'
// CHECK2: source.lang.swift.decl.function.method.instance ({{.*}}Foo.framework/Headers/Foo.h:170:10-170:27)
@@ -61,7 +61,7 @@ var x: FooClassBase
// RUN: == -req=find-usr -usr "c:objc(cs)FooClassDerived(im)fooInstanceFunc0" | %FileCheck -check-prefix=CHECK-USR %s
// The returned line:col points inside the interface, see 'gen_clang_module.swift.response'
// CHECK-USR: (231:15-231:33)
// CHECK-USR: (196:15-196:33)
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %t.overlays -F %S/../Inputs/libIDE-mock-sdk \
// RUN: -target %target-triple %clang-importer-sdk-nosource -I %t \

View File

@@ -1,9 +1,7 @@
import FooHelper.FooHelperExplicit
import FooHelper.FooHelperSub
public func fooHelperFunc1(_ a: Int32) -> Int32
public var FooHelperUnnamedEnumeratorA1: Int { get }
public var FooHelperUnnamedEnumeratorA2: Int { get }
@@ -40,87 +38,87 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 67,
key.offset: 66,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 74,
key.offset: 73,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 79,
key.offset: 78,
key.length: 14
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 94,
key.offset: 93,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 96,
key.offset: 95,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 99,
key.offset: 98,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 109,
key.offset: 108,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 116,
key.offset: 114,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 123,
key.offset: 121,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 127,
key.offset: 125,
key.length: 28
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 157,
key.offset: 155,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 163,
key.offset: 161,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 169,
key.offset: 167,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 176,
key.offset: 174,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 180,
key.offset: 178,
key.length: 28
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 210,
key.offset: 208,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 216,
key.offset: 214,
key.length: 3
}
]
@@ -147,25 +145,25 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 99,
key.offset: 98,
key.length: 5,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 109,
key.offset: 108,
key.length: 5,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 157,
key.offset: 155,
key.length: 3,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 210,
key.offset: 208,
key.length: 3,
key.is_system: 1
}
@@ -175,14 +173,14 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
key.kind: source.lang.swift.decl.function.free,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "fooHelperFunc1(_:)",
key.offset: 74,
key.offset: 73,
key.length: 40,
key.typename: "Int32",
key.nameoffset: 79,
key.nameoffset: 78,
key.namelength: 26,
key.attributes: [
{
key.offset: 67,
key.offset: 66,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -191,7 +189,7 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "a",
key.offset: 94,
key.offset: 93,
key.length: 10,
key.typename: "Int32"
}
@@ -201,16 +199,16 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
key.kind: source.lang.swift.decl.var.global,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooHelperUnnamedEnumeratorA1",
key.offset: 123,
key.offset: 121,
key.length: 45,
key.typename: "Int",
key.nameoffset: 127,
key.nameoffset: 125,
key.namelength: 28,
key.bodyoffset: 162,
key.bodyoffset: 160,
key.bodylength: 5,
key.attributes: [
{
key.offset: 116,
key.offset: 114,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -220,16 +218,16 @@ public var FooHelperUnnamedEnumeratorA2: Int { get }
key.kind: source.lang.swift.decl.var.global,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooHelperUnnamedEnumeratorA2",
key.offset: 176,
key.offset: 174,
key.length: 45,
key.typename: "Int",
key.nameoffset: 180,
key.nameoffset: 178,
key.namelength: 28,
key.bodyoffset: 215,
key.bodyoffset: 213,
key.bodylength: 5,
key.attributes: [
{
key.offset: 169,
key.offset: 167,
key.length: 6,
key.attribute: source.decl.attribute.public
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,8 +1,6 @@
import FooHelper
public func fooSubFunc1(_ a: Int32) -> Int32
public struct FooSubEnum1 : Equatable, RawRepresentable {
public init(_ rawValue: UInt32)
@@ -13,7 +11,6 @@ public struct FooSubEnum1 : Equatable, RawRepresentable {
}
public var FooSubEnum1X: FooSubEnum1 { get }
public var FooSubEnum1Y: FooSubEnum1 { get }
public var FooSubUnnamedEnumeratorA1: Int { get }
[
@@ -29,202 +26,202 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 19,
key.offset: 18,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 26,
key.offset: 25,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 31,
key.offset: 30,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 43,
key.offset: 42,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 45,
key.offset: 44,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 48,
key.offset: 47,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 58,
key.offset: 57,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 65,
key.offset: 63,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 72,
key.offset: 70,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 79,
key.offset: 77,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 93,
key.offset: 91,
key.length: 9
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 104,
key.offset: 102,
key.length: 16
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 128,
key.offset: 126,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 135,
key.offset: 133,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 140,
key.offset: 138,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 142,
key.offset: 140,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 152,
key.offset: 150,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 165,
key.offset: 163,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 172,
key.offset: 170,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 177,
key.offset: 175,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 187,
key.offset: 185,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 200,
key.offset: 198,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 207,
key.offset: 205,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 211,
key.offset: 209,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 221,
key.offset: 219,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 230,
key.offset: 228,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 237,
key.offset: 235,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 241,
key.offset: 239,
key.length: 12
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 255,
key.offset: 253,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 269,
key.offset: 267,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 275,
key.offset: 273,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 282,
key.offset: 280,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 286,
key.offset: 284,
key.length: 12
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 300,
key.offset: 298,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 314,
key.offset: 312,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 321,
key.offset: 318,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 328,
key.offset: 325,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 332,
key.offset: 329,
key.length: 25
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 359,
key.offset: 356,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 365,
key.offset: 362,
key.length: 3
}
]
@@ -236,59 +233,59 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 48,
key.offset: 47,
key.length: 5,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 58,
key.offset: 57,
key.length: 5,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.protocol,
key.offset: 93,
key.offset: 91,
key.length: 9,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.protocol,
key.offset: 104,
key.offset: 102,
key.length: 16,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 152,
key.offset: 150,
key.length: 6,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 187,
key.offset: 185,
key.length: 6,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 221,
key.offset: 219,
key.length: 6,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 255,
key.offset: 253,
key.length: 11
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 300,
key.offset: 298,
key.length: 11
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 359,
key.offset: 356,
key.length: 3,
key.is_system: 1
}
@@ -298,14 +295,14 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.function.free,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "fooSubFunc1(_:)",
key.offset: 26,
key.offset: 25,
key.length: 37,
key.typename: "Int32",
key.nameoffset: 31,
key.nameoffset: 30,
key.namelength: 23,
key.attributes: [
{
key.offset: 19,
key.offset: 18,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -314,7 +311,7 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "a",
key.offset: 43,
key.offset: 42,
key.length: 10,
key.typename: "Int32"
}
@@ -324,11 +321,11 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.struct,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooSubEnum1",
key.offset: 72,
key.offset: 70,
key.length: 157,
key.nameoffset: 79,
key.nameoffset: 77,
key.namelength: 11,
key.bodyoffset: 122,
key.bodyoffset: 120,
key.bodylength: 106,
key.inheritedtypes: [
{
@@ -340,7 +337,7 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
],
key.attributes: [
{
key.offset: 65,
key.offset: 63,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -348,12 +345,12 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.elements: [
{
key.kind: source.lang.swift.structure.elem.typeref,
key.offset: 93,
key.offset: 91,
key.length: 9
},
{
key.kind: source.lang.swift.structure.elem.typeref,
key.offset: 104,
key.offset: 102,
key.length: 16
}
],
@@ -362,13 +359,13 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.function.method.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "init(_:)",
key.offset: 135,
key.offset: 133,
key.length: 24,
key.nameoffset: 135,
key.nameoffset: 133,
key.namelength: 24,
key.attributes: [
{
key.offset: 128,
key.offset: 126,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -377,7 +374,7 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "rawValue",
key.offset: 140,
key.offset: 138,
key.length: 18,
key.typename: "UInt32"
}
@@ -387,13 +384,13 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.function.method.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "init(rawValue:)",
key.offset: 172,
key.offset: 170,
key.length: 22,
key.nameoffset: 172,
key.nameoffset: 170,
key.namelength: 22,
key.attributes: [
{
key.offset: 165,
key.offset: 163,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -402,10 +399,10 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "rawValue",
key.offset: 177,
key.offset: 175,
key.length: 16,
key.typename: "UInt32",
key.nameoffset: 177,
key.nameoffset: 175,
key.namelength: 8
}
]
@@ -415,14 +412,14 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.accessibility: source.lang.swift.accessibility.public,
key.setter_accessibility: source.lang.swift.accessibility.public,
key.name: "rawValue",
key.offset: 207,
key.offset: 205,
key.length: 20,
key.typename: "UInt32",
key.nameoffset: 211,
key.nameoffset: 209,
key.namelength: 8,
key.attributes: [
{
key.offset: 200,
key.offset: 198,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -434,16 +431,16 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.var.global,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooSubEnum1X",
key.offset: 237,
key.offset: 235,
key.length: 37,
key.typename: "FooSubEnum1",
key.nameoffset: 241,
key.nameoffset: 239,
key.namelength: 12,
key.bodyoffset: 268,
key.bodyoffset: 266,
key.bodylength: 5,
key.attributes: [
{
key.offset: 230,
key.offset: 228,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -453,16 +450,16 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.var.global,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooSubEnum1Y",
key.offset: 282,
key.offset: 280,
key.length: 37,
key.typename: "FooSubEnum1",
key.nameoffset: 286,
key.nameoffset: 284,
key.namelength: 12,
key.bodyoffset: 313,
key.bodyoffset: 311,
key.bodylength: 5,
key.attributes: [
{
key.offset: 275,
key.offset: 273,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -472,16 +469,16 @@ public var FooSubUnnamedEnumeratorA1: Int { get }
key.kind: source.lang.swift.decl.var.global,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "FooSubUnnamedEnumeratorA1",
key.offset: 328,
key.offset: 325,
key.length: 42,
key.typename: "Int",
key.nameoffset: 332,
key.nameoffset: 329,
key.namelength: 25,
key.bodyoffset: 364,
key.bodyoffset: 361,
key.bodylength: 5,
key.attributes: [
{
key.offset: 321,
key.offset: 318,
key.length: 6,
key.attribute: source.decl.attribute.public
}

View File

@@ -1,13 +1,14 @@
public struct NUPixelSize {
public init()
public init(width: Int, height: Int)
/** Some clang-style comments */
public var width: Int
/**
* Some clang-style comments
*/
@@ -17,57 +18,57 @@ public struct NUPixelSize {
[
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 1,
key.offset: 0,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 8,
key.offset: 7,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 15,
key.offset: 14,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 34,
key.offset: 33,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 41,
key.offset: 40,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 53,
key.offset: 52,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 60,
key.offset: 59,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 65,
key.offset: 64,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 72,
key.offset: 71,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 77,
key.offset: 76,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 85,
key.offset: 84,
key.length: 3
},
{
@@ -97,40 +98,40 @@ public struct NUPixelSize {
},
{
key.kind: source.lang.swift.syntaxtype.doccomment,
key.offset: 159,
key.offset: 160,
key.length: 44
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 208,
key.offset: 209,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 215,
key.offset: 216,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 219,
key.offset: 220,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 227,
key.offset: 228,
key.length: 3
}
]
[
{
key.kind: source.lang.swift.ref.struct,
key.offset: 72,
key.offset: 71,
key.length: 3,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 85,
key.offset: 84,
key.length: 3,
key.is_system: 1
},
@@ -142,7 +143,7 @@ public struct NUPixelSize {
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 227,
key.offset: 228,
key.length: 3,
key.is_system: 1
}
@@ -152,15 +153,15 @@ public struct NUPixelSize {
key.kind: source.lang.swift.decl.struct,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "NUPixelSize",
key.offset: 8,
key.length: 224,
key.nameoffset: 15,
key.offset: 7,
key.length: 226,
key.nameoffset: 14,
key.namelength: 11,
key.bodyoffset: 28,
key.bodylength: 203,
key.bodyoffset: 27,
key.bodylength: 205,
key.attributes: [
{
key.offset: 1,
key.offset: 0,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -170,13 +171,13 @@ public struct NUPixelSize {
key.kind: source.lang.swift.decl.function.method.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "init()",
key.offset: 41,
key.offset: 40,
key.length: 6,
key.nameoffset: 41,
key.nameoffset: 40,
key.namelength: 6,
key.attributes: [
{
key.offset: 34,
key.offset: 33,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -186,13 +187,13 @@ public struct NUPixelSize {
key.kind: source.lang.swift.decl.function.method.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "init(width:height:)",
key.offset: 60,
key.offset: 59,
key.length: 29,
key.nameoffset: 60,
key.nameoffset: 59,
key.namelength: 29,
key.attributes: [
{
key.offset: 53,
key.offset: 52,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -201,19 +202,19 @@ public struct NUPixelSize {
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "width",
key.offset: 65,
key.offset: 64,
key.length: 10,
key.typename: "Int",
key.nameoffset: 65,
key.nameoffset: 64,
key.namelength: 5
},
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "height",
key.offset: 77,
key.offset: 76,
key.length: 11,
key.typename: "Int",
key.nameoffset: 77,
key.nameoffset: 76,
key.namelength: 6
}
]
@@ -243,16 +244,16 @@ public struct NUPixelSize {
key.accessibility: source.lang.swift.accessibility.public,
key.setter_accessibility: source.lang.swift.accessibility.public,
key.name: "height",
key.offset: 215,
key.offset: 216,
key.length: 15,
key.typename: "Int",
key.nameoffset: 219,
key.nameoffset: 220,
key.namelength: 6,
key.docoffset: 159,
key.docoffset: 160,
key.doclength: 44,
key.attributes: [
{
key.offset: 208,
key.offset: 209,
key.length: 6,
key.attribute: source.decl.attribute.public
}

View File

@@ -1,7 +1,5 @@
public enum SKFuelKind : UInt32 {
case H2 = 0
case CH4 = 1
@@ -18,151 +16,151 @@ extension SKFuelKind {
[
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 1,
key.offset: 0,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 8,
key.offset: 7,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 13,
key.offset: 12,
key.length: 10
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 26,
key.offset: 25,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 45,
key.offset: 39,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 50,
key.offset: 44,
key.length: 2
},
{
key.kind: source.lang.swift.syntaxtype.number,
key.offset: 55,
key.offset: 49,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 62,
key.offset: 56,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 67,
key.offset: 61,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.number,
key.offset: 73,
key.offset: 67,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 80,
key.offset: 74,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 85,
key.offset: 79,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.number,
key.offset: 94,
key.offset: 88,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 98,
key.offset: 92,
key.length: 9
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 108,
key.offset: 102,
key.length: 10
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 126,
key.offset: 120,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 133,
key.offset: 127,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 137,
key.offset: 131,
key.length: 11
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 150,
key.offset: 144,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 159,
key.offset: 153,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 170,
key.offset: 164,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 177,
key.offset: 171,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 181,
key.offset: 175,
key.length: 14
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 197,
key.offset: 191,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 206,
key.offset: 200,
key.length: 3
}
]
[
{
key.kind: source.lang.swift.ref.struct,
key.offset: 26,
key.offset: 25,
key.length: 6,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.enum,
key.offset: 108,
key.offset: 102,
key.length: 10
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 150,
key.offset: 144,
key.length: 6,
key.is_system: 1
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 197,
key.offset: 191,
key.length: 6,
key.is_system: 1
}
@@ -172,12 +170,12 @@ extension SKFuelKind {
key.kind: source.lang.swift.decl.enum,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "SKFuelKind",
key.offset: 8,
key.length: 89,
key.nameoffset: 13,
key.offset: 7,
key.length: 84,
key.nameoffset: 12,
key.namelength: 10,
key.bodyoffset: 34,
key.bodylength: 62,
key.bodyoffset: 33,
key.bodylength: 57,
key.inheritedtypes: [
{
key.name: "UInt32"
@@ -185,7 +183,7 @@ extension SKFuelKind {
],
key.attributes: [
{
key.offset: 1,
key.offset: 0,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -193,28 +191,28 @@ extension SKFuelKind {
key.elements: [
{
key.kind: source.lang.swift.structure.elem.typeref,
key.offset: 26,
key.offset: 25,
key.length: 6
}
],
key.substructure: [
{
key.kind: source.lang.swift.decl.enumcase,
key.offset: 45,
key.offset: 39,
key.length: 11,
key.substructure: [
{
key.kind: source.lang.swift.decl.enumelement,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "H2",
key.offset: 50,
key.offset: 44,
key.length: 6,
key.nameoffset: 50,
key.nameoffset: 44,
key.namelength: 2,
key.elements: [
{
key.kind: source.lang.swift.structure.elem.init_expr,
key.offset: 55,
key.offset: 49,
key.length: 1
}
]
@@ -223,21 +221,21 @@ extension SKFuelKind {
},
{
key.kind: source.lang.swift.decl.enumcase,
key.offset: 62,
key.offset: 56,
key.length: 12,
key.substructure: [
{
key.kind: source.lang.swift.decl.enumelement,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "CH4",
key.offset: 67,
key.offset: 61,
key.length: 7,
key.nameoffset: 67,
key.nameoffset: 61,
key.namelength: 3,
key.elements: [
{
key.kind: source.lang.swift.structure.elem.init_expr,
key.offset: 73,
key.offset: 67,
key.length: 1
}
]
@@ -246,21 +244,21 @@ extension SKFuelKind {
},
{
key.kind: source.lang.swift.decl.enumcase,
key.offset: 80,
key.offset: 74,
key.length: 15,
key.substructure: [
{
key.kind: source.lang.swift.decl.enumelement,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "C12H26",
key.offset: 85,
key.offset: 79,
key.length: 10,
key.nameoffset: 85,
key.nameoffset: 79,
key.namelength: 6,
key.elements: [
{
key.kind: source.lang.swift.structure.elem.init_expr,
key.offset: 94,
key.offset: 88,
key.length: 1
}
]
@@ -272,27 +270,27 @@ extension SKFuelKind {
{
key.kind: source.lang.swift.decl.extension,
key.name: "SKFuelKind",
key.offset: 98,
key.offset: 92,
key.length: 115,
key.nameoffset: 108,
key.nameoffset: 102,
key.namelength: 10,
key.bodyoffset: 120,
key.bodyoffset: 114,
key.bodylength: 92,
key.substructure: [
{
key.kind: source.lang.swift.decl.var.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "isCryogenic",
key.offset: 133,
key.offset: 127,
key.length: 31,
key.typename: "UInt32",
key.nameoffset: 137,
key.nameoffset: 131,
key.namelength: 11,
key.bodyoffset: 158,
key.bodyoffset: 152,
key.bodylength: 5,
key.attributes: [
{
key.offset: 126,
key.offset: 120,
key.length: 6,
key.attribute: source.decl.attribute.public
}
@@ -302,16 +300,16 @@ extension SKFuelKind {
key.kind: source.lang.swift.decl.var.instance,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "isNotCryogenic",
key.offset: 177,
key.offset: 171,
key.length: 34,
key.typename: "UInt32",
key.nameoffset: 181,
key.nameoffset: 175,
key.namelength: 14,
key.bodyoffset: 205,
key.bodyoffset: 199,
key.bodylength: 5,
key.attributes: [
{
key.offset: 170,
key.offset: 164,
key.length: 6,
key.attribute: source.decl.attribute.public
}

View File

@@ -1,5 +1,4 @@
public func doSomethingInHead(_ arg: Int32)
open class BaseInHead {
open func doIt(_ arg: Int32)
@@ -10,9 +9,6 @@ open class BaseInHead {
/// Awesome name.
open class SameName {
}
// random comment.
public protocol SameNameProtocol {
}
@@ -49,97 +45,92 @@ public protocol SameNameProtocol {
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 45,
key.offset: 44,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 50,
key.offset: 49,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 56,
key.offset: 55,
key.length: 10
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 74,
key.offset: 73,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 79,
key.offset: 78,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 84,
key.offset: 83,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 89,
key.offset: 88,
key.length: 1
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 91,
key.offset: 90,
key.length: 3
},
{
key.kind: source.lang.swift.syntaxtype.typeidentifier,
key.offset: 96,
key.offset: 95,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.doccomment,
key.offset: 106,
key.offset: 105,
key.length: 18
},
{
key.kind: source.lang.swift.syntaxtype.doccomment,
key.offset: 124,
key.offset: 123,
key.length: 26
},
{
key.kind: source.lang.swift.syntaxtype.doccomment,
key.offset: 150,
key.offset: 149,
key.length: 18
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 168,
key.offset: 167,
key.length: 4
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 173,
key.offset: 172,
key.length: 5
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 179,
key.offset: 178,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.comment,
key.offset: 193,
key.length: 19
},
{
key.kind: source.lang.swift.syntaxtype.attribute.builtin,
key.offset: 213,
key.offset: 191,
key.length: 6
},
{
key.kind: source.lang.swift.syntaxtype.keyword,
key.offset: 220,
key.offset: 198,
key.length: 8
},
{
key.kind: source.lang.swift.syntaxtype.identifier,
key.offset: 229,
key.offset: 207,
key.length: 16
}
]
@@ -152,7 +143,7 @@ public protocol SameNameProtocol {
},
{
key.kind: source.lang.swift.ref.struct,
key.offset: 96,
key.offset: 95,
key.length: 5,
key.is_system: 1
}
@@ -187,15 +178,15 @@ public protocol SameNameProtocol {
key.kind: source.lang.swift.decl.class,
key.accessibility: source.lang.swift.accessibility.open,
key.name: "BaseInHead",
key.offset: 50,
key.offset: 49,
key.length: 54,
key.nameoffset: 56,
key.nameoffset: 55,
key.namelength: 10,
key.bodyoffset: 68,
key.bodyoffset: 67,
key.bodylength: 35,
key.attributes: [
{
key.offset: 45,
key.offset: 44,
key.length: 4,
key.attribute: source.decl.attribute.open
}
@@ -205,13 +196,13 @@ public protocol SameNameProtocol {
key.kind: source.lang.swift.decl.function.method.instance,
key.accessibility: source.lang.swift.accessibility.open,
key.name: "doIt(_:)",
key.offset: 79,
key.offset: 78,
key.length: 23,
key.nameoffset: 84,
key.nameoffset: 83,
key.namelength: 18,
key.attributes: [
{
key.offset: 74,
key.offset: 73,
key.length: 4,
key.attribute: source.decl.attribute.open
}
@@ -220,7 +211,7 @@ public protocol SameNameProtocol {
{
key.kind: source.lang.swift.decl.var.parameter,
key.name: "arg",
key.offset: 89,
key.offset: 88,
key.length: 12,
key.typename: "Int32"
}
@@ -232,17 +223,17 @@ public protocol SameNameProtocol {
key.kind: source.lang.swift.decl.class,
key.accessibility: source.lang.swift.accessibility.open,
key.name: "SameName",
key.offset: 173,
key.offset: 172,
key.length: 18,
key.nameoffset: 179,
key.nameoffset: 178,
key.namelength: 8,
key.bodyoffset: 189,
key.bodyoffset: 188,
key.bodylength: 1,
key.docoffset: 106,
key.docoffset: 105,
key.doclength: 62,
key.attributes: [
{
key.offset: 168,
key.offset: 167,
key.length: 4,
key.attribute: source.decl.attribute.open
}
@@ -252,15 +243,15 @@ public protocol SameNameProtocol {
key.kind: source.lang.swift.decl.protocol,
key.accessibility: source.lang.swift.accessibility.public,
key.name: "SameNameProtocol",
key.offset: 220,
key.offset: 198,
key.length: 29,
key.nameoffset: 229,
key.nameoffset: 207,
key.namelength: 16,
key.bodyoffset: 247,
key.bodyoffset: 225,
key.bodylength: 1,
key.attributes: [
{
key.offset: 213,
key.offset: 191,
key.length: 6,
key.attribute: source.decl.attribute.public
}

View File

@@ -698,12 +698,6 @@ SkipDocumentationComments("skip-print-doc-comments",
llvm::cl::cat(Category),
llvm::cl::init(false));
static llvm::cl::opt<bool>
PrintRegularComments("print-regular-comments",
llvm::cl::desc("Print regular comments from clang module headers"),
llvm::cl::cat(Category),
llvm::cl::init(false));
static llvm::cl::opt<bool>
PrintOriginalSourceText("print-original-source",
llvm::cl::desc("print the original source text for applicable declarations"),
@@ -4599,7 +4593,6 @@ int main(int argc, char *argv[]) {
PrintOpts.PrintAccess = options::PrintAccess;
PrintOpts.AccessFilter = options::AccessFilter;
PrintOpts.PrintDocumentationComments = !options::SkipDocumentationComments;
PrintOpts.PrintRegularClangComments = options::PrintRegularComments;
PrintOpts.SkipPrivateStdlibDecls = options::SkipPrivateStdlibDecls;
PrintOpts.SkipUnsafeCXXMethods = options::SkipUnsafeCXXMethods;
PrintOpts.SkipUnavailable = options::SkipUnavailable;