Skip to content

Commit cb7ddbe

Browse files
Merge pull request #84959 from cachemeifyoucan/PrunedLiveness-warning
Fix -Wdangling-assignment-gsl warnings
2 parents f7d008e + a7d7def commit cb7ddbe

File tree

8 files changed

+15
-30
lines changed

8 files changed

+15
-30
lines changed

include/swift/SIL/FieldSensitivePrunedLiveness.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -897,10 +897,7 @@ class FieldSensitivePrunedLiveness {
897897
const std::pair<SILInstruction *, InterestingUser> &)>>;
898898
UserBlockRange getAllUserBlocks() const {
899899
assert(isInitialized());
900-
function_ref<SILBasicBlock *(
901-
const std::pair<SILInstruction *, InterestingUser> &)>
902-
op;
903-
op = [](const std::pair<SILInstruction *, InterestingUser> &pair)
900+
auto op = [](const std::pair<SILInstruction *, InterestingUser> &pair)
904901
-> SILBasicBlock * { return pair.first->getParent(); };
905902
return UserBlockRange(getAllUsers(), op);
906903
}

include/swift/SIL/PrunedLiveness.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -990,8 +990,7 @@ class DiagnosticPrunedLiveness : public SSAPrunedLiveness {
990990
function_ref<SILBasicBlock *(const SILInstruction *&)>>;
991991
NonLifetimeEndingUsesInLiveOutBlocksRange
992992
getNonLifetimeEndingUsesInLiveOutBlocks() const {
993-
function_ref<SILBasicBlock *(const SILInstruction *&)> op;
994-
op = [](const SILInstruction *&ptr) -> SILBasicBlock * {
993+
auto op = [](const SILInstruction *&ptr) -> SILBasicBlock * {
995994
return ptr->getParent();
996995
};
997996
return NonLifetimeEndingUsesInLiveOutBlocksRange(

lib/SIL/IR/SILInstructions.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1850,8 +1850,7 @@ bool TermInst::isProgramTerminating() const {
18501850

18511851
TermInst::SuccessorBlockArgumentListTy
18521852
TermInst::getSuccessorBlockArgumentLists() const {
1853-
function_ref<ArrayRef<SILArgument *>(const SILSuccessor &)> op;
1854-
op = [](const SILSuccessor &succ) -> ArrayRef<SILArgument *> {
1853+
auto op = [](const SILSuccessor &succ) -> ArrayRef<SILArgument *> {
18551854
return succ.getBB()->getArguments();
18561855
};
18571856
return SuccessorBlockArgumentListTy(getSuccessors(), op);

lib/Sema/TypeCheckAttr.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7400,10 +7400,11 @@ computeLinearityParameters(ArrayRef<ParsedAutoDiffParameter> parsedLinearParams,
74007400
if (isCurried)
74017401
transposeResultType =
74027402
transposeResultType->castTo<AnyFunctionType>()->getResult();
7403+
TupleTypeElt elementType(transposeResultType);
74037404
if (auto resultTupleType = transposeResultType->getAs<TupleType>()) {
74047405
transposeResultTypes = resultTupleType->getElements();
74057406
} else {
7406-
transposeResultTypes = ArrayRef<TupleTypeElt>(transposeResultType);
7407+
transposeResultTypes = ArrayRef<TupleTypeElt>(elementType);
74077408
}
74087409

74097410
// If `self` is a linearity parameter, the transpose function must be static.

lib/Sema/TypeCheckDecl.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,11 +2255,7 @@ static Type validateParameterType(ParamDecl *decl) {
22552255
if (isa<AbstractClosureExpr>(dc)) {
22562256
options = TypeResolutionOptions(TypeResolverContext::ClosureExpr);
22572257
options |= TypeResolutionFlags::AllowUnspecifiedTypes;
2258-
unboundTyOpener = [](auto unboundTy) {
2259-
// FIXME: Don't let unbound generic types escape type resolution.
2260-
// For now, just return the unbound generic type.
2261-
return unboundTy;
2262-
};
2258+
unboundTyOpener = TypeResolution::defaultUnboundTypeOpener;
22632259
// FIXME: Don't let placeholder types escape type resolution. For now, just
22642260
// return the placeholder type, which we open in `inferClosureType`.
22652261
placeholderOpener = PlaceholderType::get;

lib/Sema/TypeCheckPattern.cpp

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -845,11 +845,7 @@ Type PatternTypeRequest::evaluate(Evaluator &evaluator,
845845
HandlePlaceholderTypeReprFn placeholderHandler = nullptr;
846846
OpenPackElementFn packElementOpener = nullptr;
847847
if (pattern.allowsInference()) {
848-
unboundTyOpener = [](auto unboundTy) {
849-
// FIXME: Don't let unbound generic types escape type resolution.
850-
// For now, just return the unbound generic type.
851-
return unboundTy;
852-
};
848+
unboundTyOpener = TypeResolution::defaultUnboundTypeOpener;
853849
// FIXME: Don't let placeholder types escape type resolution.
854850
// For now, just return the placeholder type.
855851
placeholderHandler = PlaceholderType::get;
@@ -913,11 +909,7 @@ Type PatternTypeRequest::evaluate(Evaluator &evaluator,
913909
HandlePlaceholderTypeReprFn placeholderHandler = nullptr;
914910
OpenPackElementFn packElementOpener = nullptr;
915911
if (pattern.allowsInference()) {
916-
unboundTyOpener = [](auto unboundTy) {
917-
// FIXME: Don't let unbound generic types escape type resolution.
918-
// For now, just return the unbound generic type.
919-
return unboundTy;
920-
};
912+
unboundTyOpener = TypeResolution::defaultUnboundTypeOpener;
921913
// FIXME: Don't let placeholder types escape type resolution.
922914
// For now, just return the placeholder type.
923915
placeholderHandler = PlaceholderType::get;

lib/Sema/TypeCheckType.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6941,12 +6941,7 @@ Type CustomAttrTypeRequest::evaluate(Evaluator &eval, CustomAttr *attr,
69416941
OpenUnboundGenericTypeFn unboundTyOpener = nullptr;
69426942
// Property delegates allow their type to be an unbound generic.
69436943
if (typeKind == CustomAttrTypeKind::PropertyWrapper) {
6944-
unboundTyOpener = [](auto unboundTy) {
6945-
// FIXME: Don't let unbound generic types
6946-
// escape type resolution. For now, just
6947-
// return the unbound generic type.
6948-
return unboundTy;
6949-
};
6944+
unboundTyOpener = TypeResolution::defaultUnboundTypeOpener;
69506945
}
69516946

69526947
const auto type = TypeResolution::resolveContextualType(

lib/Sema/TypeCheckType.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -675,6 +675,12 @@ class TypeResolution {
675675
return unboundTyOpener;
676676
}
677677

678+
static Type defaultUnboundTypeOpener(UnboundGenericType *ty) {
679+
// FIXME: Don't let unbound generic types escape type resolution.
680+
// For now, just return the unbound generic type.
681+
return ty;
682+
}
683+
678684
HandlePlaceholderTypeReprFn getPlaceholderHandler() const {
679685
return placeholderHandler;
680686
}

0 commit comments

Comments
 (0)