| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 
 | <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>
 |