Commit Graph

3253 Commits

Author SHA1 Message Date
Nate Cook
c8c035ec32 [6.2][stdlib] Allow a default for optional interpolations (#81360)
Cherry-pick of #80547 for the 6.2 release branch.

---

Explanation: This cherry picks the implementation of SE-0477 to add a
string interpolation method with a `default:` parameter for optional
interpolation values.
Main Branch PR: https://github.com/swiftlang/swift/pull/80547
Risk: Low.
Reviewed By: @stephentyrone 
Resolves: rdar://150865613
Testing: New tests for the string interpolations and fix-its.
2025-05-09 12:10:58 -05:00
Stephen Canon
88e29fafc9 [6.2] Add static .nanoseconds(_: Double) to Duration (#81210) (#81236)
SE-0329 defines the following static factory methods:
```
public static func seconds<T: BinaryInteger>(_ seconds: T) -> Duration
public static func seconds(_ seconds: Double) -> Duration
public static func milliseconds<T: BinaryInteger>(_ milliseconds: T) -> Duration
public static func milliseconds(_ milliseconds: Double) -> Duration
public static func microseconds<T: BinaryInteger>(_ microseconds: T) -> Duration
public static func microseconds(_ microseconds: Double) -> Duration
public static func nanoseconds<T: BinaryInteger>(_ value: T) -> Duration
```
For no good reason, the obvious additional method:
```
public static func nanoseconds(_ nanoseconds: Double) -> Duration
```
was omitted. After talking this through with the LSG, we have decided
that this is simply a bug, and we will add this method without formal
evolution review.
2025-05-02 15:17:45 -07:00
Guillaume Lessard
c5acba54fa Merge pull request #80777 from glessard/rdar138440979-MutableSpan-mutableBytes
[6.2, SE-0467] add mutableBytes to MutableSpan
2025-04-30 09:46:44 -07:00
Guillaume Lessard
1dda72dceb Merge pull request #81172 from glessard/rdar150282203-false-positive-test-failure-6.2
[6.2, test] eliminate the possibility of a false positive
2025-04-29 18:54:46 -07:00
Guillaume Lessard
b442d3177b Merge pull request #80740 from glessard/rdar137710901-addressable-span-properties
[6.2, SE-0456, -0467] enable span properties for inline-storage types
2025-04-29 12:29:34 -07:00
Guillaume Lessard
53eacb58b1 [test] eliminate the possibility of a false positive 2025-04-29 10:45:35 -07:00
Guillaume Lessard
4e0e2ee427 [test] adjust test values 2025-04-18 10:45:00 -07:00
Guillaume Lessard
637f0279ad [test] remove an unnecessary feature flag 2025-04-18 10:45:00 -07:00
Guillaume Lessard
4ae1ad744d Revert "[temporary] disable small-string support"
This reverts commit ea44ff9fc9.
2025-04-18 10:44:59 -07:00
Michael Ilseman
393c24ddd7 UTF8Span (#78531) (#80890)
Add support for UTF8Span

Also, refactor validation and grapheme breaking
2025-04-18 10:01:15 -04:00
Guillaume Lessard
e618f79691 [test] MutableSpan.mutableBytes property 2025-04-10 10:31:05 -07:00
Guillaume Lessard
f931d296a2 [stdlib] add InlineArray.mutableSpan 2025-04-09 09:56:06 -07:00
Guillaume Lessard
b90a6fcb41 [stdlib] add CollectionOfOne.mutableSpan 2025-04-09 09:56:06 -07:00
Mike Ash
454dae17aa [6.2][Test] Correctly gate new VarArgs test on new runtime.
The empty-arguments test fails when run against an older runtime, so don't test it there.

I tried to do this before, but got the condition backwards.

rdar://146839898
(cherry picked from commit b2f1b44b95)
2025-04-07 14:54:41 -04:00
Guillaume Lessard
8e5506e0b2 Revert "[temporary] disable spans over inline elements"
This reverts commit 7b035936e4.
2025-04-04 14:50:51 -07:00
Guillaume Lessard
aedb869c69 Merge pull request #80116 from glessard/rdar137710901-utf8view-span-notsmol
[SE-0456] Span properties over utf8 views
2025-04-03 01:02:14 -07:00
Guillaume Lessard
c37e1525e8 [test] adjust test values 2025-04-02 17:53:12 -07:00
Guillaume Lessard
0976b61ecc Apply suggestions from code review
Co-authored-by: Karoy Lorentey <klorentey@apple.com>
2025-04-02 17:53:12 -07:00
Guillaume Lessard
ea44ff9fc9 [temporary] disable small-string support 2025-04-02 17:53:12 -07:00
David Smith
f800fdf3d2 Adopt indirect tagged strings (#80425)
Fixes rdar://142991821
2025-04-01 12:53:29 -07:00
Guillaume Lessard
17412a9c64 [test] update bridged string tests
- move to a new file
- create a new `NSString` object for each new test
2025-03-31 12:05:50 -07:00
Guillaume Lessard
03208a693e [test] spans over bridged Substring instances 2025-03-31 12:05:50 -07:00
Guillaume Lessard
9ae58c992b [stdlib] span properties for bridged String instances 2025-03-31 12:05:50 -07:00
Guillaume Lessard
a061425aae [stdlib] add storage property to Substring.UTF8View 2025-03-31 12:05:50 -07:00
Guillaume Lessard
3015bf522d [stdlib] add storage property to String.UTF8View 2025-03-31 12:05:50 -07:00
Doug Gregor
b182c96bd7 Print diagnostic group names by default
Print diagnostic groups as part of the LLVM printer in the same manner as the
Swift one does, always. Make `-print-diagnostic-groups` an inert option, since we
always print diagnostic group names with the `[#GroupName]` syntax.

As part of this, we no longer render the diagnostic group name as part
of the diagnostic *text*, instead leaving it up to the diagnostic
renderer to handle the category appropriately. Update all of the tests
that were depending on `-print-diagnostic-groups` putting it into the
text to instead use the `{{documentation-file=<file name>}}`
diagnostic verification syntax.
2025-03-29 15:40:56 -07:00
Doug Gregor
e88f8995e1 [Diagnostics] Eliminate educational notes in favor of diagnostic groups
We've been converging the implementations of educational notes and
diagnostic groups, where both provide category information in
diagnostics (e.g., `[#StrictMemorySafety]`) and corresponding
short-form documentation files. The diagnostic group model is more
useful in a few ways:

* It provides warnings-as-errors control for warnings in the group
* It is easier to associate a diagnostic with a group with
GROUPED_ERROR/GROUPED_WARNING than it is to have a separate diagnostic
ID -> mapping.
* It is easier to see our progress on diagnostic-group coverage
* It provides an easy name to use for diagnostic purposes.

Collapse the educational-notes infrastructure into diagnostic groups,
migrating all of the existing educational notes into new groups.
Simplify the code paths that dealt with multiple educational notes to
have a single, possibly-missing "category documentation URL", which is
how we're treating this.
2025-03-29 15:40:35 -07:00
Guillaume Lessard
c9b1ab8c42 Merge pull request #79650 from glessard/rdar138440979-MutableSpan
[SE-0467] MutableSpan, with mutableSpan properties to Array, ArraySlice and ContiguousArray.
2025-03-28 17:59:47 -07:00
Karoy Lorentey
5583e6916c Merge pull request #73258 from lorentey/you-cannot-escape-optionals
[stdlib] Generalize some constructs for non-escapable types
2025-03-27 20:02:00 -07:00
Guillaume Lessard
7a160a2dfc [stdlib] de-underscore the extracting() methods 2025-03-27 16:55:05 -07:00
Guillaume Lessard
0c3f084630 [test] Array-family mutableSpan properties 2025-03-27 16:55:05 -07:00
Guillaume Lessard
5a087d1190 [stdlib] annotate unsafe initializers 2025-03-27 13:34:34 -07:00
Guillaume Lessard
51708d0f05 [test] add MutableSpan slicing tests 2025-03-27 13:34:34 -07:00
Guillaume Lessard
e470949083 [test] MutableRawSpan tests 2025-03-27 13:34:33 -07:00
Guillaume Lessard
ad8e91bc77 [test] MutableSpan tests 2025-03-27 13:30:13 -07:00
Alejandro Alonso
241ffafe7f Merge pull request #80245 from Azoy/ia-literal-closure
[SILGen] Use the opaque element type for address in InlineArray literal
2025-03-24 23:21:06 -07:00
Karoy Lorentey
192b404947 [stdlib] Work around ~Escapable breaking Optional.init syntax 2025-03-24 12:16:19 -07:00
Karoy Lorentey
4ff38db976 [test] Adjust for Optional relying on $NonescapableTypes now 2025-03-24 12:15:50 -07:00
Karoy Lorentey
d6bf9345c2 [test][stdlib] Spin tests for Optional generalizations off into a separate file 2025-03-24 12:15:49 -07:00
Karoy Lorentey
351adc7d4a [stdlib] Enable NonescapableTypes 2025-03-24 12:15:41 -07:00
Karoy Lorentey
9b322e3e8e [stdlib] Optional: Allow non-escapable wrapped types 2025-03-24 12:15:38 -07:00
Alejandro Alonso
bc6c88bfb1 Use the opaque element type for address in InlineArray literal 2025-03-24 10:35:14 -07:00
Guillaume Lessard
c21de062bb Merge pull request #78561 from glessard/rdar137710901-span-properties-prototype
[SE-0456] Span properties (part 1)
2025-03-24 08:47:47 -07:00
Guillaume Lessard
7b035936e4 [temporary] disable spans over inline elements 2025-03-21 17:26:29 -07:00
Guillaume Lessard
31daf5ccaf [test] amend test command 2025-03-21 17:24:45 -07:00
Guillaume Lessard
d4eb4bd896 [test] explicitly skip crash tests for WASI
Explicitly skip `expectCrashLater()` tests for WASI, instead of conditionally excluding them from compilation.

In doing so, restored some tests that were wrongly excluded from the WASI tests suite.
2025-03-21 15:49:00 -07:00
Ben Rimmington
71b975a8c6 [stdlib] Test empty InlineArray literals (#80121) 2025-03-19 15:06:09 -07:00
Ben Rimmington
bbe26880a5 [stdlib] Update InlineArray (2) (#79866)
* Amend doc comments.
* Add `guard` for empty array.
* Add tests for initialization errors.
* Use `Self.` to call static method.
* Use `_checkIndex` in `swapAt` method.
* Wrap overlong lines.
2025-03-18 05:59:15 +00:00
Guillaume Lessard
39ca3dee4d Merge pull request #80003 from glessard/span-gardening
[stdlib] fix `Span`'s `Sendable` conformance
2025-03-13 18:54:42 -07:00
Guillaume Lessard
1125f758a2 [test] sending Spans shouldn’t require copyability 2025-03-13 13:54:18 -07:00