blob: 467c392ccd060cdf719268d108776f547fdc1ea9 [file] [log] [blame]
<decl:Import>@_exported import <ref:module>Foo</ref>.<ref:module>FooSub</ref></decl>
<decl:Import>@_exported import <ref:module>FooHelper</ref></decl>
<decl:Struct>/// Aaa. FooEnum1. Bbb.
struct <loc>FooEnum1</loc> : <ref:Protocol>RawRepresentable</ref>, <ref:Protocol>Equatable</ref> {
<decl:Constructor><loc>init(<decl:Param>_ rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Constructor><loc>init(<decl:Param>rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Var>var <loc>rawValue</loc>: <ref:Struct>UInt32</ref></decl>
}</decl>
<decl:Var>/// Aaa. FooEnum1X. Bbb.
var <loc>FooEnum1X</loc>: <ref:Struct>FooEnum1</ref> { get }</decl>
<decl:Struct>struct <loc>FooEnum2</loc> : <ref:Protocol>RawRepresentable</ref>, <ref:Protocol>Equatable</ref> {
<decl:Constructor><loc>init(<decl:Param>_ rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Constructor><loc>init(<decl:Param>rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Var>var <loc>rawValue</loc>: <ref:Struct>UInt32</ref></decl>
}</decl>
<decl:Var>var <loc>FooEnum2X</loc>: <ref:Struct>FooEnum2</ref> { get }</decl>
<decl:Var>var <loc>FooEnum2Y</loc>: <ref:Struct>FooEnum2</ref> { get }</decl>
<decl:Struct>struct <loc>FooEnum3</loc> : <ref:Protocol>RawRepresentable</ref>, <ref:Protocol>Equatable</ref> {
<decl:Constructor><loc>init(<decl:Param>_ rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Constructor><loc>init(<decl:Param>rawValue: <ref:Struct>UInt32</ref></decl>)</loc></decl>
<decl:Var>var <loc>rawValue</loc>: <ref:Struct>UInt32</ref></decl>
}</decl>
<decl:Var>var <loc>FooEnum3X</loc>: <ref:Struct>FooEnum3</ref> { get }</decl>
<decl:Var>var <loc>FooEnum3Y</loc>: <ref:Struct>FooEnum3</ref> { get }</decl>
<decl:Enum>/// Aaa. FooComparisonResult. Bbb.
enum <loc>FooComparisonResult</loc> : <ref:Struct>Int</ref> {
<decl:Constructor><loc>init?(<decl:Param>rawValue: <ref:Struct>Int</ref></decl>)</loc></decl>
<decl:Var>var <loc>rawValue</loc>: <ref:Struct>Int</ref> { get }</decl>
<decl:EnumElement>case <loc>orderedAscending</loc></decl>
<decl:EnumElement>case <loc>orderedSame</loc></decl>
<decl:EnumElement>case <loc>orderedDescending</loc></decl>
}</decl>
<decl:Struct>/// Aaa. FooRuncingOptions. Bbb.
struct <loc>FooRuncingOptions</loc> : <ref:Protocol>OptionSet</ref> {
<decl:Constructor><loc>init(<decl:Param>rawValue: <ref:Struct>Int</ref></decl>)</loc></decl>
<decl:Var>let <loc>rawValue</loc>: <ref:Struct>Int</ref></decl>
<decl:Var>static var <loc>enableMince</loc>: <ref:Struct>FooRuncingOptions</ref> { get }</decl>
<decl:Var>static var <loc>enableQuince</loc>: <ref:Struct>FooRuncingOptions</ref> { get }</decl>
}</decl>
<decl:Struct>struct <loc>FooStruct1</loc> {
<decl:Var>var <loc>x</loc>: <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>y</loc>: <ref:Struct>Double</ref></decl>
<decl:Constructor><loc>init()</loc></decl>
<decl:Constructor><loc>init(<decl:Param>x: <ref:Struct>Int32</ref></decl>, <decl:Param>y: <ref:Struct>Double</ref></decl>)</loc></decl>
}</decl>
<decl:TypeAlias>typealias <loc>FooStruct1Pointer</loc> = <ref:Struct>UnsafeMutablePointer</ref><<ref:Struct>FooStruct1</ref>></decl>
<decl:Struct>struct <loc>FooStruct2</loc> {
<decl:Var>var <loc>x</loc>: <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>y</loc>: <ref:Struct>Double</ref></decl>
<decl:Constructor><loc>init()</loc></decl>
<decl:Constructor><loc>init(<decl:Param>x: <ref:Struct>Int32</ref></decl>, <decl:Param>y: <ref:Struct>Double</ref></decl>)</loc></decl>
}</decl>
<decl:TypeAlias>typealias <loc>FooStructTypedef1</loc> = <ref:Struct>FooStruct2</ref></decl>
<decl:Struct>struct <loc>FooStructTypedef2</loc> {
<decl:Var>var <loc>x</loc>: <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>y</loc>: <ref:Struct>Double</ref></decl>
<decl:Constructor><loc>init()</loc></decl>
<decl:Constructor><loc>init(<decl:Param>x: <ref:Struct>Int32</ref></decl>, <decl:Param>y: <ref:Struct>Double</ref></decl>)</loc></decl>
}</decl>
<decl:TypeAlias>/// Aaa. FooTypedef1. Bbb.
typealias <loc>FooTypedef1</loc> = <ref:Struct>Int32</ref></decl>
<decl:Var>/// Aaa. fooIntVar. Bbb.
var <loc>fooIntVar</loc>: <ref:Struct>Int32</ref></decl>
<decl:Func>/// Aaa. fooFunc1. Bbb.
func <loc>fooFunc1(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>)</loc> -> <ref:Struct>Int32</ref></decl>
<decl:Func>func <loc>fooFunc1AnonymousParam(<decl:Param>_: <ref:Struct>Int32</ref></decl>)</loc> -> <ref:Struct>Int32</ref></decl>
<decl:Func>func <loc>fooFunc3(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>, <decl:Param>_ b: <ref:Struct>Float</ref></decl>, <decl:Param>_ c: <ref:Struct>Double</ref></decl>, <decl:Param>_ d: <ref:Struct>UnsafeMutablePointer</ref><<ref:Struct>Int32</ref>>!</decl>)</loc> -> <ref:Struct>Int32</ref></decl>
<decl:Func>func <loc>fooFuncWithBlock(<decl:Param>_ blk: (@escaping (<ref:Struct>Float</ref>) -> <ref:Struct>Int32</ref>)!</decl>)</loc></decl>
<decl:Func>func <loc>fooFuncWithFunctionPointer(<decl:Param>_ fptr: (@escaping @convention(c) (<ref:Struct>Float</ref>) -> <ref:Struct>Int32</ref>)!</decl>)</loc></decl>
<decl:Func>func <loc>fooFuncNoreturn1()</loc> -> <ref:Enum>Never</ref></decl>
<decl:Func>func <loc>fooFuncNoreturn2()</loc> -> <ref:Enum>Never</ref></decl>
<decl:Func>/**
* Aaa. fooFuncWithComment1. Bbb.
* Ccc.
*
* Ddd.
*/
func <loc>fooFuncWithComment1()</loc></decl>
<decl:Func>/*!
Aaa. fooFuncWithComment2. Bbb.
*/
func <loc>fooFuncWithComment2()</loc></decl>
<decl:Func>/**
* Aaa. fooFuncWithComment3. Bbb.
*/
/**
* Ccc.
*/
func <loc>fooFuncWithComment3()</loc></decl>
<decl:Func>/**
* Aaa. fooFuncWithComment4. Bbb.
*/
/// Ddd.
func <loc>fooFuncWithComment4()</loc></decl>
<decl:Func>/// Aaa. fooFuncWithComment5. Bbb.
/// Ccc.
///
/// Ddd.
func <loc>fooFuncWithComment5()</loc></decl>
<decl:Func>/// Aaa. redeclaredInMultipleModulesFunc1. Bbb.
func <loc>redeclaredInMultipleModulesFunc1(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>)</loc> -> <ref:Struct>Int32</ref></decl>
<decl:Func>@available(*, unavailable, message: "Variadic function is unavailable")
func <loc>fooFuncUsingVararg(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>, <decl:Param>_ varargs: Any...</decl>)</loc> -> <ref:Struct>Int32</ref></decl>
<decl:Protocol>/// Aaa. FooProtocolBase. Bbb.
protocol <loc>FooProtocolBase</loc> {
<decl:Func>/// Aaa. fooProtoFunc. Bbb.
/// Ccc.
func <loc>fooProtoFunc()</loc></decl>
<decl:Func>/// Aaa. fooProtoFuncWithExtraIndentation1. Bbb.
/// Ccc.
func <loc>fooProtoFuncWithExtraIndentation1()</loc></decl>
<decl:Func>/**
* Aaa. fooProtoFuncWithExtraIndentation2. Bbb.
* Ccc.
*/
func <loc>fooProtoFuncWithExtraIndentation2()</loc></decl>
<decl:Func>static func <loc>fooProtoClassFunc()</loc></decl>
<decl:Var>var <loc>fooProperty1</loc>: <ref:Struct>Int32</ref> { get set }</decl>
<decl:Var>var <loc>fooProperty2</loc>: <ref:Struct>Int32</ref> { get set }</decl>
<decl:Var>var <loc>fooProperty3</loc>: <ref:Struct>Int32</ref> { get }</decl>
}</decl>
<decl:Protocol>protocol <loc>FooProtocolDerived</loc> : <ref:Protocol>FooProtocolBase</ref> {
}</decl>
<decl:Class>class <loc>FooClassBase</loc> {
<decl:Func>class func <loc>fooBaseInstanceFunc0()</loc></decl>
<decl:Func>func <loc>fooBaseInstanceFunc0()</loc></decl>
<decl:Func>class func <loc>fooBaseInstanceFunc1(<decl:Param>_ anObject: <ref:Protocol>AnyObject</ref>!</decl>)</loc> -> <ref:Class>FooClassBase</ref>!</decl>
<decl:Func>func <loc>fooBaseInstanceFunc1(<decl:Param>_ anObject: <ref:Protocol>AnyObject</ref>!</decl>)</loc> -> <ref:Class>FooClassBase</ref>!</decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
<decl:Func>class func <loc>fooBaseInstanceFuncOverridden()</loc></decl>
<decl:Func>func <loc>fooBaseInstanceFuncOverridden()</loc></decl>
<decl:Func>class func <loc>fooBaseClassFunc0()</loc></decl>
<decl:Constructor>/*not inherited*/ <loc>init!(<decl:Param>_ x: <ref:Struct>Int32</ref></decl>)</loc></decl>
<decl:Func>@available(*, unavailable, message: "use object construction 'FooClassBase(_:)'")
class func <loc>fooClassBase(<decl:Param>_ x: <ref:Struct>Int32</ref></decl>)</loc> -> <ref:Class>FooClassBase</ref>!</decl>
}</decl>
<decl:Class>/// Aaa. FooClassDerived. Bbb.
class <loc>FooClassDerived</loc> : <ref:Class>FooClassBase</ref>, <ref:Protocol>FooProtocolDerived</ref> {
<decl:Var>var <loc>fooProperty1</loc>: <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>fooProperty2</loc>: <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>fooProperty3</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Func>func <loc>fooInstanceFunc0()</loc></decl>
<decl:Func>func <loc>fooInstanceFunc1(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>)</loc></decl>
<decl:Func>func <loc>fooInstanceFunc2(<decl:Param>_ a: <ref:Struct>Int32</ref></decl>, <decl:Param>withB b: <ref:Struct>Int32</ref></decl>)</loc></decl>
<decl:Func>func <loc>fooBaseInstanceFuncOverridden()</loc></decl>
<decl:Func>class func <loc>fooClassFunc0()</loc></decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
<decl:Func>/// Aaa. fooProtoFunc. Bbb.
/// Ccc.
func <loc>fooProtoFunc()</loc></decl>
<decl:Func>/// Aaa. fooProtoFuncWithExtraIndentation1. Bbb.
/// Ccc.
func <loc>fooProtoFuncWithExtraIndentation1()</loc></decl>
<decl:Func>/**
* Aaa. fooProtoFuncWithExtraIndentation2. Bbb.
* Ccc.
*/
func <loc>fooProtoFuncWithExtraIndentation2()</loc></decl>
<decl:Func>class func <loc>fooProtoClassFunc()</loc></decl>
}</decl>
<decl:TypeAlias>typealias <loc>typedef_int_t</loc> = <ref:Struct>Int32</ref></decl>
<decl:Var>var <loc>FOO_MACRO_1</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_2</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_3</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_4</loc>: <ref:Struct>UInt32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_5</loc>: <ref:Struct>UInt64</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_6</loc>: <ref:TypeAlias>typedef_int_t</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_7</loc>: <ref:TypeAlias>typedef_int_t</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_8</loc>: <ref:Struct>Int8</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_9</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_10</loc>: <ref:Struct>Int16</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_11</loc>: <ref:Struct>Int</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_OR</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_AND</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_BITWIDTH</loc>: <ref:Struct>UInt64</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_SIGNED</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_REDEF_1</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Var>var <loc>FOO_MACRO_REDEF_2</loc>: <ref:Struct>Int32</ref> { get }</decl>
<decl:Func>func <loc>theLastDeclInFoo()</loc></decl>
<decl:Func>func <loc>_internalTopLevelFunc()</loc></decl>
<decl:Struct>struct <loc>_InternalStruct</loc> {
<decl:Var>var <loc>x</loc>: <ref:Struct>Int32</ref></decl>
<decl:Constructor><loc>init()</loc></decl>
<decl:Constructor><loc>init(<decl:Param>x: <ref:Struct>Int32</ref></decl>)</loc></decl>
}</decl>
<decl:Extension>extension <loc><ref:Class>FooClassBase</ref></loc> {
<decl:Func>class func <loc>_internalMeth1()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
<decl:Func>func <loc>_internalMeth1()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
}</decl>
<decl:Extension>extension <loc><ref:Class>FooClassBase</ref></loc> {
<decl:Func>class func <loc>_internalMeth2()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
<decl:Func>func <loc>_internalMeth2()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
<decl:Func>class func <loc>nonInternalMeth()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
<decl:Func>func <loc>nonInternalMeth()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
}</decl>
<decl:Extension>extension <loc><ref:Class>FooClassBase</ref></loc> {
<decl:Func>class func <loc>_internalMeth3()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
<decl:Func>func <loc>_internalMeth3()</loc> -> <ref:Protocol>AnyObject</ref>!</decl>
}</decl>
<decl:Protocol>protocol <loc>_InternalProt</loc> {
}</decl>
<decl:Class>class <loc>ClassWithInternalProt</loc> : <ref:Protocol>_InternalProt</ref> {
}</decl>
<decl:Class>class <loc>FooClassPropertyOwnership</loc> : <ref:Class>FooClassBase</ref> {
<decl:Var>unowned(unsafe) var <loc>assignable</loc>: @sil_unmanaged <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>unowned(unsafe) var <loc>unsafeAssignable</loc>: @sil_unmanaged <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>var <loc>retainable</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>var <loc>strongRef</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>@NSCopying var <loc>copyable</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>weak var <loc>weakRef</loc>: @sil_weak <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>var <loc>scalar</loc>: <ref:Struct>Int32</ref></decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
}</decl>
<decl:Class>class <loc>FooClassWithClassProperties</loc> : <ref:Class>FooClassBase</ref> {
<decl:Var>unowned(unsafe) class var <loc>assignable</loc>: @sil_unmanaged <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>unowned(unsafe) class var <loc>unsafeAssignable</loc>: @sil_unmanaged <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>class var <loc>retainable</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>class var <loc>strongRef</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>@NSCopying class var <loc>copyable</loc>: <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>weak class var <loc>weakRef</loc>: @sil_weak <ref:Protocol>AnyObject</ref>!</decl>
<decl:Var>class var <loc>scalar</loc>: <ref:Struct>Int32</ref></decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
}</decl>
<decl:Var>@available(*, unavailable, message: "use 'nil' instead of this imported macro")
var <loc>FOO_NIL</loc>: ()</decl>
<decl:Class>class <loc>FooUnavailableMembers</loc> : <ref:Class>FooClassBase</ref> {
<decl:Constructor>convenience <loc>init!(<decl:Param>int i: <ref:Struct>Int32</ref></decl>)</loc></decl>
<decl:Func>@available(*, unavailable, message: "use object construction 'FooUnavailableMembers(int:)'")
class func <loc>withInt(<decl:Param>_ i: <ref:Struct>Int32</ref></decl>)</loc> -> <ref:Class>Self</ref>!</decl>
<decl:Func>@available(*, unavailable, message: "x")
func <loc>unavailable()</loc></decl>
<decl:Func>@available(*, unavailable, message: "Not available in Swift")
func <loc>swiftUnavailable()</loc></decl>
<decl:Func>@available(*, deprecated, message: "x")
func <loc>deprecated()</loc></decl>
<decl:Func>@available(OSX 10.1, *)
func <loc>availabilityIntroduced()</loc></decl>
<decl:Func>@available(OSX, unavailable, deprecated: 10.1, message: "APIs deprecated as of OS X 10.9 and earlier are unavailable in Swift")
func <loc>availabilityDeprecated()</loc></decl>
<decl:Func>@available(OSX, obsoleted: 10.1)
func <loc>availabilityObsoleted()</loc></decl>
<decl:Func>@available(OSX, unavailable)
func <loc>availabilityUnavailable()</loc></decl>
<decl:Func>@available(OSX, introduced: 10.1, message: "x")
func <loc>availabilityIntroducedMsg()</loc></decl>
<decl:Func>@available(OSX, unavailable, deprecated: 10.1, message: "x")
func <loc>availabilityDeprecatedMsg()</loc></decl>
<decl:Func>@available(OSX, obsoleted: 10.1, message: "x")
func <loc>availabilityObsoletedMsg()</loc></decl>
<decl:Func>@available(OSX, unavailable, message: "x")
func <loc>availabilityUnavailableMsg()</loc></decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
}</decl>
<decl:Class>class <loc>FooCFType</loc> {
}</decl>
<decl:Func>@available(*, unavailable, message: "Core Foundation objects are automatically memory managed")
func <loc>FooCFTypeRelease(<decl:Param>_: <ref:Class>FooCFType</ref>!</decl>)</loc></decl>
<decl:Class>class <loc>FooRepeatedMembers</loc> : <ref:Class>FooClassBase</ref> {
<decl:Func>func <loc>repeatedMethod()</loc></decl>
<decl:Func>func <loc>anotherMethod()</loc></decl>
<decl:Constructor><loc>init!()</loc></decl>
<decl:Constructor>convenience <loc>init!(<decl:Param>float f: <ref:Struct>Float</ref></decl>)</loc></decl>
}</decl>
<decl:Extension>extension <loc><ref:Class>FooRepeatedMembers</ref></loc> {
<decl:Var>var <loc>repeatedPropertyInCategory</loc>: <ref:Struct>Int32</ref></decl>
<decl:Func>func <loc>repeatedMethodInCategory()</loc></decl>
}</decl>
<decl:Extension>extension <loc><ref:Class>FooRepeatedMembers</ref></loc> {
<decl:Var>var <loc>repeatedPropertyFromCategory</loc>: <ref:Struct>Int32</ref></decl>
<decl:Func>func <loc>repeatedMethodFromCategory()</loc></decl>
}</decl>
<decl:Enum>enum <loc>SCNFilterMode</loc> : <ref:Struct>Int</ref> {
<decl:Constructor><loc>init?(<decl:Param>rawValue: <ref:Struct>Int</ref></decl>)</loc></decl>
<decl:Var>var <loc>rawValue</loc>: <ref:Struct>Int</ref> { get }</decl>
<decl:EnumElement>case <loc>none</loc></decl>
<decl:EnumElement>case <loc>nearest</loc></decl>
<decl:EnumElement>case <loc>linear</loc></decl>
<decl:EnumElement>@available(*, unavailable)
case <loc>SCNNoFiltering</loc></decl>
}</decl>