forked from swiftlang/swift
-
Notifications
You must be signed in to change notification settings - Fork 30
[pull] swiftwasm from main #4371
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
For ParamDecl instances, the value of this property is not just a function of the introducer (let/var which is a poorly-defined concept for parameters), it's a function of the specifier (inout/__owned/__shared etc). However, computing the specifier also has the side effect of flipping the introducer bits. This appears to be because while the AST uses `isLet` in a syntactic sense "did the user write 'let'?", SIL uses it in a semantic sense "is this property semantically immutable?". These two queries need to be split from one another and the callers migrated. But that is a much larger task for a later time. For now, provide the value of `ParamDecl::isImmutable` to callers since that's the more conservative of the two behaviors. The bug here is that it's possible for `getSpecifier` to *not* be called before `isLet` is called (usually in SIL). This manifested as a test output divergence on the non-asserts bots since the ASTVerifier was always calling getSpecifier, and most engineers do not build without asserts on at their desk. rdar://89237318
…version-min Frontend: Use Swift introduction as the default inlining availability floor instead of ABI stability
…macros-in-back-deploy-funcs Sema: Diagnose use of availability macros in conditional statements in @_backDeploy functions
…ibrary build's arguments. This will prevent issues with incorrect or missing availability checking in inlinable function bodies. Resolves rdar://89991736
Enable caller and callee to be printed as inlining runs. The printing is filtered based on -sil-print-function/-sil-print-functions and includes finer-grained info than those do already. The caller before and after each callee is inlined can be printed as well as the callee on its own as it exists when inlining occurs.
…ing non-optional type Fixes a crash during diagnostics by not assuming that optional chain would always produce an optional type, which is not true because in error scenarios it could get assigned an invalid type from context. Resolves: rdar://85516390
…indings-via-conjunctions [SE-0326] Re-enable multi-statement closure inference by default
…able [ClangImporter] Allow @sendable on more params
Leave it to the clients to add it, if necessary. Resolves rdar://90040835
[Concurrency] Fix typo in internal variable name
…t libs The back-deployed Swift Concurrency library should not contain anything based on clocks or durations, which aren't always available in the underlying system. Move that functionality to separate files that are excluded from the back-deployed concurrency libraries. This is a partial step to better approximate the back-deployment libraries. At some point, we'll stop building the back-deployment libraries entirely and instead use the binaries provided by the toolchain. Fixes rdar://89237163.
…-normalization RequirementMachine: Optimize rewrite path normalization
…natureRequirements()
Stabilize VarDecl::isLet for ParamDecls
SE-0343 is approved so it's time to pull the feature out from behind the experimental feature flag. This patch pulls it out and deprecates passing the flag to the frontend so that we can pull it out entirely eventually.
[cxx-interop][docs] add a C++ interoperability status document
[ChangeLog] Fix entry typo
Recommit: [cxx-interop] start to emitting a unified header file for a Swift module
[RemoteMirror][swift-inspect] Decode locks in priority-escalation concurrency runtime.
Allow round-tripping access to global variables. Previously, AccessedStorage asserted that global variables were always associated with a VarDecl. This was to ensure that AccessEnforcmentWMO always recognized the global. Failing to recognize access to a global will cause a miscompile. SILGlobalVariable now has all the information needed by SIL. Particularly, the 'isLet' flag. Simply replace VarDecl with SILGlobalVariable in AccessEnforcmentWMO to eliminate the need for the assert.
…back-deploy-attr Parse: Require a "before: " label in @_backDeploy attribute
…enericType These are stealth generic typealiases and should not participate in the rewrite system.
…n-tests RequirementMachine: A couple of regression tests
…seAmbiguity [ConstraintSystem] Augment `diagnoseAmbiguity` to handle non-expression anchors
The GSB sometimes emits redundant same-type requirements here. Only checking for a prefix would still trigger false positives, so relax it all the way to only consider conformance requirements, which are the important ones from an ABI standpoint.
Update cast feasibility analysis to take parameterized protocols into account. The cast classifier was used to being able to essentially just run `conformsToProtocol` on the existential type, but for parameterized protocol types this will ignore the extra requirements imposed by the argument clause. For now, route everything through the runtime.
…ic-protocol-typealias RequirementMachine: Don't consider protocol typealiases with UnboundGenericType
…clAndTypePrinter This will allow us to use type mappings in the C ABI function printer.
[Docs] Fix dead link to the C++ Interop manifesto
…l-completions [CodeCompletion] Migrate expression completions to solver-based
Conservative Dynamic Casts to/from Parameterized Protocols
…check-more GSB: Relax verify check some more in RequirementSignatureRequest
Disable test while we investigte
Fix an AccessedStorage assert for SIL global variables.
…-can-cause-a-conflict Check protocols for selector conflicts
…-fix RequirementMachine: Explicitly specify SmallVector size
…r-fix RequirementMachine: Try harder to preserve sugar
[PrintAsClang] NFC, refactor primitive type mapping logic out from De…
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 : )