Skip to content

Commit f39372b

Browse files
committed
RequirementMachine: Turn off redundant requirement warnings by default and add -warn-redundant-requirements frontend flag
1 parent 92a78c4 commit f39372b

File tree

69 files changed

+90
-76
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+90
-76
lines changed

include/swift/Basic/LangOptions.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,9 @@ namespace swift {
572572
/// rewrite system.
573573
bool EnableRequirementMachineOpaqueArchetypes = false;
574574

575+
/// Enable warnings for redundant requirements in generic signatures.
576+
bool WarnRedundantRequirements = false;
577+
575578
/// Enables dumping type witness systems from associated type inference.
576579
bool DumpTypeWitnessSystems = false;
577580

include/swift/Option/FrontendOptions.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,9 @@ def disable_requirement_machine_reuse : Flag<["-"], "disable-requirement-machine
378378
def enable_requirement_machine_opaque_archetypes : Flag<["-"], "enable-requirement-machine-opaque-archetypes">,
379379
HelpText<"Enable more correct opaque archetype support, which is off by default because it might fail to produce a convergent rewrite system">;
380380

381+
def warn_redundant_requirements : Flag<["-"], "warn-redundant-requirements">,
382+
HelpText<"Emit warnings for redundant requirements in generic signatures">;
383+
381384
def dump_type_witness_systems : Flag<["-"], "dump-type-witness-systems">,
382385
HelpText<"Enables dumping type witness systems from associated type inference">;
383386

lib/AST/RequirementMachine/Diagnostics.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,11 @@ bool swift::rewriting::diagnoseRequirementErrors(
138138
}
139139

140140
case RequirementError::Kind::RedundantRequirement: {
141+
// We only emit redundant requirement warnings if the user passed
142+
// the -warn-redundant-requirements frontend flag.
143+
if (!ctx.LangOpts.WarnRedundantRequirements)
144+
break;
145+
141146
auto requirement = error.requirement;
142147
if (requirement.hasError())
143148
break;

lib/Frontend/CompilerInvocation.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,6 +1057,9 @@ static bool ParseLangArgs(LangOptions &Opts, ArgList &Args,
10571057
if (Args.hasArg(OPT_enable_requirement_machine_opaque_archetypes))
10581058
Opts.EnableRequirementMachineOpaqueArchetypes = true;
10591059

1060+
if (Args.hasArg(OPT_warn_redundant_requirements))
1061+
Opts.WarnRedundantRequirements = true;
1062+
10601063
Opts.DumpTypeWitnessSystems = Args.hasArg(OPT_dump_type_witness_systems);
10611064

10621065
return HadError || UnsupportedOS || UnsupportedArch;

test/AutoDiff/SILGen/differentiability_witness_generic_signature.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
// RUN: %target-swift-emit-silgen -verify -module-name main %s -requirement-machine-inferred-signatures=on | %FileCheck %s
2-
// RUN: %target-swift-emit-sil -verify -module-name main %s -requirement-machine-inferred-signatures=on
1+
// RUN: %target-swift-emit-silgen -verify -module-name main %s -requirement-machine-inferred-signatures=on -warn-redundant-requirements | %FileCheck %s
2+
// RUN: %target-swift-emit-sil -verify -module-name main %s -requirement-machine-inferred-signatures=on -warn-redundant-requirements
33

44
// NOTE(SR-11950): SILParser crashes for SILGen round-trip.
55

test/AutoDiff/SILOptimizer/generics.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-emit-sil -verify %s -requirement-machine-inferred-signatures=on | %FileCheck %s -check-prefix=CHECK-SIL
1+
// RUN: %target-swift-emit-sil -verify %s -requirement-machine-inferred-signatures=on -warn-redundant-requirements | %FileCheck %s -check-prefix=CHECK-SIL
22

33
import _Differentiation
44

test/Compatibility/anyobject_class.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 -swift-version 4 -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift -swift-version 4 -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22
// RUN: not %target-swift-frontend -typecheck -swift-version 5 -requirement-machine-protocol-signatures=on
33

44
protocol P : class, AnyObject { } // expected-warning{{redundant inheritance from 'AnyObject' and Swift 3 'class' keyword}}{{14-21=}}

test/Constraints/generic_super_constraint.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 %s -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift %s -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
class Base<T> { }
44
class Derived: Base<Int> { }

test/Constraints/same_types.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: not %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
protocol Fooable {

test/Generics/associated_type_typo.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
// RUN: not %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on > %t.dump 2>&1
44
// RUN: %FileCheck -check-prefix CHECK-GENERIC %s < %t.dump

test/Generics/associated_type_where_clause.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 -swift-version 4 -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift -swift-version 4 -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22

33
func needsSameType<T>(_: T.Type, _: T.Type) {}
44

test/Generics/canonicalization.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
// rdar://problem/23149063
44
protocol P0 { }

test/Generics/concrete_conformances_in_protocol.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 -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures 2>&1 | %FileCheck %s
33

44
protocol P {

test/Generics/concrete_contraction_unrelated_typealias.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend -typecheck -verify %s -debug-generic-signatures -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
1+
// RUN: %target-swift-frontend -typecheck -verify %s -debug-generic-signatures -requirement-machine-inferred-signatures=on -warn-redundant-requirements 2>&1 | %FileCheck %s
22

33
// Another GenericSignatureBuilder oddity, reduced from RxSwift.
44
//

test/Generics/concrete_same_type_versus_anyobject.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: not %target-swift-frontend -typecheck -debug-generic-signatures -requirement-machine-inferred-signatures=on %s 2>&1 | %FileCheck %s
33

44
struct S {}

test/Generics/conditional_conformances.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 -requirement-machine-inferred-signatures=on
2-
// RUN: %target-typecheck-verify-swift -debug-generic-signatures -requirement-machine-inferred-signatures=on > %t.dump 2>&1
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
2+
// RUN: %target-typecheck-verify-swift -debug-generic-signatures -requirement-machine-inferred-signatures=on -warn-redundant-requirements > %t.dump 2>&1
33
// RUN: %FileCheck %s < %t.dump
44

55
protocol P1 {}

test/Generics/conditional_requirement_inference_in_protocol.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
// FIXME(rqm-diagnostics): The redundant conformance warnings here should not be emitted, since

test/Generics/conformance_access_path.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 -swift-version 4 -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift -swift-version 4 -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22

33
protocol P0 { }
44
protocol Q0: P0 { }

test/Generics/derived_via_concrete.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
protocol P {}

test/Generics/derived_via_concrete_in_protocol.swift

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

44
protocol P24 {
@@ -52,4 +52,4 @@ protocol P27a {
5252
protocol P27b {
5353
associatedtype A
5454
associatedtype B: X3 where A == X26<B>
55-
}
55+
}

test/Generics/function_defs.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 -warn-redundant-requirements
22

33
//===----------------------------------------------------------------------===//
44
// Type-check function definitions

test/Generics/interdependent_protocol_conformance_example_1.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 %s -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift %s -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on 2>&1 | %FileCheck %s
33

44
// The GenericSignatureBuilder was unable to derive the redundant conformance requirement 'B: P4'

test/Generics/interdependent_protocol_conformance_example_3.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -disable-requirement-machine-reuse -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
44

test/Generics/interdependent_protocol_conformance_example_5.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures -disable-requirement-machine-reuse -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
44

test/Generics/non_final_class_conforms_same_type_requirement_on_self.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures -requirement-machine-inferred-signatures=on %s 2>&1 | %FileCheck %s
33
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures -requirement-machine-inferred-signatures=on -disable-requirement-machine-concrete-contraction %s 2>&1 | %FileCheck %s
44

@@ -75,4 +75,4 @@ public class SuperclassExampleC : SuperclassExampleP {
7575

7676
public class SuperclassExampleD : Q {
7777
public typealias B = G<SuperclassExampleC>
78-
}
78+
}

test/Generics/protocol_requirement_signatures.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 -requirement-machine-protocol-signatures=on
2-
// RUN: %target-typecheck-verify-swift -debug-generic-signatures -requirement-machine-protocol-signatures=on > %t.dump 2>&1
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -warn-redundant-requirements
2+
// RUN: %target-typecheck-verify-swift -debug-generic-signatures -requirement-machine-protocol-signatures=on -warn-redundant-requirements > %t.dump 2>&1
33
// RUN: %FileCheck %s < %t.dump
44

55
// CHECK-LABEL: .P1@

test/Generics/protocol_type_aliases.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: not %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on > %t.dump 2>&1
33

44

test/Generics/protocol_typealias_cycle_5.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 -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22

33
protocol P : Sequence {
44
typealias Element = Iterator.Element

test/Generics/rdar51908331.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -requirement-machine-abstract-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -requirement-machine-abstract-signatures=on -warn-redundant-requirements
22

33
// Reduced from https://github.com/plx/HDXLSIMDSupport.
44

test/Generics/rdar62903491.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
protocol P {

test/Generics/rdar65263302.swift

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

44
public protocol P {
55
associatedtype Element

test/Generics/rdar74890907.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 -requirement-machine-inferred-signatures=on
2-
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
2+
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-inferred-signatures=on -warn-redundant-requirements 2>&1 | %FileCheck %s
33

44
protocol P1 {
55
associatedtype A : P2

test/Generics/rdar75656022.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
protocol P1 {

test/Generics/rdar77462797.swift

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

44
protocol P {}
@@ -32,4 +32,4 @@ struct G<X, Y> where X : Q {
3232

3333
func foo<X, Y>(_: X, _: Y) where X : Q, X : S<Y>, Y : P {}
3434
// expected-warning@-1 {{redundant conformance constraint 'S<Y>' : 'Q'}}
35-
// CHECK: Generic signature: <X, Y where X : S<Y>, Y : P>
35+
// CHECK: Generic signature: <X, Y where X : S<Y>, Y : P>

test/Generics/rdar83308672.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 -debug-generic-signatures -requirement-machine-protocol-signatures=on 2>&1 | %FileCheck %s
1+
// RUN: %target-typecheck-verify-swift -debug-generic-signatures -requirement-machine-protocol-signatures=on -warn-redundant-requirements 2>&1 | %FileCheck %s
22

33
// CHECK: rdar83308672.(file).A@
44
// CHECK-NEXT: Requirement signature: <Self where Self == Self.[A]X.[P1]T, Self.[A]X : P1, Self.[A]Y : P2>

test/Generics/rdar83687967.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33
// RUN: %target-swift-frontend -emit-ir %s
44

test/Generics/rdar91771352.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 -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck %s -debug-generic-signatures 2>&1 | %FileCheck %s
33

44
public struct G<T: P1, U: P1> {

test/Generics/redundant_concrete_conformance.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
protocol P1 {}
44
protocol P2 : P1 {}
@@ -13,4 +13,4 @@ func f1<T : P3>(_: T) where T.A : P1 {}
1313
// expected-warning@-1 {{redundant conformance constraint 'T.A' : 'P1'}}
1414

1515
func f2<T : P3>(_: T) where T.A : P2 {}
16-
// expected-warning@-1 {{redundant conformance constraint 'T.A' : 'P2'}}
16+
// expected-warning@-1 {{redundant conformance constraint 'T.A' : 'P2'}}

test/Generics/redundant_inferred_requirement_order.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-typecheck-verify-swift
1+
// RUN: %target-typecheck-verify-swift -warn-redundant-requirements
22

33
protocol P {}
44

@@ -11,4 +11,4 @@ extension G where A == S<B>, B : P {}
1111
extension G where B : P, A == S<B> {}
1212

1313
extension G where B : P, A == S<B>, B : P {}
14-
// expected-warning@-1 {{redundant conformance constraint 'B' : 'P'}}
14+
// expected-warning@-1 {{redundant conformance constraint 'B' : 'P'}}

test/Generics/redundant_protocol_composition.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
// The GenericSignatureBuilder did not diagnose the first two.
44

test/Generics/redundant_protocol_refinement.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 -requirement-machine-protocol-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures -requirement-machine-protocol-signatures=on %s 2>&1 | %FileCheck %s
33

44
// CHECK-LABEL: redundant_protocol_refinement.(file).Base@

test/Generics/redundant_requirement_self_conforming_protocol.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 -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: %target-swift-frontend -typecheck -debug-generic-signatures %s -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
struct G<T> {}

test/Generics/requirement_inference.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22
// RUN: not %target-swift-frontend -typecheck %s -debug-generic-signatures -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on 2>&1 | %FileCheck %s
33

44
protocol P1 {

test/Generics/requirement_machine_diagnostics.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 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
func testInvalidConformance() {
44
// expected-error@+1 {{type 'T' constrained to non-protocol, non-class type 'Int'}}

test/Generics/same_type_constraints.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 -swift-version 4 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on
1+
// RUN: %target-typecheck-verify-swift -swift-version 4 -requirement-machine-protocol-signatures=on -requirement-machine-inferred-signatures=on -warn-redundant-requirements
22

33
protocol Fooable {
44
associatedtype Foo

0 commit comments

Comments
 (0)