// This is an input file for comment-to-{XML,Doxygen} conversion tests.
//
// Please keep this file in alphabetical order!
@objc public class A000 {}
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. A010. Bbb.
@objc public class A010_AttachToEntities {
// CHECK: {{.*}}DocCommentAsXML=[A010_AttachToEntitiesc:@M@comment_to_xml@objc(cs)A010_AttachToEntities@objc public class A010_AttachToEntitiesAaa. A010. Bbb.]
/// Aaa. init().
@objc public init() {}
// CHECK: {{.*}}DocCommentAsXML=[init()c:@M@comment_to_xml@objc(cs)A010_AttachToEntities(im)init@objc public init()Aaa. init().]
/// Aaa. subscript(i: Int).
@objc public subscript(i: Int) -> Int {
// CHECK: {{.*}}DocCommentAsXML=[subscript(_:)s:14comment_to_xml21A010_AttachToEntitiesCyS2icip@objc public subscript(i: Int) -> Int { get set }Aaa. subscript(i: Int).]
get {
// CHECK: {{.*}}DocCommentAsXML=none
return 0
}
set {}
// CHECK: {{.*}}DocCommentAsXML=none
}
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. v1.
@objc public var v1: Int = 0
// CHECK: {{.*}}DocCommentAsXML=[v1c:@M@comment_to_xml@objc(cs)A010_AttachToEntities(py)v1@objc public var v1: IntAaa. v1.]
/// Aaa. v2.
@objc public class var v2: Int { return 0 }
// CHECK: {{.*}}DocCommentAsXML=[v2c:@M@comment_to_xml@objc(cs)A010_AttachToEntities(cpy)v2@objc public class var v2: Int { get }Aaa. v2.]
// CHECK: {{.*}}DocCommentAsXML=none
}
/// Aaa. A011.
public struct A011_AttachToEntities {
}
// CHECK: {{.*}}DocCommentAsXML=[A011_AttachToEntitiess:14comment_to_xml21A011_AttachToEntitiesVpublic struct A011_AttachToEntitiesAaa. A011.]
/// Aaa. A012.
public enum A012_AttachToEntities {
case A
}
// CHECK: {{.*}}DocCommentAsXML=[A012_AttachToEntitiess:14comment_to_xml21A012_AttachToEntitiesOpublic enum A012_AttachToEntitiesAaa. A012.]
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. A013.
@objc public protocol A013_AttachToEntities {}
// CHECK: {{.*}}DocCommentAsXML=[A013_AttachToEntitiesc:@M@comment_to_xml@objc(pl)A013_AttachToEntities@objc public protocol A013_AttachToEntitiesAaa. A013.]
@objc public class ATXHeaders {
// CHECK: {{.*}}DocCommentAsXML=none
/// LEVEL ONE
/// =========
///
/// LEVEL TWO
/// ---------
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)ATXHeaders(im)f0@objc public func f0()]]>LEVEL ONE]]>]]>LEVEL TWO]]>]
}
@objc public class Attributes {
// CHECK: {{.*}}DocCommentAsXML=none
/// Here is an attribute:
///
/// ^[Attribute text](string: "attributed")
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)Attributes(im)f0@objc public func f0()Here is an attribute:Attribute text]
}
@objc public class AutomaticLink {
// CHECK: {{.*}}DocCommentAsXML=none
/// And now for a URL.
///
///
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)AutomaticLink(im)f0@objc public func f0()And now for a URL.http://developer.apple.com/swift/]
}
@objc public class BlockQuote {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa.
///
/// > Bbb.
///
/// > Ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)BlockQuote(im)f0@objc public func f0()Aaa.Bbb.Ccc.]
}
@objc public class Brief {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)Brief(im)f0@objc public func f0()Aaa.]
/// Aaa.
///
/// Bbb.
@objc public func f1() {}
// CHECK: {{.*}}DocCommentAsXML=[f1()c:@M@comment_to_xml@objc(cs)Brief(im)f1@objc public func f1()Aaa.Bbb.]
/// Aaa.
///
///> Bbb.
@objc public func f2() {}
// CHECK: {{.*}}DocCommentAsXML=[f2()c:@M@comment_to_xml@objc(cs)Brief(im)f2@objc public func f2()Aaa.Bbb.]
/// Aaa.
///
/// Bbb.
@objc public func f3() {}
// CHECK: {{.*}}DocCommentAsXML=[f3()c:@M@comment_to_xml@objc(cs)Brief(im)f3@objc public func f3()Aaa.Bbb.]
}
@objc public class ClosingComments {
// CHECK: {{.*}}DocCommentAsXML=none
/// Some comment. */
@objc public func closingComment() {}
// CHECK: DocCommentAsXML=[closingComment()c:@M@comment_to_xml@objc(cs)ClosingComments(im)closingComment@objc public func closingComment()Some comment. */]
}
@objc public class ClosureContainer {
/// Partially applies a binary operator.
///
/// - Parameter a: The left-hand side to partially apply.
/// - Parameter combine: A binary operator.
/// - Parameter lhs: The left-hand side of the operator
/// - Parameter rhs: The right-hand side of the operator
/// - Returns: A result.
/// - Throws: Nothing.
@objc public func closureParameterExplodedExploded(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int) {}
// CHECK: DocCommentAsXML=[closureParameterExplodedExploded(a:combine:)c:@M@comment_to_xml@objc(cs)ClosureContainer(im)closureParameterExplodedExplodedWithA:combine:@objc public func closureParameterExplodedExploded(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int)Partially applies a binary operator.ainThe left-hand side to partially apply.combineinA binary operator.lhsinThe left-hand side of the operatorrhsinThe right-hand side of the operatorA result.Nothing.]
/// Partially applies a binary operator.
///
/// - Parameters:
/// - a: The left-hand side to partially apply.
/// - combine: A binary operator.
/// - Parameter lhs: The left-hand side of the operator
/// - Parameter rhs: The right-hand side of the operator
/// - Returns: A result.
/// - Throws: Nothing.
@objc public func closureParameterOutlineExploded(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int) {}
// CHECK: DocCommentAsXML=[closureParameterOutlineExploded(a:combine:)c:@M@comment_to_xml@objc(cs)ClosureContainer(im)closureParameterOutlineExplodedWithA:combine:@objc public func closureParameterOutlineExploded(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int)Partially applies a binary operator.ainThe left-hand side to partially apply.combineinA binary operator.lhsinThe left-hand side of the operatorrhsinThe right-hand side of the operatorA result.Nothing.]
/// Partially applies a binary operator.
///
/// - Parameters:
/// - a: The left-hand side to partially apply.
/// - combine: A binary operator.
/// - Parameters:
/// - lhs: The left-hand side of the operator
/// - rhs: The right-hand side of the operator
/// - Returns: A result.
/// - Throws: Nothing.
@objc public func closureParameterOutlineOutline(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int) {}
// CHECK: DocCommentAsXML=[closureParameterOutlineOutline(a:combine:)c:@M@comment_to_xml@objc(cs)ClosureContainer(im)closureParameterOutlineOutlineWithA:combine:@objc public func closureParameterOutlineOutline(a: Int, combine: (_ lhs: Int, _ rhs: Int) -> Int)Partially applies a binary operator.ainThe left-hand side to partially apply.combineinA binary operator.lhsinThe left-hand side of the operatorrhsinThe right-hand side of the operatorA result.Nothing.]
}
@objc public class CodeBlock {
// CHECK: {{.*}}DocCommentAsXML=none
/// This is how you use this code.
///
/// f0() // WOW!
/// f0() // WOW!
/// f0() // WOW!
@objc public func f0() {}
// CHECK: DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)CodeBlock(im)f0@objc public func f0()This is how you use this code.]
}
@objc public class Emphasis {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa *bbb* ccc.
/// Aaa _bbb_ ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)Emphasis(im)f0@objc public func f0()Aaa bbb ccc. Aaa bbb ccc.]
}
@objc public class EmptyComments {
// CHECK: {{.*}}DocCommentAsXML=none
///
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)EmptyComments(im)f0@objc public func f0()]
/// Aaa.
@objc public func f1() {}
// CHECK: {{.*}}DocCommentAsXML=[f1()c:@M@comment_to_xml@objc(cs)EmptyComments(im)f1@objc public func f1()Aaa.]
/** */
@objc public func f2() {}
// CHECK: {{.*}}DocCommentAsXML=[f2()c:@M@comment_to_xml@objc(cs)EmptyComments(im)f2@objc public func f2()]
/**
*/
@objc public func f3() {}
// CHECK: {{.*}}DocCommentAsXML=[f3()c:@M@comment_to_xml@objc(cs)EmptyComments(im)f3@objc public func f3()]
/**
* Aaa.
*/
@objc public func f4() {}
// CHECK: {{.*}}DocCommentAsXML=[f4()c:@M@comment_to_xml@objc(cs)EmptyComments(im)f4@objc public func f4()Aaa.]
}
@objc public class Footnotes {
// CHECK: {{.*}}DocCommentAsXML=none
/// Has some footnotes.
///
/// Footnotes aren't handled by swiftMarkup yet[^footnote], but they may in the future.
///
/// [^footnote]: Footnotes aren't parsed by default in swift-cmark, and swiftMarkup doesn't
/// enable the feature.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)Footnotes(im)f0@objc public func f0()Has some footnotes.Footnotes aren’t handled by swiftMarkup yet[^footnote], but they may in the future.[^footnote]: Footnotes aren’t parsed by default in swift-cmark, and swiftMarkup doesn’t enable the feature.]
}
@objc public class HasThrowingFunction {
// CHECK: {{.*}}DocCommentAsXML=none
/// Might throw something.
///
/// - parameter x: A number
/// - throws: An error if `x == 0`
@objc public func f1(_ x: Int) /*throws*/ {}
// CHECK: {{.*}}DocCommentAsXML=[f1(_:)c:@M@comment_to_xml@objc(cs)HasThrowingFunction(im)f1:@objc public func f1(_ x: Int)Might throw something.xinA numberAn error if x == 0]
}
@objc public class HorizontalRules {
// CHECK: {{.*}}DocCommentAsXML=none
/// Briefly.
///
/// ------------------------------------
///
/// The end.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)HorizontalRules(im)f0@objc public func f0()Briefly.]]>The end.]
}
@objc public class ImplicitNameLink {
// CHECK: {{.*}}DocCommentAsXML=none
/// [Apple][]
///
/// [Apple]: https://www.apple.com/
@objc public func f0() {}
}
@objc public class IndentedBlockComment {
// CHECK: {{.*}}DocCommentAsXML=none
/**
Brief.
First paragraph line.
Second paragraph line.
Now for a code sample:
var x = 1
// var y = 2
var z = 3
*/
@objc public func f1() {}
// CHECK: DocCommentAsXML=[f1()c:@M@comment_to_xml@objc(cs)IndentedBlockComment(im)f1@objc public func f1()Brief.First paragraph line. Second paragraph line.Now for a code sample:]
/**
Hugely indented brief.
First paragraph line.
Second paragraph line.
Now for a code sample:
var x = 1
// var y = 2
var z = 3
*/
@objc public func f2() {}
// CHECK: {{.*}}DocCommentAsXML=[f2()c:@M@comment_to_xml@objc(cs)IndentedBlockComment(im)f2@objc public func f2()Hugely indented brief.First paragraph line. Second paragraph line.Now for a code sample:]
}
@objc public class InlineCode {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa `bbb` ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)InlineCode(im)f0@objc public func f0()Aaa bbb ccc.]
}
@objc public class InlineLink {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa [bbb](/path/to/something) ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)InlineLink(im)f0@objc public func f0()Aaa bbb ccc.]
}
@objc public class MultiLineBrief {
// CHECK: {{.*}}DocCommentAsXML=none
/// Brief first line.
/// Brief after softbreak.
///
/// Some paragraph text.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)MultiLineBrief(im)f0@objc public func f0()Brief first line. Brief after softbreak.Some paragraph text.]
}
@objc public class OrderedList {
// CHECK: {{.*}}DocCommentAsXML=none
/// 1. Aaa.
///
/// 2. Bbb.
/// Ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)OrderedList(im)f0@objc public func f0()- Aaa.
- Bbb. Ccc.
]
}
/// - parameter x: A number
@objc public class ParamAndReturns {
// CHECK: {{.*}}DocCommentAsXML=[ParamAndReturnsc:@M@comment_to_xml@objc(cs)ParamAndReturns@objc public class ParamAndReturnsxinA number]
/// Aaa. f0.
///
/// - parameter first: Bbb.
///
/// - parameter second: Ccc. Ddd.
/// Eee.
@objc public func f0(_ first: Int, second: Double) {}
// CHECK: {{.*}}DocCommentAsXML=[f0(_:second:)c:@M@comment_to_xml@objc(cs)ParamAndReturns(im)f0:second:@objc public func f0(_ first: Int, second: Double)Aaa. f0.firstinBbb.secondinCcc. Ddd. Eee.]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. f1.
///
/// - parameter first: Bbb.
///
/// - returns: Ccc.
/// Ddd.
@objc public func f1(_ first: Int) {}
// CHECK: {{.*}}DocCommentAsXML=[f1(_:)c:@M@comment_to_xml@objc(cs)ParamAndReturns(im)f1:@objc public func f1(_ first: Int)Aaa. f1.firstinBbb.Ccc. Ddd.]
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. f2.
///
/// - parameter first:
///
/// - parameter second: Aaa.
///
/// - parameter third:
/// Bbb.
@objc public func f2(_ first: Int, second: Double, third: Float) {}
// CHECK: {{.*}}DocCommentAsXML=[f2(_:second:third:)c:@M@comment_to_xml@objc(cs)ParamAndReturns(im)f2:second:third:@objc public func f2(_ first: Int, second: Double, third: Float)Aaa. f2.firstinsecondinAaa.thirdin Bbb.]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. f3.
///
/// - parameter first: Bbb.
/// - parameter second: Ccc.
/// - parameter third: Ddd.
@objc public func f3(_ first: Int, second: Double, third: Float) {}
// CHECK: {{.*}}DocCommentAsXML=[f3(_:second:third:)c:@M@comment_to_xml@objc(cs)ParamAndReturns(im)f3:second:third:@objc public func f3(_ first: Int, second: Double, third: Float)Aaa. f3.firstinBbb.secondinCcc.thirdinDdd.]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa. f4.
///
/// - returns: Ccc.
/// Ddd.
///
/// - returns: Eee.
/// Fff.
@objc public func f4() {}
// CHECK: {{.*}}DocCommentAsXML=[f4()c:@M@comment_to_xml@objc(cs)ParamAndReturns(im)f4@objc public func f4()Aaa. f4.Eee. Fff.]
}
@objc public class ParameterOutline{
// CHECK: {{.*}}DocCommentAsXML=none
/// - Parameters:
/// - x: A number
/// - y: A number
///
/// - PARAMETERS:
/// - z: A number
@objc public func f0(_ x: Int, y: Int, z: Int) {}
// CHECK: {{.*}}DocCommentAsXML=[f0(_:y:z:)c:@M@comment_to_xml@objc(cs)ParameterOutline(im)f0:y:z:@objc public func f0(_ x: Int, y: Int, z: Int)xinA numberyinA numberzinA number]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
}
@objc public class ParameterOutlineMiddle {
// CHECK: {{.*}}DocCommentAsXML=none
/// - This line should remain.
/// - Parameters:
/// - x: A number
/// - y: A number
/// - This line should also remain.
/// - parameter z: A number
@objc public func f0(_ x: Int, y: Int, z: Int) {}
// CHECK: {{.*}}DocCommentAsXML=[f0(_:y:z:)c:@M@comment_to_xml@objc(cs)ParameterOutlineMiddle(im)f0:y:z:@objc public func f0(_ x: Int, y: Int, z: Int)xinA numberyinA numberzinA number- This line should remain.
- This line should also remain.
]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
}
@objc public class ReferenceLink {
// CHECK: {{.*}}DocCommentAsXML=none
/// This is [a reference link] [1].
///
/// [1]: http://developer.apple.com/
}
@objc public class Returns {
// CHECK: {{.*}}DocCommentAsXML=none
/// - returns: A number
@objc public func f0() -> Int {
return 0
}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)Returns(im)f0@objc public func f0() -> IntA number]
}
@objc public class SeparateParameters {
// CHECK: {{.*}}DocCommentAsXML=none
/// - Parameter x: A number
@objc public func f0(_ x: Int, y: Int) {}
// CHECK: DocCommentAsXML=[f0(_:y:)c:@M@comment_to_xml@objc(cs)SeparateParameters(im)f0:y:@objc public func f0(_ x: Int, y: Int)xinA number]
// CHECK: {{.*}}DocCommentAsXML=none
// CHECK: {{.*}}DocCommentAsXML=none
}
@objc public class SetextHeaders {
// CHECK: {{.*}}DocCommentAsXML=none
/// # LEVEL ONE
///
/// ## LEVEL TWO
///
/// ### LEVEL THREE
///
/// #### LEVEL FOUR
///
/// ##### LEVEL FIVE
///
/// ##### LEVEL SIX
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)SetextHeaders(im)f0@objc public func f0()]]>LEVEL ONE]]>]]>LEVEL TWO]]>]]>LEVEL THREE]]>]]>LEVEL FOUR]]>]]>LEVEL FIVE]]>]]>LEVEL SIX]]>]
}
@objc public class StrongEmphasis {
// CHECK: {{.*}}DocCommentAsXML=none
/// Aaa **bbb** ccc.
/// Aaa __bbb__ ccc.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)StrongEmphasis(im)f0@objc public func f0()Aaa bbb ccc. Aaa bbb ccc.]
}
@objc public class UnorderedList {
// CHECK: {{.*}}DocCommentAsXML=none
/// * Aaa.
///
/// * Bbb.
/// Ccc.
///
/// - Ddd.
/// - Eee.
/// - Fff.
@objc public func f0() {}
// CHECK: {{.*}}DocCommentAsXML=[f0()c:@M@comment_to_xml@objc(cs)UnorderedList(im)f0@objc public func f0()- Aaa.
- Bbb. Ccc.
- Ddd.
- Eee.
- Fff.
]
}
/// Brief.
///
/// ```
/// thisIsASwiftCodeExample()
/// ```
public func codeListingWithDefaultLanguage() {}
// CHECK: DocCommentAsXML=[codeListingWithDefaultLanguage()s:14comment_to_xml30codeListingWithDefaultLanguageyyFpublic func codeListingWithDefaultLanguage()Brief.] CommentXMLValid
/// Brief.
///
/// ```c++
/// Something::Something::create();
/// ```
public func codeListingWithOtherLanguage() {}
// CHECK: DocCommentAsXML=[codeListingWithOtherLanguage()s:14comment_to_xml28codeListingWithOtherLanguageyyFpublic func codeListingWithOtherLanguage()Brief.]
/// Brief.
///
/// - LocalizationKey: ABC
public func localizationKeyShouldNotAppearInDocComments() {}
// CHECK: DocCommentAsXML=[localizationKeyShouldNotAppearInDocComments()s:14comment_to_xml43localizationKeyShouldNotAppearInDocCommentsyyFpublic func localizationKeyShouldNotAppearInDocComments()Brief.]
/// - LocalizationKey: ABC
public func localizationKeyShouldNotAppearInDocComments2() {}
// CHECK: DocCommentAsXML=[localizationKeyShouldNotAppearInDocComments2()s:14comment_to_xml44localizationKeyShouldNotAppearInDocComments2yyFpublic func localizationKeyShouldNotAppearInDocComments2()]
/// Brief.
///
/// - Tag:
/// - Tag:
/// - Tag: Tag_A
/// - Tag: Tag B
/// - Tag: Dedupe tag
/// - Tag: Dedupe tag
///
/// Intentional break
///
/// - TAG: TAG_C
public func tags() {}
// CHECK: DocCommentAsXML=[tags()s:14comment_to_xml4tagsyyFpublic func tags()Brief.Tag_ATag BDedupe tagTAG_CIntentional break]
#sourceLocation(file: "custom.swuft", line: 20)
/// Oooh, custom!
public func customLocation() {}
// CHECK: DocCommentAsXML=[customLocation()s:14comment_to_xml14customLocationyyFpublic func customLocation()Oooh, custom!]
#sourceLocation() // reset