Commit Graph

1935 Commits

Author SHA1 Message Date
Pavel Yaskevich
5d77f3ca01 [Frontend] NFC: Remove KeyPathWithStaticMembers feature flag
This is a temporary way to land SE-0438 changes without disrupting
anything else.
2024-10-30 10:53:42 -07:00
Allan Shortlidge
df6b339c44 Sema: Diagnose accessor exportability even if storage is unavailable.
It is invalid to reference an internal setter from a fragile function
regardless of whether the storage is unavailable. The swiftinterface generated
for this code would not typecheck since the setter is not known to exist
outside the module.
2024-10-24 11:38:41 -07:00
Allan Shortlidge
ac98262798 Sema: Adopt AvailabilityContext in ExportContext.
Query for an AvailabilityContext instead of computing availability with a
DeclContext traversal when forming an ExportContext.
2024-10-22 08:39:30 -07:00
Allan Shortlidge
cb578172ea Tests: Remove -disable-availability-checking in more tests that use concurrency.
Use the `%target-swift-5.1-abi-triple` substitution to compile the tests for
deployment to the minimum OS versions required for use of _Concurrency APIs,
instead of disabling availability checking.
2024-10-19 12:35:20 -07:00
Meghana Gupta
008431c3b4 Update some dependsOn tests to @lifetime 2024-10-08 15:12:13 -07:00
Konrad `ktoso` Malawski
dea3b59331 Merge pull request #76250 from ktoso/wip-experimental-isolated-deinit 2024-10-03 17:19:10 +09:00
Doug Gregor
cd6864a5f3 Merge pull request #76454 from DmT021/wp/deprecated-diagnostic-groups
[Diagnostics] Add new groups to the 'deprecated' diagnostic group
2024-09-30 09:05:16 -07:00
Pavel Yaskevich
3803e91b5d Merge pull request #76776 from amritpan/keyPathWithStaticMembers-assert
[Test] Mark additional tests with REQUIRES: asserts for KeyPathWithStaticMembers flag.
2024-09-30 08:46:42 -07:00
nate-chandler
ba8f8ea282 Merge pull request #76526 from nate-chandler/general-coro/20240906/1
[CoroutineAccessors] Initial framing.
2024-09-30 07:04:04 -07:00
Amritpan Kaur
2cb1088d08 [Test] Mark tests REQUIRES: asserts for KeyPathWithStaticMembers flag. 2024-09-29 23:06:18 -07:00
Konrad `ktoso` Malawski
45b97f146b Merge branch 'main' into wip-experimental-isolated-deinit 2024-09-30 13:47:39 +09:00
Amritpan Kaur
8ebc928649 Guard feature behind experimental flag. 2024-09-27 22:42:04 -07:00
Amritpan Kaur
2c641a8e50 [Tests] Update Sema tests. 2024-09-27 22:42:04 -07:00
Mykola Pokhylets
08c839330d Add experimental flag to 2 more tests 2024-09-26 16:44:14 +01:00
Nate Chandler
d06e6a3c51 [Sema] Improved dynamic replacement diagnostic.
Make use of swift::getAccessorNameForDiagnostic instead of having a
parallel list of accessor names in DiagnosticsSema.def.
2024-09-26 08:27:21 -07:00
Dmitrii Galimzianov
aa5e10f8d2 [Diagnostics] DeprecatedDeclaration group 2024-09-25 23:18:25 +02:00
Hamish Knight
17837eaade [test] Remove unnecessary -c
This crashes the new driver (https://github.com/swiftlang/swift-driver/issues/1570).
2024-09-22 21:15:45 +01:00
Konrad `ktoso` Malawski
7d1ce789ad Revert "Revert "Isolated synchronous deinit"" 2024-09-17 17:35:38 +09:00
Hamish Knight
2d6a38b2cd [CS] Call checkParameterList for single-expr closures
Previously we would only call this in the delayed
application logic, which is currently run for
multi-statement closures. I'm planning on
removing that code path, which uncovered this
issue.
2024-09-14 15:37:21 +01:00
Allan Shortlidge
5f31a2bc2b Tests: Rename availability test for clarity. 2024-09-11 16:42:47 -07:00
Doug Gregor
b272a05ea9 Merge pull request #76363 from DmT021/wp/print-diagnostic-groups
[Diagnostics] Add -print-diagnostic-groups flag
2024-09-11 13:04:07 -07:00
Dmitrii Galimzianov
a8b71ea97f Add -print-diagnostic-groups flag
This change adds the `-print-diagnostic-groups` flag as described by SE-0443.
2024-09-11 13:34:42 +02:00
Pavel Yaskevich
55b8d9538d [CSSimplify] Rework how/when mismatches between optional types are fixed
- Don't attempt to insert fixes if there are restrictions present, they'd inform the failures.

  Inserting fixes too early doesn't help the solver because restriction matching logic would
  record the same fixes.

- Adjust impact of the fixes.

  Optional conversions shouldn't impact the score in any way because
  they are not the source of the issue.

- Look through one level of optional when failure is related to optional injection.

  The diagnostic is going to be about underlying type, so there is no reason to print
  optional on right-hand side.
2024-09-10 10:35:05 -07:00
Alejandro Alonso
4a7fb6f5fe Some test fixes 2024-09-04 15:13:48 -07:00
Alex Hoppen
c5aa49ba64 Revert "Isolated synchronous deinit" 2024-09-03 18:11:26 -07:00
Konrad `ktoso` Malawski
c55ad6fa88 Merge branch 'main' into mpokhylets/isolated-deinit 2024-09-02 23:16:17 +09:00
Ben Langmuir
d94bce7355 Merge pull request #76027 from benlangmuir/explicit-targets
[test] Add explicit targets to tests depending on the default
2024-08-29 14:25:05 -07:00
Ben Langmuir
7d11d43d6d [test] Add explicit targets to tests depending on the default
Add specific deployment target versions to some tests that need to test
10.x-specific behaviours and are currently depending on the default
deployment target.

Certain tests were only checking either the stable or unstable ABI
depending on the platform the test was running. In those cases I doubled
up the checks so that we would test both cases on platforms that
supported it. This might use a bit of extra time on targets that only
support the stable ABI, but it seemed worth it for the additional
coverage in CI.
2024-08-29 07:55:14 -07:00
Mykola Pokhylets
e0ad7bde82 Merge branch 'main' into mpokhylets/isolated-deinit
# Conflicts:
#	include/swift/Basic/Features.def
#	lib/AST/ASTPrinter.cpp
#	lib/AST/FeatureSet.cpp
2024-08-29 11:28:43 +02:00
Ben Langmuir
9943ef0eed [test] Move test/attr/attr_availability_transitive_osx_appext.swift to fake version
Keep this test independent of the default deployment target by using a
larger version number.
2024-08-28 13:52:10 -07:00
Ian Anderson
8eb583c04c Merge pull request #76073 from ian-twilightcoder/unknown-platform-attr
[Sema] Allow unrecognized platforms  in @backDeployed and @_originallyDefinedIn
2024-08-27 18:27:40 -07:00
Ian Anderson
eb11ad99a1 [Sema] Allow unrecognized platforms in @backDeployed and @_originallyDefinedIn
Don't emit attr_availability_need_platform_version for a @backDeployed or @_originallyDefinedIn that have a single unrecognized platform name.
2024-08-27 14:02:37 -07:00
Allan Shortlidge
06aeddeb0c Merge pull request #76071 from tshortli/require-explicit-availability-protocol-extension
Sema: Fix required availability diagnostics for protocol extensions
2024-08-26 09:28:32 -07:00
Doug Gregor
e4cf74abfa Update expected diagnostics to match what SwiftIfConfig produces
For the most part, the differences between the diagnostics introduced
by the C++ implementation and the new SwiftIfConfig implementation are
cosmetic, so these are only wording changes.

The one major difference is that we've dropped the warnings about
potential typos in os/arch checks. For example, if one writes:

    #if os(bisionos)
    // ...
    #endif

The C++ implementation will produce a warning "unknown operating system
for build configuration 'os'" with a note asking "did you mean
'visionOS'"? These warnings rely on a static list of known operating
systems and architectures, which is somewhat unfortunate: the whole
point of these checks is that the Swift you're dealing with might not
have support for those operating systems/architectures, so while these
warnings can be helpful in a few cases, they also cause false
positives when porting. Therefore, I chose not to bring them forward.
2024-08-24 21:31:41 -07:00
Allan Shortlidge
16ac3553c9 Sema: Fix required availability diagnostics for protocol extensions.
Extending a protocol cannot introduce new conformances to other protocols, so
skip checking for associated conformances to public protocols when diagnosing
required availability on such an extension.

Resolves rdar://133873836.
2024-08-23 22:23:39 -07:00
Ben Langmuir
44d3f3c5fc Merge pull request #76023 from benlangmuir/add-more-years-of-independence
[test] Move availability tests to later fake OS versions
2024-08-22 08:46:51 -07:00
Ben Langmuir
fd1875dcfb [test] Move availability tests to later fake OS versions
10.50 was once greater than any real macOS version, but now it compares
less than real released versions, which makes these tests depend on the
deployment target unnecessarily. Update these tests to use even larger
numbers to hopefully keep them independent a little longer.
2024-08-21 11:38:54 -07:00
Ben Langmuir
c957826c28 [sema] Fix availability narrowing fixits for macOS >= 11
For macOS >= 11 the fixit for narrowing an availability check rather
than adding a new one should fire if the major version is the same, like
on other platforms.
2024-08-21 10:22:07 -07:00
Allan Shortlidge
6d1a6c5f20 Sema: Avoid application extension platforms in if #available fix-its.
When the type checker noticed that a declaration with application extension
availability markup was used somewhere that it would be potentially unavailable
at runtime, the fix-it emitted by the compiler would check for the application
extension platform's availability:

```
if #available(macOSApplicationExtension 12, *) {
  // Use potentially unavailable declarations
}
```

This runtime check won't work. The fix-it should just suggest checking the
availability of the base, non-extension platform instead.

Resolves rdar://125860317.
2024-08-20 17:25:36 -07:00
Alex Hoppen
514f7bc92d Merge pull request #75793 from ahoppen/no-editor-mode
Remove `DiagnosticsEditorMode`
2024-08-16 21:25:54 -07:00
iMostfa
80a8a0746b Replace uses of the word "accessor" in diagnostics with user-facing terminology (#74462)
In this PR i worked on replacing the word accessor in diagnostics with more user-facing terminologies like setter, getter, didSet Observer, and members based on the context of the message.

in some messages i didn't need to pass DescriptiveDeclKind instead i just changed the text copy itself.

i also updated tests, so you might find it easier to check my changes this way.

Please let me know if there's something i should've done in a better way, and request changes if needed. !

i can squash my commits after reviewing getting the PR Reviewed, just to make it easier to be checked commit by commit

Resolves #55887
2024-08-16 16:29:30 -07:00
Mykola Pokhylets
50b1313175 Merge branch 'main' into mpokhylets/isolated-deinit
# Conflicts:
#	lib/SILGen/SILGenDistributed.cpp
#	lib/Sema/TypeCheckConcurrency.cpp
2024-08-15 16:58:43 +02:00
Alex Hoppen
577727ad55 Remove DiagnosticsEditorMode
Migrate the last diagnostic to be independent of `DiagnosticEditorMode` and remove that option.

rdar://133111163
2024-08-14 11:24:31 -07:00
Alex Hoppen
66104395d7 [Sema/SourceKit] Emit same diagnostics for missing protocol requirements on the command line and in SourceKit
Some editors use diagnostics from SourceKit to replace build issues. This causes issues if the diagnostics from SourceKit are formatted differently than the build issues. Make sure they are rendered the same way, removing most uses of `DiagnosticsEditorMode`.

To do so, always emit the `add stubs for conformance` note (which previously was only emitted in editor mode) and remove all `; add <something>` suffixes from notes that state which requirements are missing.

rdar://129283608
2024-08-07 14:01:30 -07:00
Joe Groff
044d8c9f56 Merge pull request #75378 from jckarter/warn-on-runtime-function-symbol-references
Stage in a warning when trying to access symbols used by the compiler.
2024-07-24 08:18:57 -07:00
Allan Shortlidge
ecc1a2de2c Tests: Drop maccatalyst_support requirement for several tests.
As much as possible, we should avoid using `REQUIRES: maccatalyst_support`
since tests restricted this way are not run in PR tests. Many tests that
exercise macCatalyst behaviors can be run in a macOS configuration, without
full macCatalyst standard library support.

Also, adopt `%target-cpu` lit substitution where appropriate to avoid needless
standard library module rebuilds when running tests locally.
2024-07-19 17:02:28 -07:00
Joe Groff
8bc5a1f1fc Stage in a warning when trying to access symbols used by the compiler.
Attempting to bypass the compiler and access runtime functions directly has
a long history of breaking in hard-to-predict ways, and there's usually a better
way. Put up a warning to try to flush out misuses of runtime functions to see
if we can turn this into an error.
2024-07-19 16:55:11 -07:00
Pavel Yaskevich
59ec789768 [CSApply] Allow @dynamicMemberLookup subscripts to take sendable key path
The changes to support `& Sendable` composition with key path
types adjusted `buildKeyPathDynamicMemberArgExpr` to support
that but the use-site erroneously still cast index type or
`BoundGenericType` as before.

Resolves: https://github.com/swiftlang/swift/issues/75244
Resolves: rdar://131768785
2024-07-16 00:20:38 -07:00
Hamish Knight
9d2af57a34 Merge pull request #75239 from hamishknight/patte-diag
[CS] A couple of minor diagnostic improvements
2024-07-15 19:16:41 +01:00
Hamish Knight
cd1b6eddc2 [CS] Fix logic determining parens for non-optional weak diagnostic
We were previously checking the optional type,
which would never say that parens were needed.
Unwrap the type before checking, ensuring we
correctly handle e.g protocol compositions.
2024-07-15 12:47:50 +01:00