Commit Graph

22435 Commits

Author SHA1 Message Date
Kavon Farvardin
be0e61e6d6 Merge pull request #75211 from kavon/handle-stdlib-with-no-files-129092011
NCGenerics: handle failure to load stdlib
2024-07-14 21:13:36 -07:00
swift-ci
892505350e Merge remote-tracking branch 'origin/main' into rebranch 2024-07-13 13:46:10 -07:00
Holly Borla
73ba98cb2b Merge pull request #75224 from hborla/self-capture-deinit-task
[Concurrency] Diagnose captures of `self` in a task created in `deinit`.
2024-07-13 13:32:28 -07:00
swift-ci
1c5bad37c3 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-13 10:16:23 -07:00
Holly Borla
e08bd9565d Merge pull request #75135 from hborla/unavailable-superclass-conformance
[ConformanceLookup] Don't allow skipping inherited unavailable conformances in favor of explicit available ones.
2024-07-13 10:15:49 -07:00
swift-ci
2c26703330 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-13 09:56:02 -07:00
Slava Pestov
8be66967ed Merge pull request #75210 from slavapestov/optimize-is-weak-linked
AST: Optimize ModuleDecl::isImportedAsWeakLinked()
2024-07-13 12:43:13 -04:00
Holly Borla
18b747c181 [Concurrency] Diagnose captures of self in a task created in deinit.
This is done by diagnosing captures of `self` in escaping `sending` or
`@Sendable` closures inside a deinit, which almost certainly means `self`
will outlive deinit at runtime, which is a fatal error. This is a common
mistake to make when creating isolated tasks inside nonisolated deinits
to workaround the lack of synchrnous isolated deinits in Swift 6.
2024-07-12 21:49:35 -07:00
Kavon Farvardin
8624b175b9 NFC: check ModuleDecl file invariant always 2024-07-12 15:49:58 -07:00
Slava Pestov
5e30f6a4c3 AST: Optimize ModuleDecl::isImportedAsWeakLinked() 2024-07-12 15:53:58 -04:00
swift-ci
491ee24fae Merge remote-tracking branch 'origin/main' into rebranch 2024-07-12 09:35:49 -07:00
Allan Shortlidge
373a3fe7de Merge pull request #75185 from tshortli/revert-aeic-diagnose-unavailable-code-reached
SILGen/stdlib: Remove `_diagnoseUnavailableCodeReached_aeic()`
2024-07-12 09:22:11 -07:00
swift-ci
9ced1b0ed3 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-12 08:14:29 -07:00
Saleem Abdulrasool
7cc7e2bd3a Merge pull request #72352 from compnerd/sysroot
Driver: introduce `-sysroot` option for non-Darwin targets
2024-07-12 08:08:59 -07:00
Holly Borla
85b66d1dc2 [ConformanceLookup] Always prefer unavailable Sendable conformances from the
defining module, and diagnose redundant Sendable conformances.

We still allow re-stating inherited unchecked Sendable conformances in
subclasses because inherited Sendable conformances are surprising when
they opt out of static checking. Otherwise, warning on redundant Sendable
conformances nudges programmers toward cleaning up unnecessary retroactive
Sendable conformances over time as libraries incrementally add the
conformances directly.
2024-07-11 20:33:24 -07:00
Pavel Yaskevich
6925940b37 [Sema] Improve diagnostic when @usableFromInline is applied to a declaration without a name (i.e. accessor/init) 2024-07-11 17:12:57 -07:00
Allan Shortlidge
14200e412c SILGen/stdlib: Remove _diagnoseUnavailableCodeReached_aeic().
It should no longer be necessary to provide an `@_alwaysEmitIntoClient` version
of `_diagnoseUnavailableCodeReached()`. This workaround was originally added to
provide compatibility with projects that were misconfigured to compile against
a newer stdlib but link against an older one.

