Commit Graph

28382 Commits

Author SHA1 Message Date
Rintaro Ishizaki
aa456d19f1 [ASTGen] Rename 'swift/Bridging/Macros.h' to swift/Bridging/MacroEvaluation.h 2024-10-09 15:19:25 -07:00
Rintaro Ishizaki
7dad37ac58 [ASTGen] Rename 'swiftMacros' module to 'swiftMacroEvaluation'
'swiftMacros' is confusing with 'SwiftMacros' which is the standard
libary macro plugin.

rdar://137448282
2024-10-09 15:15:59 -07:00
Meghana Gupta
4df55a12cd Merge pull request #76834 from meg-gupta/lifetimedepmultiple
Replace dependsOn with @lifetime
2024-10-09 10:17:43 -07:00
Slava Pestov
cdc2145ad5 Sema: Use existing utility function 2024-10-09 11:48:08 -04:00
Slava Pestov
6c2e4ecb80 Sema: Rename restoreCurrentScore() to updateScoreAfterConjunction() 2024-10-09 11:48:07 -04:00
Slava Pestov
38fe0696a4 Sema: Factor out clearScore() and replayScore() 2024-10-09 11:48:07 -04:00
Slava Pestov
c8db9f55e6 Sema: Remove last heap allocation of Scope 2024-10-09 11:48:07 -04:00
Slava Pestov
24e5a828e6 Merge pull request #76921 from slavapestov/cstrail-part-5
Sema: Finish hollowing out SolverScope
2024-10-09 08:04:07 -04:00
Gabor Horvath
cf3b333eb6 [cxx-interop] Add flag to assume C++ types are resilient
Currently, C++ types cannot appear in resilient interfaces. There are
some cases where this is overly restrictive. We plan to improve the
logic to detect what types should not appear on resilient moduel
boundaries. In the meantime, this PR introduces a flag to disable these
errors. Users relying on this flag are on their own, this should only be
a temporary workaround until we land further improvements to this
diagnostic.

rdar://137457118
2024-10-09 11:47:10 +01:00
Chris Miles
31dc11ced1 Merge pull request #76796 from swiftlang/eng/chrismiles/fix-print-instrumenting-for-language-mode-6
Fix instrumenting print and debugPrint for Swift 6.
2024-10-08 16:50:14 -07:00
Doug Gregor
bba1432732 Merge pull request #76364 from DougGregor/apply-macro-to-imported
Allow attached macros to be applied to imported C declarations
2024-10-08 15:26:54 -07:00
Meghana Gupta
6710d501b1 Fix SIL parsing of lifetime dependence in parameter position 2024-10-08 15:10:59 -07:00
Slava Pestov
e9add92334 Sema: Remove some unnecessary heap allocation of SolverScopes 2024-10-08 17:23:38 -04:00
Slava Pestov
0b85ce6f00 Sema: Remove SolverScope::numFixes 2024-10-08 16:57:49 -04:00
Slava Pestov
bdab82a192 Sema: Use xmacros to clean up more duplication in CSTrail.{cpp,h} 2024-10-08 16:50:49 -04:00
Slava Pestov
5fdc1a81b8 Sema: Record retired constraints in the trail 2024-10-08 16:39:34 -04:00
Slava Pestov
fc7068ee40 Merge pull request #76910 from slavapestov/open-type-perf-fix
Fix performance regression in ConstraintSystem::openType()
2024-10-08 16:17:58 -04:00
Slava Pestov
90175400d2 Sema: Record generated constraints in the trail 2024-10-08 16:17:28 -04:00
Slava Pestov
1e2d4fbc59 Sema: Record score increases in the trail 2024-10-08 16:16:31 -04:00
Slava Pestov
877c60e3d0 Sema: Rename applySolution() to replaySolution() 2024-10-08 16:16:01 -04:00
Slava Pestov
1323953219 Sema: Try not to make a negative impact 2024-10-08 16:14:05 -04:00
Doug Gregor
5fb8b5f7ad Use the pretty-printed declaration for applying macros to imported decls 2024-10-08 11:12:54 -07:00
Doug Gregor
e35472c34c Create and register SourceFiles for pretty-printed buffers
This will allow the macro system to find them.
2024-10-08 11:12:54 -07:00
Doug Gregor
cdcabd05bd Allow attached macros to be applied to imported C declarations
The Clang importer maps arbitrary attributes spelled with `swift_attr("...")`
over to Swift attributes, using the Swift parser to process those attributes.
Extend this mechanism to allow `swift_attr` to refer to an attached macro,
expanding that macro as needed.

