From 1fe2d2d45f684160f711be5727b9258641cbc3fc Mon Sep 17 00:00:00 2001 From: Alex Hoppen Date: Sun, 12 Feb 2023 09:07:25 +0100 Subject: [PATCH] [ASTGen] Adjustments because deprecated where clause in generic arguments has been removed in SwiftSyntax --- include/swift/AST/CASTBridging.h | 3 +- lib/AST/CASTBridging.cpp | 26 +++------------ lib/ASTGen/Sources/ASTGen/Generics.swift | 42 +++--------------------- 3 files changed, 9 insertions(+), 62 deletions(-) diff --git a/include/swift/AST/CASTBridging.h b/include/swift/AST/CASTBridging.h index 755e5ca5295f0..37d9897485962 100644 --- a/include/swift/AST/CASTBridging.h +++ b/include/swift/AST/CASTBridging.h @@ -259,8 +259,7 @@ void *NamedOpaqueReturnTypeRepr_create(void *ctx, void *baseTy); void *OpaqueReturnTypeRepr_create(void *ctx, void *opaqueLoc, void *baseTy); void *ExistentialTypeRepr_create(void *ctx, void *anyLoc, void *baseTy); void *GenericParamList_create(void *ctx, void *lAngleLoc, - BridgedArrayRef params, void *_Nullable whereLoc, - BridgedArrayRef reqs, void *rAngleLoc); + BridgedArrayRef params, void *rAngleLoc); void *GenericTypeParamDecl_create(void *ctx, void *declContext, BridgedIdentifier name, void *nameLoc, void *_Nullable ellipsisLoc, long index, diff --git a/lib/AST/CASTBridging.cpp b/lib/AST/CASTBridging.cpp index 5c53ced2040a0..bf571c7c59bd6 100644 --- a/lib/AST/CASTBridging.cpp +++ b/lib/AST/CASTBridging.cpp @@ -548,30 +548,12 @@ void *ExistentialTypeRepr_create(void *ctx, void *anyLoc, void *baseTy) { } void *GenericParamList_create(void *ctx, void *lAngleLoc, - BridgedArrayRef params, void *_Nullable whereLoc, - BridgedArrayRef reqs, void *rAngleLoc) { - ASTContext &Context = *static_cast(ctx); - SmallVector requirements; - for (auto req : getArrayRef(reqs)) { - switch (req.Kind) { - case BridgedRequirementReprKindTypeConstraint: - requirements.push_back(RequirementRepr::getTypeConstraint( - (TypeRepr *)req.FirstType, getSourceLocFromPointer(req.SeparatorLoc), - (TypeRepr *)req.SecondType)); - break; - case BridgedRequirementReprKindSameType: - requirements.push_back(RequirementRepr::getSameType( - (TypeRepr *)req.FirstType, getSourceLocFromPointer(req.SeparatorLoc), - (TypeRepr *)req.SecondType)); - break; - case BridgedRequirementReprKindLayoutConstraint: - llvm_unreachable("cannot handle layout constraints!"); - } - } + BridgedArrayRef params, void *rAngleLoc) { + ASTContext &Context = *static_cast(ctx); return GenericParamList::create(Context, getSourceLocFromPointer(lAngleLoc), getArrayRef(params), - getSourceLocFromPointer(whereLoc), - requirements, + /*whereLoc=*/SourceLoc(), + /*requirements=*/{}, getSourceLocFromPointer(rAngleLoc)); } diff --git a/lib/ASTGen/Sources/ASTGen/Generics.swift b/lib/ASTGen/Sources/ASTGen/Generics.swift index 499bc9e033b89..2c6d8ba46e0ee 100644 --- a/lib/ASTGen/Sources/ASTGen/Generics.swift +++ b/lib/ASTGen/Sources/ASTGen/Generics.swift @@ -5,13 +5,10 @@ import SwiftSyntax extension ASTGenVisitor { func visit(_ node: GenericParameterClauseSyntax) -> ASTNode { let lAngleLoc = self.base.advanced(by: node.leftAngleBracket.position.utf8Offset).raw - let whereLoc = node.genericWhereClause.map { - self.base.advanced(by: $0.whereKeyword.position.utf8Offset).raw - } let rAngleLoc = self.base.advanced(by: node.rightAngleBracket.position.utf8Offset).raw return .misc( - self.withBridgedParametersAndRequirements(node) { params, reqs in - return GenericParamList_create(self.ctx, lAngleLoc, params, whereLoc, reqs, rAngleLoc) + self.withBridgedParametersAndRequirements(node) { params in + return GenericParamList_create(self.ctx, lAngleLoc, params, rAngleLoc) }) } @@ -33,10 +30,9 @@ extension ASTGenVisitor { extension ASTGenVisitor { private func withBridgedParametersAndRequirements( _ node: GenericParameterClauseSyntax, - action: (BridgedArrayRef, BridgedArrayRef) -> T + action: (BridgedArrayRef) -> T ) -> T { var params = [UnsafeMutableRawPointer]() - var requirements = [BridgedRequirementRepr]() for param in node.genericParameterList { let loweredParameter = self.visit(param).rawValue params.append(loweredParameter) @@ -49,38 +45,8 @@ extension ASTGenVisitor { GenericTypeParamDecl_setInheritedType(self.ctx, loweredParameter, loweredRequirement.rawValue) } - if let nodeRequirements = node.genericWhereClause?.requirementList { - for requirement in nodeRequirements { - switch requirement.body { - case .conformanceRequirement(let conformance): - let firstType = self.visit(conformance.leftTypeIdentifier).rawValue - let separatorLoc = self.base.advanced(by: conformance.colon.position.utf8Offset).raw - let secondType = self.visit(conformance.rightTypeIdentifier).rawValue - requirements.append( - BridgedRequirementRepr( - SeparatorLoc: separatorLoc, - Kind: .typeConstraint, - FirstType: firstType, - SecondType: secondType)) - case .sameTypeRequirement(let sameType): - let firstType = self.visit(sameType.leftTypeIdentifier).rawValue - let separatorLoc = self.base.advanced(by: sameType.equalityToken.position.utf8Offset).raw - let secondType = self.visit(sameType.rightTypeIdentifier).rawValue - requirements.append( - BridgedRequirementRepr( - SeparatorLoc: separatorLoc, - Kind: .sameType, - FirstType: firstType, - SecondType: secondType)) - case .layoutRequirement(_): - fatalError("Cannot handle layout requirements!") - } - } - } return params.withBridgedArrayRef { params in - return requirements.withBridgedArrayRef { reqs in - return action(params, reqs) - } + return action(params) } } }