@@ -66,11 +66,13 @@ enum class ExportabilityReason : unsigned {
66
66
};
67
67
68
68
// / A description of the restrictions on what declarations can be referenced
69
- // / from a the signature or body of a declaration.
69
+ // / from the signature or body of a declaration.
70
70
// /
71
- // / We say a declaration is "exported" if it is `public` or
72
- // / `@usableFromInline`, not `_@spi`, and not visible via an
73
- // / `@_implementationOnly` import.
71
+ // / We say a declaration is "exported" if all of the following holds:
72
+ // /
73
+ // / - the declaration is `public` or `@usableFromInline`
74
+ // / - the declaration is not `@_spi`
75
+ // / - the declaration was not imported from an `@_implementationOnly` import
74
76
// /
75
77
// / The "signature" of a declaration is the set of all types written in the
76
78
// / declaration (such as function parameter and return types), but not
@@ -81,8 +83,8 @@ enum class ExportabilityReason : unsigned {
81
83
// /
82
84
// / The body of an inlinable function can only reference other `public` and
83
85
// / `@usableFromInline` declarations; furthermore, if the inlinable
84
- // / function is also exported , its body is restricted to referencing other
85
- // / exported declarations.
86
+ // / function is not `@_spi` , its body can only reference other exported
87
+ // / declarations.
86
88
// /
87
89
// / The ExportContext also stores if the location in the program is inside
88
90
// / of a function or type body with deprecated or unavailable availability.
0 commit comments