diff --git a/lib/AST/RequirementMachine/RequirementMachineRequests.cpp b/lib/AST/RequirementMachine/RequirementMachineRequests.cpp index 83f06a1538ef6..97a46d677ad13 100644 --- a/lib/AST/RequirementMachine/RequirementMachineRequests.cpp +++ b/lib/AST/RequirementMachine/RequirementMachineRequests.cpp @@ -870,7 +870,7 @@ InferredGenericSignatureRequest::evaluate( // inferred same-type requirements when building the generic signature of // an extension whose extended type is a generic typealias. for (const auto &req : addedRequirements) - requirements.push_back({req, SourceLoc()}); + requirements.push_back({req, loc}); desugarRequirements(requirements, inverses, errors); diff --git a/test/Generics/variadic_generic_types.swift b/test/Generics/variadic_generic_types.swift index 6b4ab724c31f3..6ee1a5b00af5c 100644 --- a/test/Generics/variadic_generic_types.swift +++ b/test/Generics/variadic_generic_types.swift @@ -116,3 +116,16 @@ func packExpansionInScalarArgument(_: repeat each T) { typealias A = U typealias One = A // expected-error {{pack expansion 'repeat each T' can only appear in a function parameter list, tuple element, or generic argument of a variadic type}} } + +// Make sure we diagnose instead of silently dropping the same-type requirement +// https://github.com/apple/swift/issues/70432 + +struct WithPack {} + +// FIXME: The diagnostics are misleading. + +extension WithPack {} +// expected-error@-1 {{same-element requirements are not yet supported}} + +extension WithPack where (repeat each T) == (Int, Int) {} +// expected-error@-1 {{generic signature requires types '(repeat each T)' and '(Int, Int)' to be the same}} \ No newline at end of file