When a macro is applied to an imported declaration, that declaration is
pretty-printed (from the C++ AST) to provide to the macro implementation.
There are a few games we need to place to resolve the macro, and a few more
to lazily perform pretty-printing and adjust source locations to get the
right information to the macro, but this demonstrates that we could
take this path.

As an example, we use this mechanism to add an `async` version of a C
function that delivers its result via completion handler, using the
`@AddAsync` example macro implementation from the swift-syntax
repository.
2024-10-08 11:12:50 -07:00
Steven Wu
5fa12d31ae Merge pull request #76738 from cachemeifyoucan/eng/PR-136787368
[CAS] Use IncludeTreeFileList instead of full CASFS for caching
2024-10-08 10:42:24 -07:00
Slava Pestov
b0303bb5a1 Sema: Restore old behavior in ConstraintSystem::openType()
My change to preserve type sugar in type transforms introduced a
performance regression here, because openType() is called for
every disjunction choice.

My hope is to optimize the TypeAliasType representation and remove
this at some point, but for now, let's just restore the old
desugaring behavior in this case.
2024-10-08 11:53:45 -04:00
Slava Pestov
e3402b1304 Merge pull request #76879 from slavapestov/cstrail-part-3
Sema: Continue to hollow out SolverScope
2024-10-07 21:53:50 -04:00
Slava Pestov
e47f9966ad Sema: ConstraintSystem::openType() uses TypeTransform 2024-10-07 17:46:40 -04:00
Slava Pestov
4a82d384b7 Sema: Record synthesized conformances in the trail 2024-10-07 16:50:49 -04:00
Slava Pestov
12eb7cec26 Sema: Record implicit callAsFunction() roots in the trail 2024-10-07 16:50:49 -04:00
Slava Pestov
72a60728fc Sema: Record argument lists in the trail 2024-10-07 16:50:49 -04:00
Slava Pestov
f2412f318e Sema: Record key path expressions in the trail 2024-10-07 16:50:48 -04:00
Slava Pestov
881a0100b2 Sema: Record implicit value conversions in the trail 2024-10-07 16:50:48 -04:00
Slava Pestov
ac17292dfe Sema: Record preconcurrency closures in the trail 2024-10-07 16:50:48 -04:00
Slava Pestov
b961a7ec51 Sema: Record isolated parameters in the trail 2024-10-07 16:50:48 -04:00
Slava Pestov
1d177d0187 Sema: Record expression patterns in the trail 2024-10-07 16:50:48 -04:00
Slava Pestov
500acd122a Sema: Record potential throw sites in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
39d0eab275 Sema: Record case label items in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
8c8a385a4a Sema: Record SyntacticElementTargetKeys in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
516277f0fd Sema: Record contextual types in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
666361adf2 Sema: Record implied results in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
1d18cd07cf Sema: Record closure types in the trail 2024-10-07 16:50:47 -04:00
Slava Pestov
43a4ac9216 Sema: Record resolved overloads in the trail 2024-10-07 16:50:46 -04:00
Slava Pestov
892e79cd70 Sema: Use an xmacro to clean up some duplication in CSTrail.cpp 2024-10-07 16:50:46 -04:00
Slava Pestov
9201a37519 Sema: Strenghten invariants in SolverTrail::Change::undo() 2024-10-07 16:50:46 -04:00
Slava Pestov
434b02166e Sema: LLVM_DEBUG for CSBindings.cpp 2024-10-07 16:50:46 -04:00
Slava Pestov
6862955244 Sema: Record applied property wrappers in the trail 2024-10-07 16:50:46 -04:00
Slava Pestov
c7edc3494e Sema: Record result builder transforms in the trail 2024-10-07 16:50:45 -04:00
Slava Pestov
64293ece51 Sema: Push reconciliation down into applySolution() to strengthen invariants
Now, we assert if you try to record the same change twice in any
other code path.
2024-10-07 16:50:45 -04:00
Slava Pestov
61575d9913 Sema: Remove a few isRecordingChanges() checks to tighten invariants
In these places we now assert if we attempt to record a change
during an active undo.
2024-10-07 16:50:45 -04:00