Resolves rdar://119892482.
2024-07-11 14:53:03 -07:00
swift-ci
f3edba0452 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 12:15:10 -07:00
Ellie Shin
cb776089cb Merge pull request #75154 from swiftlang/elsh/drop-exp-prefix
Drop experimental prefixes from PackageCMO flags.
2024-07-11 12:12:29 -07:00
swift-ci
2f0eb27522 Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 11:35:31 -07:00
Pavel Yaskevich
e4cd1d7acd Merge pull request #75062 from xedin/rdar-122193606
[Concurrency] Allow sendability mismatches while overriding `@preconcurrency` properties in Swift 5 mode
2024-07-11 11:18:53 -07:00
swift-ci
bf0d148c8f Merge remote-tracking branch 'origin/main' into rebranch 2024-07-11 11:15:59 -07:00
Allan Shortlidge
5d6f6947ed Merge pull request #75158 from tshortli/member-import-visibility-package
AST: Add a `IgnoreMissingImports` option to name lookup
2024-07-11 11:07:39 -07:00
Mykola Pokhylets
816d62c972 Merge remote-tracking branch 'upstream/main' into mpokhylets/isolated-deinit
# Conflicts:
#	include/swift/Basic/Features.def
#	lib/SILGen/SILGenDestructor.cpp
#	test/Concurrency/flow_isolation.swift
#	test/abi/macOS/arm64/concurrency.swift
#	test/abi/macOS/x86_64/concurrency.swift
2024-07-11 13:11:59 +02:00
Mykola Pokhylets
2cb7e8d7b8 Implemented suppressing isolated deinit for compatibility with older compiler versions 2024-07-11 13:09:08 +02:00
Mykola Pokhylets
4d0b624866 Make deinit non-isolated by default
Failing: Distributed/Runtime/distributed_actor_deinit.swift
2024-07-11 13:09:08 +02:00
Mykola Pokhylets
f04f1de75e Fixed some typos 2024-07-11 13:09:07 +02:00
Mykola Pokhylets
95079aff06 Don't generate isolating destructor if dealloc was explicitly isolated in ObjC 2024-07-11 13:09:06 +02:00
Mykola Pokhylets
63e538e469 Import dealloc method as deinit 2024-07-11 13:09:05 +02:00
Mykola Pokhylets
10ee94885e Generating errors when isolation of the subclass deinit is not compatible with superclass deinit 2024-07-11 13:09:05 +02:00
Mykola Pokhylets
d4e449b62d SILGen for isolated deinit 2024-07-11 13:09:05 +02:00
Mykola Pokhylets
b189495518 Introduced isolated deinit as a SIL entity 2024-07-11 13:09:05 +02:00
swift-ci
a32c1896dc Merge remote-tracking branch 'origin/main' into rebranch 2024-07-10 23:09:47 -07:00
Allan Shortlidge
d002da0ef2 AST: Add a IgnoreMissingImports option to name lookup.
Control enforcement of member import visibility requirements via a new option,
instead of piggy-backing on the existing IgnoreAccessControl option. Adopt the
option when doing fallback lookups for unviable members so that the compiler
can diagnose the reason that a member is inaccessible more reliably.
Previously, with MemberImportVisibility enabled decls with the package access
level could be mis-diagnosed as inaccessible due to their access level when
really they were inaccessible due to a missing import.

Resolves rdar://131501862.
2024-07-10 22:57:15 -07:00
Andrew Trick
12acde2215 Merge pull request #75096 from meg-gupta/lifetimedeparg
Add support for lifetime dependence in parameter position
2024-07-10 22:56:23 -07:00
Ben Barham
2715d0e9d6 Merge branch 'main' into 20240710-main-to-rebranch
Conflicts:
  - `test/Interop/Cxx/class/method/methods-this-and-indirect-return-irgen-itanium.swift`
    previously fixed on rebranch, now fixed on main (slightly differently).
2024-07-10 20:42:09 -07:00
Kavon Farvardin
bbc02a5544 Merge pull request #75141 from kavon/invertible-conformance-same-sourcefile
NCGenerics: enforce same-source conformance rule
2024-07-10 17:50:13 -07:00
Slava Pestov
d1847ffde7 Merge pull request #75068 from slavapestov/simplify-sub-map
Simplify and optimize SubstitutionMap
2024-07-10 20:45:56 -04:00
Ellie Shin
18681c43fb Drop experimental prefixes from PackageCMO flags.
Deprecate experimental- flags with prompts to use the proper flags.

rdar://131498517
2024-07-10 16:19:16 -07:00
Shubham Sandeep Rastogi
d443fdd501 Merge pull request #74202 from rastogishubham/MCCASReplay
Add replay support for MCCAS in Swift.
2024-07-10 15:21:51 -07:00
Meghana Gupta
076d70acbb Update getLifetimeDependenceInfo to getLifetimeDependencies in CSSimplify 2024-07-10 14:48:34 -07:00
Meghana Gupta
fecd2b452d Don't mangle lifetime dependencies in older runtimes 2024-07-10 14:48:34 -07:00
Meghana Gupta
2b28da6dd7 Update ASTPrinting of lifetime dependence 2024-07-10 14:48:34 -07:00
Meghana Gupta
815d7a67f5 Replace hasLifetimeDependenceInfo -> hasLifetimeDependencies 2024-07-10 14:48:34 -07:00
Meghana Gupta
7d2ff43fe3 Update mangling to support lifetime dependence in parameter position 2024-07-10 14:20:03 -07:00
Meghana Gupta
154989463b Add support for lifetime dependence in parameter position 2024-07-10 14:20:03 -07:00
Meghana Gupta
8137aed238 Rename LifetimeDependentReturnTypeRepr -> LifetimeDependentTypeRepr 2024-07-10 14:20:03 -07:00
Meghana Gupta
4993f4bf22 Merge pull request #74956 from meg-gupta/lifetimedepfunctiontype
Add some diagnostics related to lifetime dependence and function types
2024-07-10 14:19:05 -07:00
Kavon Farvardin
233742a565 NCGenerics: enforce same-source conformance rule
SE-427 says the conformance to Copyable must appear in the same source
file as the nominal type.

resolves rdar://131486561
2024-07-10 14:02:10 -07:00
Doug Gregor
2a8b3fcf95 Merge pull request #75093 from DougGregor/unsafe-inherit-executor-vs-pound-isolation
Ensure that a `@_unsafeInheritExecutor` function does not depend on `#isolation`
2024-07-10 11:05:37 -07:00