forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 30
[pull] swiftwasm from main #4692
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
To make this test work, fix an issue in `ConstraintSystem::salvage` where a threshold breach during solving went unnoticed due to exiting on ambiguity before reaching the `isTooComplex` check. Address this by moving the `isTooComplex` check to before we start processing solutions, and stick another one in `findBestSolution` for short-circuiting while we're here.
The use of the SWIFT_INLINE_BITFIELD macros in SILNode were a constant source of confusion and bugs. With this refactoring I tried to simplify the definition of "shared fields" in SILNode, SILValue and SILInstruction classes: * Move `kind`, `locationKindAndFlags` and the 32-bit fields out of the 64-bitfield into their own member variables. This avoids _a lot_ of manual bit position computations. * Now we have two separate "shared fields": an 8-bit field (e.g. for boolean flags) and a 32-bit field (e.g. for indices, which can potentially get large). Both fields can be used independently. Also, they are not "bit fields" per se. Instructions can use the field e.g. as a `bool`, `uint32_t`, or - if multiple flags are to be stored - as a packed bit field. * With these two separate fields, we don't have the need for defining bitfields both in a base class _and_ in a derived value/instruction class. We can get rid of the complex logic which handles such cases. Just keep a check to catch accidental overlaps of fields in base and derived classes. * Still use preprocessor macros for the implementation, but much simpler ones than before. * Add documentation.
…ned with app extensions by replacing "extension" with "appext" since extension usually refers to Swift extension declarations.
…for application extensions on every platform. Previously, watchOS and tvOS application extension platforms were ignored. Resolves rdar://96220196
When this flag is passed, index store data emitted during a build will also contain definitions/references for local symbols.
Diagnose uses of conformances in API when the conformance declaration isn't imported by the local file. This uses the existing logic checking for conformance availability combined with the implicit import check. Report it as a warning until Swift 6 where it will be an error. rdar://96437311
…ess function. When determining the linkage of protocol witness table lazy access functions and their cache variables, look through opaque types to find the underlying decls. rdar://96194366
…text for diagnostic
[IRGen] Look through opaque types for protocol witness table lazy access function.
Add `-index-include-locals` flag.
SIL: simplify the SILNode inline bitfields.
The threading library is being pulled into the compatibility libraries, but in order to do that we need to make sure it gets built with the correct deployment target. (Which means we need a special version for the compatibility libraries.) rdar://96690200
…imization This is a regression from swiftlang#41784. Fixes rdar://problem/93822961.
…return-context [Sema] Track implicit tuple expr use for closure empty return to improve diagnostic location
Add regression tests to close several issues p. 3
…nction Sema: Remove unused isNonGenericTypeAliasType() function
IRGen: Exclude classes defined in generic contexts from fast cast optimization
[Threading] Fix compatibility library deployment target issue.
It needs to return nil in case the callee argument is not really applied by the ApplySite. This fixes a crash in EscapeInfo when handling "escaping-to" effects: If the callee operand of an apply instruction is a `partial_apply` of a `function_ref`, the callee-analysis looks through the `partial_apply` and we get the referenced function as a callee. In this case there are less apply arguments than callee arguments, because the `partial_apply` already "applies" some of the callee arguments. rdar://96830171
…ad of `BridgedDiagnosticFixIt` This removes some of the bridging code and replaces it with C++ calls. rdar://83361087
…ances [Sema] Report exported uses of conformances that are implicitly imported
…ntoClient` decls If opaque result type has availability conditions and is associated with an `@_alwaysInlineIntoClient` declaration, its metadata descriptor has to be emitted into a client module because the body of the inlined function depends on it for the runtime information about the underlying type. Resolves: rdar://82791712
The SIL verifier has identified an issue with the SIL generated for property accessors structured like this: ``` public struct S { @available(macOS, introduced: 12.0) @_backDeploy(before: macOS 13.0) public var x: String { _read { yield "x" } } } ``` The emitted SIL is invalid because the value `%9` is used after `end_apply` may have ended the lifetime of the value: ``` bb1: %8 = function_ref @$s4test1SV1xSSvrTwB : $@yield_once @convention(method) (S) -> @yields @guaranteed String9 (%9, %10) = begin_apply %8(%0) : $@yield_once @convention(method) (S) -> @yields @guaranteed String end_apply %10 yield %9 : $String, resume bb3, unwind bb2 ``` The fix is to move the `end_apply` to the resume and unwind blocks, after the value has been yielded to the caller. Resolves rdar://96879247
[IRGen] Emit opaque type descriptors into client for `@_alwaysInlineI…
AST: Ensure `isPlatformActiveForTarget()` returns the correct result for application extensions on every platform
This creates a lot of noise in failed builds where the error gets hidden in long command lines. Folks can pass `-v` manually if they want this locally
…e-use-after-free SILGen: Fix potential use-after-free in `@_backDeploy` coroutines
Swift SIL: fix `ApplySite.callerArgIndex`
…c-fixit [cxx-interop][SwiftCompilerSources] Use `DiagnosticInfo::FixIt` instead of `BridgedDiagnosticFixIt`
…-noop [Diagnostics] Do not emit rename fix-it if call function has the same name
…enum-impl [Interop][SwiftToCxx] Implement enum case switching
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )