Skip to content

Commit 2c726d9

Browse files
committed
[Parse] Remove 'ParserDiagnostics' experimental feature
Now that we have ParserASTGen mode which includes the swift-syntax parser diagnostics.
1 parent dcb38bc commit 2c726d9

File tree

6 files changed

+33
-16
lines changed

6 files changed

+33
-16
lines changed

include/swift/AST/ASTBridging.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1375,6 +1375,12 @@ BridgedPackExpansionExpr_createParsed(BridgedASTContext cContext,
13751375
BridgedSourceLoc cRepeatLoc,
13761376
BridgedExpr cPatternExpr);
13771377

1378+
SWIFT_NAME("BridgedParenExpr.createParsed(_:leftParenLoc:expr:rightParenLoc:)")
1379+
BridgedParenExpr BridgedParenExpr_createParsed(BridgedASTContext cContext,
1380+
BridgedSourceLoc cLParen,
1381+
BridgedExpr cExpr,
1382+
BridgedSourceLoc cRParen);
1383+
13781384
SWIFT_NAME("BridgedPostfixUnaryExpr.createParsed(_:operator:operand:)")
13791385
BridgedPostfixUnaryExpr
13801386
BridgedPostfixUnaryExpr_createParsed(BridgedASTContext cContext,

include/swift/Basic/Features.def

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -300,11 +300,6 @@ EXPERIMENTAL_FEATURE(ParserRoundTrip, false)
300300
/// Swift parser.
301301
EXPERIMENTAL_FEATURE(ParserValidation, false)
302302

303-
/// Whether to emit diagnostics from the new parser first, and only emit
304-
/// diagnostics from the existing parser when there are none from the new
305-
/// parser.
306-
EXPERIMENTAL_FEATURE(ParserDiagnostics, false)
307-
308303
/// Enables implicit some while also enabling existential `any`
309304
EXPERIMENTAL_FEATURE(ImplicitSome, false)
310305

lib/AST/Bridging/ExprBridging.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,6 +383,14 @@ BridgedRegexLiteralExpr_createParsed(BridgedASTContext cContext,
383383
cRegexText.unbridged());
384384
}
385385

386+
BridgedParenExpr BridgedParenExpr_createParsed(BridgedASTContext cContext,
387+
BridgedSourceLoc cLParen,
388+
BridgedExpr cExpr,
389+
BridgedSourceLoc cRParen) {
390+
ASTContext &context = cContext.unbridged();
391+
return new (context)
392+
ParenExpr(cLParen.unbridged(), cExpr.unbridged(), cRParen.unbridged());
393+
}
386394
BridgedSequenceExpr BridgedSequenceExpr_createParsed(BridgedASTContext cContext,
387395
BridgedArrayRef exprs) {
388396
return SequenceExpr::create(cContext.unbridged(), exprs.unbridged<Expr *>());

lib/ASTGen/Sources/ASTGen/Exprs.swift

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ extension ASTGenVisitor {
172172
case .tryExpr(let node):
173173
return self.generate(tryExpr: node)
174174
case .tupleExpr(let node):
175-
return self.generate(tupleExpr: node).asExpr
175+
return self.generate(tupleExpr: node)
176176
case .typeExpr(let node):
177177
return self.generate(typeExpr: node).asExpr
178178
case .unresolvedAsExpr:
@@ -890,7 +890,19 @@ extension ASTGenVisitor {
890890
}
891891
}
892892

893-
func generate(tupleExpr node: TupleExprSyntax) -> BridgedTupleExpr {
893+
func generate(tupleExpr node: TupleExprSyntax) -> BridgedExpr {
894+
if node.elements.count == 1,
895+
let first = node.elements.first,
896+
first.label == nil,
897+
!first.expression.is(PackExpansionExprSyntax.self) {
898+
return BridgedParenExpr.createParsed(
899+
self.ctx,
900+
leftParenLoc: self.generateSourceLoc(node.leftParen),
901+
expr: self.generate(expr: node.elements.first!.expression),
902+
rightParenLoc: self.generateSourceLoc(node.rightParen)
903+
).asExpr
904+
}
905+
894906
let expressions = node.elements.lazy.map {
895907
self.generate(expr: $0.expression)
896908
}
@@ -912,7 +924,7 @@ extension ASTGenVisitor {
912924
labels: labels.bridgedArray(in: self),
913925
labelLocs: labelLocations.bridgedArray(in: self),
914926
rightParenLoc: self.generateSourceLoc(node.rightParen)
915-
)
927+
).asExpr
916928
}
917929

918930
func generate(typeExpr node: TypeExprSyntax) -> BridgedTypeExpr {

test/ASTGen/diagnostics.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ func testEditorPlaceholder() -> Int {
2828
foo(<#T##x: String##String#>) // expected-error {{editor placeholder in source file}})
2929
return <#T##Int#> // expected-error {{editor placeholder in source file}}
3030
}
31+
32+
_ = [(Int) -> async throws Int]()
33+
// expected-error@-1{{'async throws' must precede '->'}}
34+
// expected-note@-2{{move 'async throws' in front of '->'}}{{15-21=}} {{21-28=}} {{20-21= }} {{12-12=async }} {{12-12=throws }}

test/Parse/new_parser_diagnostics.swift

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)