Skip to content

Commit 60b01b7

Browse files
authored
Merge pull request #2978 from DougGregor/se-0458-enable-by-default
[SE-0458] Enable `unsafe` expressions and for..in effects everywhere
2 parents da8362a + 7262c1a commit 60b01b7

File tree

16 files changed

+18
-47
lines changed

16 files changed

+18
-47
lines changed

CodeGeneration/Sources/SyntaxSupport/ExprNodes.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ public let EXPR_NODES: [Node] = [
183183
Node(
184184
kind: .unsafeExpr,
185185
base: .expr,
186-
experimentalFeature: .unsafeExpression,
187186
nameForDiagnostics: "'unsafe' expression",
188187
children: [
189188
Child(

CodeGeneration/Sources/SyntaxSupport/StmtNodes.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,6 @@ public let STMT_NODES: [Node] = [
287287
Child(
288288
name: "unsafeKeyword",
289289
kind: .token(choices: [.keyword(.unsafe)]),
290-
experimentalFeature: .unsafeExpression,
291290
isOptional: true
292291
),
293292
Child(

Sources/SwiftParser/Expressions.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,10 @@ extension Parser {
445445
)
446446
)
447447
case (.unsafe, let handle)?:
448+
if self.peek().isAtStartOfLine || self.peek(isAt: .rightParen) {
449+
break EXPR_PREFIX
450+
}
451+
448452
let unsafeTok = self.eat(handle)
449453
let sub = self.parseSequenceExpressionElement(
450454
flavor: flavor,

Sources/SwiftParser/TokenSpecSet.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -714,7 +714,7 @@ enum ExpressionModifierKeyword: TokenSpecSet {
714714
case TokenSpec(.repeat): self = .repeat
715715
case TokenSpec(.each): self = .each
716716
case TokenSpec(.any): self = .any
717-
case TokenSpec(.unsafe) where experimentalFeatures.contains(.unsafeExpression): self = .unsafe
717+
case TokenSpec(.unsafe): self = .unsafe
718718
default: return nil
719719
}
720720
}

Sources/SwiftSyntax/Documentation.docc/generated/SwiftSyntax.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ allows Swift tools to parse, inspect, generate, and transform Swift source code.
135135
- <doc:SwiftSyntax/UnresolvedAsExprSyntax>
136136
- <doc:SwiftSyntax/UnresolvedIsExprSyntax>
137137
- <doc:SwiftSyntax/UnresolvedTernaryExprSyntax>
138+
- <doc:SwiftSyntax/UnsafeExprSyntax>
138139

139140
### Patterns
140141

Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2294,12 +2294,10 @@ open class SyntaxAnyVisitor: SyntaxVisitor {
22942294
visitAnyPost(node._syntaxNode)
22952295
}
22962296

2297-
@_spi(ExperimentalLanguageFeatures)
22982297
override open func visit(_ node: UnsafeExprSyntax) -> SyntaxVisitorContinueKind {
22992298
return visitAny(node._syntaxNode)
23002299
}
23012300

2302-
@_spi(ExperimentalLanguageFeatures)
23032301
override open func visitPost(_ node: UnsafeExprSyntax) {
23042302
visitAnyPost(node._syntaxNode)
23052303
}

Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,7 @@ extension Syntax {
506506
/// - ``UnresolvedAsExprSyntax``
507507
/// - ``UnresolvedIsExprSyntax``
508508
/// - ``UnresolvedTernaryExprSyntax``
509+
/// - ``UnsafeExprSyntax``
509510
public struct ExprSyntax: ExprSyntaxProtocol, SyntaxHashable {
510511
public let _syntaxNode: Syntax
511512

Sources/SwiftSyntax/generated/SyntaxEnum.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,6 @@ public enum SyntaxEnum: Sendable {
303303
case unresolvedAsExpr(UnresolvedAsExprSyntax)
304304
case unresolvedIsExpr(UnresolvedIsExprSyntax)
305305
case unresolvedTernaryExpr(UnresolvedTernaryExprSyntax)
306-
@_spi(ExperimentalLanguageFeatures)
307306
case unsafeExpr(UnsafeExprSyntax)
308307
case valueBindingPattern(ValueBindingPatternSyntax)
309308
case variableDecl(VariableDeclSyntax)
@@ -1051,7 +1050,6 @@ public enum ExprSyntaxEnum {
10511050
case unresolvedAsExpr(UnresolvedAsExprSyntax)
10521051
case unresolvedIsExpr(UnresolvedIsExprSyntax)
10531052
case unresolvedTernaryExpr(UnresolvedTernaryExprSyntax)
1054-
@_spi(ExperimentalLanguageFeatures)
10551053
case unsafeExpr(UnsafeExprSyntax)
10561054
}
10571055

Sources/SwiftSyntax/generated/SyntaxKind.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,6 @@ public enum SyntaxKind: Sendable {
303303
case unresolvedAsExpr
304304
case unresolvedIsExpr
305305
case unresolvedTernaryExpr
306-
@_spi(ExperimentalLanguageFeatures)
307306
case unsafeExpr
308307
case valueBindingPattern
309308
case variableDecl

Sources/SwiftSyntax/generated/SyntaxRewriter.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2048,10 +2048,9 @@ open class SyntaxRewriter {
20482048
return ExprSyntax(UnresolvedTernaryExprSyntax(unsafeCasting: visitChildren(node._syntaxNode)))
20492049
}
20502050

2051-
/// Visit a `UnsafeExprSyntax`.
2051+
/// Visit a ``UnsafeExprSyntax``.
20522052
/// - Parameter node: the node that is being visited
20532053
/// - Returns: the rewritten node
2054-
@_spi(ExperimentalLanguageFeatures)
20552054
open func visit(_ node: UnsafeExprSyntax) -> ExprSyntax {
20562055
return ExprSyntax(UnsafeExprSyntax(unsafeCasting: visitChildren(node._syntaxNode)))
20572056
}

0 commit comments

Comments
 (0)