Skip to content

Conversation

pull[bot]
Copy link

@pull pull bot commented Jul 13, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

WANGJIEKE and others added 30 commits June 30, 2022 22:41
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
[IRGen] Look through opaque types for protocol witness table lazy access function.
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
slavapestov and others added 13 commits July 12, 2022 09:28
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`
egorzhdan and others added 3 commits July 13, 2022 10:42
…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
@kateinoigakukun kateinoigakukun merged commit 8dfef80 into swiftwasm Jul 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.