[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. /// (e.g. the overridden method in the superclass) if such comment is found.
bool PrintDocumentationComments = false; 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 /// When true, printing interface from a source file will print the original
/// source text for applicable declarations, in order to preserve the /// source text for applicable declarations, in order to preserve the
/// formatting. /// formatting.
@@ -645,7 +642,6 @@ struct PrintOptions {
result.TypeDefinitions = true; result.TypeDefinitions = true;
result.VarInitializers = true; result.VarInitializers = true;
result.PrintDocumentationComments = true; result.PrintDocumentationComments = true;
result.PrintRegularClangComments = true;
result.PrintLongAttrsOnSeparateLines = true; result.PrintLongAttrsOnSeparateLines = true;
result.AlwaysTryPrintParameterLabels = true; result.AlwaysTryPrintParameterLabels = true;
return result; return result;

View File

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

View File

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

View File

@@ -44,108 +44,6 @@
using namespace swift; 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 * static const clang::Module *
getUnderlyingClangModuleForImport(ImportDecl *Import) { getUnderlyingClangModuleForImport(ImportDecl *Import) {
if (auto *ClangMod = Import->getClangModule()) if (auto *ClangMod = Import->getClangModule())
@@ -761,14 +659,8 @@ void swift::ide::printModuleInterface(
if (GroupNames.empty()) if (GroupNames.empty())
std::stable_sort(SwiftDecls.begin(), SwiftDecls.end(), compareSwiftDecls); std::stable_sort(SwiftDecls.begin(), SwiftDecls.end(), compareSwiftDecls);
ASTPrinter *PrinterToUse = &Printer;
ClangCommentPrinter RegularCommentPrinter(Printer, Importer);
if (Options.PrintRegularClangComments)
PrinterToUse = &RegularCommentPrinter;
auto PrintDecl = [&](Decl *D) { auto PrintDecl = [&](Decl *D) {
return printModuleInterfaceDecl(D, *PrinterToUse, AdjustedOptions, return printModuleInterfaceDecl(D, Printer, AdjustedOptions,
PrintSynthesizedExtensions); PrintSynthesizedExtensions);
}; };
@@ -808,7 +700,7 @@ void swift::ide::printModuleInterface(
// also print the decls from any underscored Swift cross-import overlays it // also print the decls from any underscored Swift cross-import overlays it
// is the underlying module of, transitively. // is the underlying module of, transitively.
if (GroupNames.empty()) { if (GroupNames.empty()) {
printCrossImportOverlays(TargetMod, SwiftContext, *PrinterToUse, printCrossImportOverlays(TargetMod, SwiftContext, Printer,
AdjustedOptions, PrintSynthesizedExtensions); AdjustedOptions, PrintSynthesizedExtensions);
} }
} }
@@ -911,18 +803,11 @@ void swift::ide::printHeaderInterface(
getEffectiveClangNode(RHS).getLocation()); getEffectiveClangNode(RHS).getLocation());
}); });
ASTPrinter *PrinterToUse = &Printer;
ClangCommentPrinter RegularCommentPrinter(Printer, Importer);
if (Options.PrintRegularClangComments)
PrinterToUse = &RegularCommentPrinter;
for (auto *D : ClangDecls) { for (auto *D : ClangDecls) {
// Even though the corresponding clang decl should be top-level, its // 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 // equivalent Swift decl may not be. E.g. a top-level function may be mapped
// to a property accessor in Swift. // to a property accessor in Swift.
D = getTopLevelDecl(D); D = getTopLevelDecl(D);
ASTPrinter &Printer = *PrinterToUse;
if (!AdjustedOptions.shouldPrint(D)) { if (!AdjustedOptions.shouldPrint(D)) {
Printer.callAvoidPrintDeclPost(D); Printer.callAvoidPrintDeclPost(D);
continue; 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( void swift::ide::printSymbolicSwiftClangModuleInterface(
ModuleDecl *M, ASTPrinter &Printer, const clang::Module *clangModule) { ModuleDecl *M, ASTPrinter &Printer, const clang::Module *clangModule) {
std::string headerComment; std::string headerComment;
@@ -1154,7 +830,6 @@ void swift::ide::printSymbolicSwiftClangModuleInterface(
auto popts = auto popts =
PrintOptions::printModuleInterface(/*printFullConvention=*/false); PrintOptions::printModuleInterface(/*printFullConvention=*/false);
popts.PrintDocumentationComments = false; popts.PrintDocumentationComments = false;
popts.PrintRegularClangComments = false;
popts.SkipInlineCXXNamespace = true; popts.SkipInlineCXXNamespace = true;
auto &SwiftContext = M->getTopLevelModule()->getASTContext(); auto &SwiftContext = M->getTopLevelModule()->getASTContext();

View File

@@ -1,8 +1,8 @@
// RUN: %empty-directory(%t) // 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 // REQUIRES: objc_interop

View File

@@ -1,8 +1,8 @@
// RUN: %empty-directory(%t) // 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-5: func jumpTo(x: Double, y: Double, z: Double)
// CHECK-SWIFT-4: 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: %target-swift-frontend -typecheck %s -import-objc-header %S/Inputs/enum-error.h -DERRORS -verify
// RUN: echo '#include "enum-error.h"' > %t.m // 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: %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 // RUN: %FileCheck -check-prefix=HEADER-NO-PRIVATE %s < %t2.txt
import Foundation 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: %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: 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 // RUN: %FileCheck -check-prefix=HEADER %s < %t.txt
// rdar://59431058 // rdar://59431058
@@ -15,7 +15,6 @@
// HEADER: func addLimb(_ limb: (any Trunk.Branch)!) // HEADER: func addLimb(_ limb: (any Trunk.Branch)!)
// HEADER: func addLimbs(_ limbs: [any Trunk.Branch]!) // HEADER: func addLimbs(_ limbs: [any Trunk.Branch]!)
// HEADER: } // HEADER: }
// HEADER: // NS_SWIFT_NAME(Trunk.Branch)
// HEADER: protocol Branch { // HEADER: protocol Branch {
// HEADER: func flower() // HEADER: func flower()
// HEADER: } // HEADER: }

View File

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

View File

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

View File

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

View File

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

View File

@@ -17,7 +17,7 @@
// CHECK_NSARRAY: class NSMutableArray : NSArray // CHECK_NSARRAY: class NSMutableArray : NSArray
// CHECK_NSARRAY: func setArray(_ otherArray: [Any]) // 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 // RUN: %FileCheck -input-file %t/Foundation.NSKeyValueCoding.printed.txt -check-prefix=CHECK2 %s
// CHECK2: extension NSObject // CHECK2: extension NSObject

View File

@@ -3,10 +3,10 @@
// RUN: %empty-directory(%t) // 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: 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: %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 // 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 // REQUIRES: objc_interop
// RUN: echo '#include "header-to-print.h"' > %t.m // 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: 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: %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: 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: 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: 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: 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: 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 // 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. // 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 // 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: echo '#include "header-to-print-availability.h"' > %t.m
// RUN: cp %S/Inputs/print_clang_header/header-to-print-availability.h %t/ // 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: diff -u %S/Inputs/print_clang_header/header-to-print-availability.h.printed.txt %t.txt
// RUN: echo '@import HeaderToPrintAvailability;' > %t.module.m // RUN: echo '@import HeaderToPrintAvailability;' > %t.module.m
// Test header interface printing from a clang module. // 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 // 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: echo '#include "header-to-print.h"' > %t.i386.m
// RUN: %empty-directory(%t) // RUN: %empty-directory(%t)
// RUN: %build-clang-importer-objc-overlays // 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 // 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: %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 // RUN: diff -u <(tail -n +9 %s) %t.txt
// REQUIRES: objc_interop // REQUIRES: objc_interop
@@ -8,10 +8,7 @@
// EXPECTED OUTPUT STARTS BELOW THIS LINE. // EXPECTED OUTPUT STARTS BELOW THIS LINE.
@_exported import Foundation @_exported import Foundation
class Test : NSObject { class Test : NSObject {
// "Factory methods" that we'd rather have as initializers.
@available(*, unavailable, message: "superseded by import of -[NSObject init]") @available(*, unavailable, message: "superseded by import of -[NSObject init]")
convenience init() convenience init()
@available(*, unavailable, renamed: "init()", message: "Not available in Swift") @available(*, unavailable, renamed: "init()", message: "Not available in Swift")
@@ -19,23 +16,18 @@ class Test : NSObject {
convenience init(dummyParam: ()) convenience init(dummyParam: ())
@available(*, unavailable, renamed: "init(dummyParam:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(dummyParam:)", message: "Not available in Swift")
class func b() -> Self class func b() -> Self
convenience init(cc x: Any) convenience init(cc x: Any)
@available(*, unavailable, renamed: "init(cc:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(cc:)", message: "Not available in Swift")
class func c(_ x: Any) -> Self class func c(_ x: Any) -> Self
convenience init(_ x: Any) convenience init(_ x: Any)
@available(*, unavailable, renamed: "init(_:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(_:)", message: "Not available in Swift")
class func d(_ x: Any) -> Self class func d(_ x: Any) -> Self
convenience init(aa a: Any, _ b: Any, cc c: Any) convenience init(aa a: Any, _ b: Any, cc c: Any)
@available(*, unavailable, renamed: "init(aa:_:cc:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(aa:_:cc:)", message: "Not available in Swift")
class func e(_ a: Any, e b: Any, e c: Any) -> Self class func e(_ a: Any, e b: Any, e c: Any) -> Self
/*not inherited*/ init(fixedType: ()) /*not inherited*/ init(fixedType: ())
@available(*, unavailable, renamed: "init(fixedType:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(fixedType:)", message: "Not available in Swift")
class func f() -> Test class func f() -> Test
// Would-be initializers.
class func zz() -> Self class func zz() -> Self
@available(swift, obsoleted: 3, renamed: "zz()") @available(swift, obsoleted: 3, renamed: "zz()")
class func testZ() -> Self class func testZ() -> Self
@@ -45,12 +37,9 @@ class Test : NSObject {
class func xx(_ x: Any, bb xx: Any) -> Self class func xx(_ x: Any, bb xx: Any) -> Self
@available(*, unavailable, renamed: "xx(_:bb:)", message: "Not available in Swift") @available(*, unavailable, renamed: "xx(_:bb:)", message: "Not available in Swift")
class func testX(_ x: Any, xx: Any) -> Self class func testX(_ x: Any, xx: Any) -> Self
init() init()
} }
class TestError : NSObject { class TestError : NSObject {
// Factory methods with NSError.
convenience init(error: ()) throws convenience init(error: ()) throws
@available(*, unavailable, renamed: "init(error:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(error:)", message: "Not available in Swift")
class func err1() throws -> Self class func err1() throws -> Self
@@ -63,7 +52,6 @@ class TestError : NSObject {
convenience init(error: (), block: @escaping () -> Void) throws convenience init(error: (), block: @escaping () -> Void) throws
@available(*, unavailable, renamed: "init(error:block:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(error:block:)", message: "Not available in Swift")
class func err4(callback block: @escaping () -> Void) throws -> Self class func err4(callback block: @escaping () -> Void) throws -> Self
convenience init(aa x: Any?) throws convenience init(aa x: Any?) throws
@available(*, unavailable, renamed: "init(aa:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(aa:)", message: "Not available in Swift")
class func err5(_ x: Any?) throws -> Self class func err5(_ x: Any?) throws -> Self
@@ -73,8 +61,6 @@ class TestError : NSObject {
convenience init(block: @escaping () -> Void) throws convenience init(block: @escaping () -> Void) throws
@available(*, unavailable, renamed: "init(block:)", message: "Not available in Swift") @available(*, unavailable, renamed: "init(block:)", message: "Not available in Swift")
class func err7(callback block: @escaping () -> Void) throws -> Self class func err7(callback block: @escaping () -> Void) throws -> Self
// Would-be initializers.
class func ww(_ x: Any?) throws -> Self class func ww(_ x: Any?) throws -> Self
@available(swift, obsoleted: 3, renamed: "ww(_:)") @available(swift, obsoleted: 3, renamed: "ww(_:)")
class func testW(_ x: Any?) throws -> Self class func testW(_ x: Any?) throws -> Self
@@ -89,7 +75,6 @@ class TestError : NSObject {
class func testV2() throws -> Self class func testV2() throws -> Self
init() init()
} }
class TestSub : Test { class TestSub : Test {
@available(*, unavailable, message: "superseded by import of -[NSObject init]") @available(*, unavailable, message: "superseded by import of -[NSObject init]")
convenience init() convenience init()
@@ -99,7 +84,6 @@ class TestSub : Test {
convenience init(aa a: Any, _ b: Any, cc c: Any) convenience init(aa a: Any, _ b: Any, cc c: Any)
init() init()
} }
class TestErrorSub : TestError { class TestErrorSub : TestError {
convenience init(error: ()) throws convenience init(error: ()) throws
convenience init(aa x: Any?, 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 // 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.name: "ASwiftType"
// CHECKA: key.modulename: "LibA" // CHECKA: key.modulename: "LibA"
// CHECKA: key.decl_lang: source.lang.swift // CHECKA: key.decl_lang: source.lang.swift
@@ -60,7 +60,7 @@ framework module LibA {
@interface AObjcType @interface AObjcType
@end @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.name: "AObjcType"
// CHECKAOBJ: key.line: [[@LINE-5]] // CHECKAOBJ: key.line: [[@LINE-5]]
// CHECKAOBJ: key.column: 12 // CHECKAOBJ: key.column: 12
@@ -72,7 +72,7 @@ framework module LibA {
@interface ASubType @interface ASubType
@end @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.name: "ASubType"
// CHECKASUB: key.line: [[@LINE-5]] // CHECKASUB: key.line: [[@LINE-5]]
// CHECKASUB: key.column: 12 // CHECKASUB: key.column: 12
@@ -84,7 +84,7 @@ framework module LibA {
public class BType {} public class BType {}
// LibB has source info // 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.name: "BType"
// CHECKB: key.line: [[@LINE-5]] // CHECKB: key.line: [[@LINE-5]]
// CHECKB: key.column: 14 // CHECKB: key.column: 14
@@ -96,7 +96,7 @@ public class BType {}
public class CType {} public class CType {}
// LibC has no source info // 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.name: "CType"
// CHECKC: key.modulename: "LibC" // CHECKC: key.modulename: "LibC"
// CHECKC: key.decl_lang: source.lang.swift // CHECKC: key.decl_lang: source.lang.swift
@@ -105,7 +105,7 @@ public class CType {}
@interface DType @interface DType
@end @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.name: "DType"
// CHECKD: key.line: [[@LINE-5]] // CHECKD: key.line: [[@LINE-5]]
// CHECKD: key.column: 12 // CHECKD: key.column: 12

View File

@@ -11,14 +11,14 @@ import Foo
// RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- \ // RUN: %sourcekitd-test -req=interface-gen-open -module Foo -- \
// RUN: -F %S/../Inputs/libIDE-mock-sdk \ // RUN: -F %S/../Inputs/libIDE-mock-sdk \
// RUN: -target %target-triple %clang-importer-sdk-nosource -I %t \ // 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=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49:15 \
// RUN: == -async -dont-print-request -req=cursor -pos=60:15 \ // RUN: == -async -dont-print-request -req=cursor -pos=49: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 | %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
// 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: %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: -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' // 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 \ // 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: %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: -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' // 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) // 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 // 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' // 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: %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: -target %target-triple %clang-importer-sdk-nosource -I %t \

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

@@ -698,12 +698,6 @@ SkipDocumentationComments("skip-print-doc-comments",
llvm::cl::cat(Category), llvm::cl::cat(Category),
llvm::cl::init(false)); 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> static llvm::cl::opt<bool>
PrintOriginalSourceText("print-original-source", PrintOriginalSourceText("print-original-source",
llvm::cl::desc("print the original source text for applicable declarations"), 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.PrintAccess = options::PrintAccess;
PrintOpts.AccessFilter = options::AccessFilter; PrintOpts.AccessFilter = options::AccessFilter;
PrintOpts.PrintDocumentationComments = !options::SkipDocumentationComments; PrintOpts.PrintDocumentationComments = !options::SkipDocumentationComments;
PrintOpts.PrintRegularClangComments = options::PrintRegularComments;
PrintOpts.SkipPrivateStdlibDecls = options::SkipPrivateStdlibDecls; PrintOpts.SkipPrivateStdlibDecls = options::SkipPrivateStdlibDecls;
PrintOpts.SkipUnsafeCXXMethods = options::SkipUnsafeCXXMethods; PrintOpts.SkipUnsafeCXXMethods = options::SkipUnsafeCXXMethods;
PrintOpts.SkipUnavailable = options::SkipUnavailable; PrintOpts.SkipUnavailable = options::SkipUnavailable;