Commit Graph

11 Commits

Author SHA1 Message Date
Alexis Laferrière
937e6c5241 Merge pull request #85446 from xymus/serial-xref-check
Serialization: Error on leaked cross-references to `@_implementationOnly` dependencies
2025-11-12 10:42:58 -08:00
Alexis Laferrière
06db612d79 Sema: Intro the CheckImplementationOnlyStrict feature 2025-11-11 10:26:00 -08:00
Alexis Laferrière
afe335d1c5 Sema: Add more tests for class exportability checking in NLE 2025-11-11 09:56:23 -08:00
Alexis Laferrière
8eb530cc71 Sema: Accept @_implementationOnly protocols 2025-11-11 09:54:37 -08:00
Doug Gregor
020b69d4b6 [SE-0497] Implement @export attribute syntax
Implement the @export(implementation) and @export(interface) attributes
to replace @_alwaysEmitIntoClient and @_neverEmitIntoClient. Provide a
warning + Fix-It to start staging out the very-new
@_neverEmitIntoClient. We'll hold off on pushing folks toward
@_alwaysEmitIntoClient for a little longer.
2025-11-07 22:00:40 -08:00
Alexis Laferrière
b107169153 Sema: Exportability check super types 2025-11-06 11:30:44 -08:00
Alexis Laferrière
8567630802 Sema: Test @_implementationOnly classes 2025-11-06 11:30:43 -08:00
Alexis Laferrière
b52781e1e1 Sema: Generalize the diagnostic about types with @_implementationOnly 2025-11-06 10:19:39 -08:00
Alexis Laferrière
dd55d0d827 Sema: Fix access-level of ExposedLayoutInternalUser in tests 2025-11-06 10:19:27 -08:00
Alexis Laferrière
bf443413b7 Sema: Fix superfluous error about private decls in internal memory layouts
Don't consider implicitly exposed memory layouts when checking for
usable from inline correctness. That check applies only to memory
layouts marked as exposed explicitly. Consider the implict state only at
the general availability checking.
2025-11-04 14:37:10 -08:00
Alexis Laferrière
488321256e Sema: Consider non-LE structs to be of a restricted type by default
In non-library-evolution mode, gated behind the CheckImplementationOnly
feature flag, report references to structs marked with
`@_implementationOnly` from a fragile context. Preventing references
from inlinable functions and structs not marked `@_implementationOnly`.
2025-11-04 13:50:37 -08:00