Skip to content

Commit 02bfb79

Browse files
committed
RequirementMachine: Concrete contraction discards errors from inferred requirements
1 parent 175d586 commit 02bfb79

File tree

5 files changed

+12
-6
lines changed

5 files changed

+12
-6
lines changed

lib/AST/RequirementMachine/ConcreteContraction.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,13 @@ bool ConcreteContraction::performConcreteContraction(
598598
// Otherwise, desugar the requirement again, since we might now have a
599599
// requirement where the left hand side is not a type parameter.
600600
SmallVector<Requirement, 4> reqs;
601-
desugarRequirement(substReq, req.loc, reqs, errors);
601+
if (req.inferred) {
602+
SmallVector<RequirementError, 4> discardErrors;
603+
desugarRequirement(substReq, SourceLoc(), reqs, discardErrors);
604+
} else {
605+
desugarRequirement(substReq, req.loc, reqs, errors);
606+
}
607+
602608
for (auto desugaredReq : reqs) {
603609
if (Debug) {
604610
llvm::dbgs() << "@@ Desugared requirement: ";

test/Compatibility/stdlib_generic_typealiases.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on
22

33
struct RequiresStrideable<T: Strideable> { }
44

test/Constraints/casts.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -enable-objc-interop
1+
// RUN: %target-typecheck-verify-swift -enable-objc-interop -requirement-machine-inferred-signatures=on
22

33
class B {
44
init() {}

test/Generics/indirectly_concrete_generic_param.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// RUN: %target-typecheck-verify-swift
2-
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures 2>&1 | %FileCheck %s
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on
2+
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
class S<T, U> where T : P, U == T.T {}
55

test/decl/circularity.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on
22

33
// N.B. Validating the pattern binding initializer for `pickMe` used to cause
44
// recursive validation of the VarDecl. Check that we don't regress now that

0 commit comments

Comments
 (0)