Allan Shortlidge
8052e3f9dc
AST: Remove 'OS' from AvailabilityContext member names.
...
An `AvailabilityContext` represents an abstract version range in which
something is available. In the future, these version ranges may not necessarily
always correspond to operating system version ranges.
NFC.
2024-09-02 16:47:14 -07:00
Allan Shortlidge
018234fabf
AST: Remove IsSPI from AvailabilityContext.
...
It only existed to make `Decl::isAvailableAsSPI()` convenient to implement.
NFC.
2024-09-02 16:47:14 -07:00
Slava Pestov
21cc894a6c
AST: Allow nested protocol types in ExistentialGeneralization
2024-09-02 17:14:36 -04:00
Slava Pestov
36683a804c
AST: Handle missing cases in findGenericParameterReferencesRec()
2024-09-02 17:14:22 -04:00
Slava Pestov
56cefdc83f
AST: Clean up findGenericParameterReferences()
2024-09-02 16:12:31 -04:00
Konrad `ktoso` Malawski
c55ad6fa88
Merge branch 'main' into mpokhylets/isolated-deinit
2024-09-02 23:16:17 +09:00
Egor Zhdan
39b8b3c67e
Merge pull request #76106 from swiftlang/egorzhdan/cxx-mutable-rac
...
[cxx-interop] Add `CxxMutableRandomAccessCollection` protocol
2024-09-02 11:35:43 +01:00
Slava Pestov
aa81ce3f6c
AST: Use new form of getOpenedExistentialSignature() in getMinimalCanonicalType()
2024-09-01 18:03:47 -04:00
Slava Pestov
cf0fdc0917
AST: Add new implementation of getOpenedExistentialSignature()
...
This will replace all existing usages of the old implementation.
2024-09-01 18:03:26 -04:00
Slava Pestov
44dbebdd9e
Merge pull request #76200 from slavapestov/type-subst-invariant
...
AST: Type substitution can skip subtrees that won't change
2024-09-01 17:55:11 -04:00
Slava Pestov
593358add1
AST: Type substitution can skip subtrees that won't change
2024-09-01 12:50:17 -04:00
Hamish Knight
9bd0d9b7e4
[Sema] Walk separately-checked closures normally in MiscDiagnostics
...
We no longer need to make any special affordances
for separately-checked closures, walk them normally.
2024-08-31 12:47:46 +01:00
Slava Pestov
73ade1dd4a
Merge pull request #76180 from slavapestov/fix-issue-76164
...
AST: Simplify ProtocolCompositionType::getMinimalCanonicalType() and remove bogus assert
2024-08-30 22:05:18 -04:00
Doug Gregor
a73711ef4b
Implement extractInlinableText with swift-syntax
...
Replace the existing C++ implementation of extractInlinableText with
a new implementation based on swift-syntax. It uses SwiftIfConfig to
remove inactive regions (with a special mode), and a new compiler-only
entrypoint in the library to remove comments and `#sourceLocation`.
2024-08-30 16:43:41 -07:00
Slava Pestov
e79763b590
AST: Factor out mapLocalArchetypesOutOfContext() utility function
2024-08-30 15:24:00 -04:00
Slava Pestov
52ce02eb96
AST: Remove ArchetypeType::getRoot()
2024-08-30 15:24:00 -04:00
Slava Pestov
21905afd85
AST: Simplify ProtocolCompositionType::getMinimalCanonicalType() and remove bogus assert
...
Fixes https://github.com/swiftlang/swift/issues/76164
2024-08-30 15:22:47 -04:00
Gabor Horvath
0eab959d2b
[cxx-interop] Do not export enums with indirect associated values
...
We do not support any sort of indirect enums yet, the code gets into an
infinite recursion. Let's skip exporting these types to C++ for now
until proper support is implemented.
rdar://134852756
2024-08-30 13:34:28 +01:00
Slava Pestov
d36dcea88d
Merge pull request #76154 from slavapestov/combine-substitution-maps
...
Move combineSubstitutionMaps() to SILOptimizer and fix an assertion
2024-08-29 20:51:49 -04:00
Slava Pestov
43c7310288
SILOptimizer: Move combineSubstitutionMaps() to Devirtualize.cpp
2024-08-29 16:18:14 -04:00
Hamish Knight
4987c3b970
Merge pull request #76122 from hamishknight/platform-2
...
[AST] Account for non-user modules in `isPrivateStdlibDecl`
2024-08-29 11:25:54 +01:00
Mykola Pokhylets
e0ad7bde82
Merge branch 'main' into mpokhylets/isolated-deinit
...
# Conflicts:
# include/swift/Basic/Features.def
# lib/AST/ASTPrinter.cpp
# lib/AST/FeatureSet.cpp
2024-08-29 11:28:43 +02:00
Allan Shortlidge
8503f72b11
Merge pull request #76111 from tshortli/lazy-typecheck-lazy-var-in-inlinable-func
...
SILGen: Only skip decls nested in functions when the function is skipped
2024-08-28 14:52:59 -07:00
Pavel Yaskevich
6465bdc6e1
Merge pull request #76042 from xedin/rdar-133415157
...
[Sema/SILGen] Emit dynamic actor isolation checks for closures
2024-08-28 13:06:55 -07:00
Hamish Knight
1cb0f8fdd5
[AST] Rename isPrivateStdlibDecl -> isPrivateSystemDecl
...
This better reflects what we're actually checking
here.
2024-08-28 18:31:51 +01:00
Hamish Knight
05954eaa90
[AST] Account for non-user modules in isPrivateStdlibDecl
...
Consider both non-user and system modules when
checking whether an underscored decl should be
considered private.
rdar://131854240
2024-08-28 18:31:51 +01:00
Egor Zhdan
0ab681514b
[cxx-interop] Add CxxMutableRandomAccessCollection protocol
...
This conforms mutable C++ container types, such as `std::vector`, to `MutableCollection` via a new overlay protocol `CxxMutableRandomAccessCollection`.
rdar://134531554
2024-08-28 12:43:42 +01:00
Ben Barham
b82c6bd567
[Cleanup] Rename another endswith
...
`endswith` is renamed to `ends_with` upstream.
2024-08-27 16:43:28 -07:00
Allan Shortlidge
185022cbb5
SILGen: Only skip decls nested in functions when the function is skipped.
...
If a function body is emitted, all of the declarations inside that function
body must be emitted, too. Previously, lazy var initializers were being skipped
regardless of whether the function containing them was skipped, resulting in
SIL verification errors (which were correctly predicting linker errors).
Resolves rdar://134708502.
2024-08-27 14:29:08 -07:00
Steven Wu
d53f4fc3fc
Merge pull request #76088 from cachemeifyoucan/eng/PR-134593841
...
[Caching] CASFS need to include blocklist
2024-08-27 11:16:06 -07:00
Hamish Knight
2fdf43a6fd
Merge pull request #76057 from hamishknight/platform
...
[AST] Treat platform modules as non-user
2024-08-27 16:03:38 +01:00
Steven Wu
fd6707e312
[Caching] CASFS need to include blocklist
...
There are blocklist items can affect code-generation, thus the
block-list needs to be included in the CASFS for compilation.
rdar://134593841
2024-08-26 11:49:42 -07:00
Michael Gottesman
da597be76d
Merge pull request #76075 from gottesmm/rdar133531625
...
[region-isolation] Treat as Sendable values that are meant to be ignored since they are marked with preconcurrency
2024-08-24 22:26:00 -04:00
Slava Pestov
8315120eaf
Merge pull request #76051 from slavapestov/archetype-get-parent
...
AST: Remove ArchetypeType::getParent()
2024-08-24 15:31:01 -04:00
Michael Gottesman
49eee05647
[region-isolation] Treat as Sendable values that are meant to be ignored since they are marked with preconcurrency
...
rdar://133531625
2024-08-24 13:14:39 -04:00
Michael Gottesman
bbc4816861
[sema] Move getConcurrencyDiagnosticBehaviorLimit and hasExplicitSendableConformance out of Sema and into libAST.
...
I am going to expose this on TypeBase, so I am attempting to prevent a layering
violation in between AST and Sema.
2024-08-23 20:42:51 -04:00
Slava Pestov
4d2b4f4b73
AST: Remove ArchetypeType::getParent()
2024-08-23 16:45:03 -04:00
Slava Pestov
a275780bdb
AST: Simplify SubstitutionMap::lookupSubstitution()
2024-08-23 16:45:03 -04:00
Slava Pestov
632fd49f07
AST: Simplify TypeSubstituter::transformPrimaryArchetypeType()
2024-08-23 16:11:28 -04:00
Slava Pestov
7732c6a712
AST: Simplify TypeSubstituter::transformLocalArchetypeType()
2024-08-23 14:28:35 -04:00
Slava Pestov
0bfbc53363
AST: Simplify TypeSubstituter::transformOpaqueTypeArchetypeType()
2024-08-23 13:56:18 -04:00
Steven Wu
7ed9a52633
[PrefixMap] Remap clang cc1 args when building swift interfaces
...
Fix a bug that swift clang importer is not setup correctly when prefix
map is used. There are two separate issues:
* CC1 args used to setup clang import when building swift (interface and
sources) are not correctly remapped.
* When loading SDKInfo from SDK path, the SDKSettings.json is not
loading from VFS, thus the file cannot be loaded from remapped path.
rdar://134458611
2024-08-23 10:32:20 -07:00
Slava Pestov
cf784f980e
AST: Remove SubstFlags::AllowLoweredTypes
2024-08-23 13:14:05 -04:00
Hamish Knight
940f5f7c2a
[AST] Treat platform modules as non-user
...
Modules defined within the SDK are considered
non-user modules, extend this to any module found
within the parent platform directory if there is
one. This ensures we include modules such as
XCTest and Testing.
rdar://131854240
2024-08-23 14:23:37 +01:00
Slava Pestov
76ec490119
AST: Split up remaining cases of TypeSubstituter::transform()
...
Also rename and reformat a few things added recently.
2024-08-22 18:42:19 -04:00
Slava Pestov
da4d076f02
AST: Introduce SubstFlags::SubstitutePrimaryArchetypes
2024-08-22 18:41:14 -04:00
Allan Shortlidge
4420ea853b
Sema: Check availability of conformance type witnesses.
...
The type satisfying a protocol requirement must be at least as available as the
associated type for the requirement.
Resolves rdar://134093006
2024-08-22 15:23:21 -07:00
Pavel Yaskevich
a4d9b3b5b2
[AST] Add a bit to closure expr to indiciate whether it requires dynamic isolation checking
...
This is an important information for closures because the compiler
might need to emit dynamic actor isolation checks in some circumstances
(i.e. when a closure is isolated and passed to a not fully concurrency
checked API).
2024-08-22 09:57:06 -07:00
Slava Pestov
07b697e178
Merge pull request #76030 from slavapestov/open-existential-get
...
AST: Remove OpenedArchetypeType::get() overload taking an interface type
2024-08-22 09:32:57 -04:00
Konrad `ktoso` Malawski
1861375f88
[Concurrency] Suggest adding a method, when mutating actor property cross isolation ( #75922 )
2024-08-22 20:24:39 +09:00