Skip to content

Commit e3fdeaf

Browse files
committed
ASTDumper: Dump conforming type of abstract conformance
1 parent 65a515b commit e3fdeaf

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

lib/AST/ASTDumper.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5521,6 +5521,12 @@ class PrintConformance : public PrintBase {
55215521
assert(conformance.isAbstract());
55225522

55235523
printHead("abstract_conformance", ASTNodeColor, label);
5524+
5525+
PrintOptions PO;
5526+
PO.OpaqueReturnTypePrinting =
5527+
PrintOptions::OpaqueReturnTypePrintingMode::StableReference;
5528+
5529+
printTypeField(conformance.getType(), Label::always("type"), PO);
55245530
printReferencedDeclField(conformance.getProtocol(),
55255531
Label::always("protocol"));
55265532
printFoot();

test/Frontend/debug-generic-signatures.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@ struct Generic<T> {}
9898
// CHECK-NEXT: (assoc_conformance type="Self" proto="Escapable"
9999
// CHECK-NEXT: (builtin_conformance type="Generic<T>" protocol="Escapable"))
100100
// CHECK-NEXT: (assoc_conformance type="Self.A" proto="Copyable"
101-
// CHECK-NEXT: (abstract_conformance protocol="Copyable"))
101+
// CHECK-NEXT: (abstract_conformance type="T" protocol="Copyable"))
102102
// CHECK-NEXT: (assoc_conformance type="Self.A" proto="Escapable"
103-
// CHECK-NEXT: (abstract_conformance protocol="Escapable"))
103+
// CHECK-NEXT: (abstract_conformance type="T" protocol="Escapable"))
104104
// CHECK-NEXT: (requirement "T" conforms_to "P1"))
105105
extension Generic: P1 where T: P1 {
106106
typealias A = T
@@ -123,9 +123,9 @@ class Super<T, U> {}
123123
// CHECK-NEXT: (assoc_conformance type="Self" proto="Escapable"
124124
// CHECK-NEXT: (builtin_conformance type="Super<T, U>" protocol="Escapable"))
125125
// CHECK-NEXT: (assoc_conformance type="Self.A" proto="P2"
126-
// CHECK-NEXT: (abstract_conformance protocol="P2"))
126+
// CHECK-NEXT: (abstract_conformance type="T" protocol="P2"))
127127
// CHECK-NEXT: (assoc_conformance type="Self.B" proto="P2"
128-
// CHECK-NEXT: (abstract_conformance protocol="P2"))
128+
// CHECK-NEXT: (abstract_conformance type="T" protocol="P2"))
129129
// CHECK-NEXT: (requirement "T" conforms_to "P2")
130130
// CHECK-NEXT: (requirement "U" conforms_to "P2"))
131131
extension Super: P2 where T: P2, U: P2 {
@@ -177,9 +177,9 @@ extension Super: P2 where T: P2, U: P2 {
177177
// CHECK-NEXT: (assoc_conformance type="Self" proto="Escapable"
178178
// CHECK-NEXT: (builtin_conformance type="Super<T, U>" protocol="Escapable"))
179179
// CHECK-NEXT: (assoc_conformance type="Self.A" proto="P2"
180-
// CHECK-NEXT: (abstract_conformance protocol="P2"))
180+
// CHECK-NEXT: (abstract_conformance type="T" protocol="P2"))
181181
// CHECK-NEXT: (assoc_conformance type="Self.B" proto="P2"
182-
// CHECK-NEXT: (abstract_conformance protocol="P2"))
182+
// CHECK-NEXT: (abstract_conformance type="T" protocol="P2"))
183183
// CHECK-NEXT: (requirement "T" conforms_to "P2")
184184
// CHECK-NEXT: (requirement "U" conforms_to "P2"))))
185185
class Sub: Super<NonRecur, Recur> {}

0 commit comments

Comments
 (0)