Skip to content

[CodeCompletion] Enable 'openArchetypes' when checking if convertible #25872

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

rintaro
Copy link
Member

@rintaro rintaro commented Jun 28, 2019

protocol Proto {}
struct ConcreteProto: Proto {}

struct MyStruct<T> {}
extension MyStruct where T: Proto {
  static var option: MyStruct<ConcreteProto> { get }
}

func foo<T: Proto>(arg: MyStruct<T>) {}
func test() {
  foo(arg: .#^HERE^#)
}

In this case, the type of MyStruct.option is MyStruct<ConcreteProto> whereas the context type is MyStruct<T> where T: Proto.
When checking the convertibility of them , we need to "open archetype types".

rdar://problem/24570603
rdar://problem/51723460

```swift
protocol Proto {}
struct ConcreteProto {}
struct MyStruct<T> {}

extension MyStruct where T: Proto {
  static var option: MyStruct<ConcreteProto> { get }
}
func foo<T: Proto>(arg: MyStruct<T>) {}
func test() {
  foo(arg: .#^HERE^#)
}
```
In this case, the type of `MyStruct.option` is `MyStruct<ConcreteProto>`
whereas the context type is `MyStruct<T> where T: Proto`.
When checking the convertibility of them , we need to "open archetype types".

rdar://problem/24570603
rdar://problem/51723460
@rintaro
Copy link
Member Author

rintaro commented Jun 28, 2019

@swift-ci Please smoke test

@rintaro rintaro requested review from benlangmuir and xedin June 28, 2019 22:32
@benlangmuir
Copy link
Contributor

Can you explain why we wouldn't always want to open archetypes in this function? I see there's one case where we don't, but I don't understand why

Copy link
Contributor

@xedin xedin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure about code completion changes but change to isConvertibleTo simple reasonable to me since archetype has to be opened and it's requirements have to be added to constraint system to property compare types from example.

@rintaro
Copy link
Member Author

rintaro commented Jun 28, 2019

Can you explain why we wouldn't always want to open archetypes in this function? I see there's one case where we don't, but I don't understand why

It's falsed in extension checking for ASTPrinter. If I set it to true, it causes some regressions.
I haven't look into it, but I just want to keep current behavior for now.

@benlangmuir
Copy link
Contributor

Seems okay for now, but we should fix it if possible.

@rintaro
Copy link
Member Author

rintaro commented Jun 28, 2019

FYI

Regressions when turning on 'openArchetypes'
FAIL: Swift(macosx-x86_64) :: SourceKit/DocSupport/doc_swift_module1.swift (146 of 5392)
******************** TEST 'Swift(macosx-x86_64) :: SourceKit/DocSupport/doc_swift_module1.swift' FAILED ********************
Script:
--
: 'RUN: at line 1';   rm -rf "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.mod" && mkdir -p "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.mod"
: 'RUN: at line 2';   '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/swift' -frontend -module-cache-path '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache' -disable-objc-attr-requires-foundation-module -swift-version 4  -emit-module -o /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.mod/cake1.swiftmodule /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake1.swift -parse-as-library
: 'RUN: at line 3';   /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/sourcekitd-test -req=doc-info -module cake1 -- -I /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.mod > /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.response
: 'RUN: at line 4';   diff -u /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/doc_swift_module1.swift.response /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.response
--
Exit Code: 1

Command Output (stdout):
--
--- /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/doc_swift_module1.swift.response	2019-05-17 14:32:50.000000000 -0700
+++ /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.response	2019-06-28 11:23:58.000000000 -0700
@@ -53,9 +53,6 @@
     func foo2(a a: Int, b b: Int)
 
     subscript(_ a: Int) -> Int
-}
-
-extension P2 where Self : cake1.P3 {
 
     func fooConstraint()
 }
@@ -540,148 +537,112 @@
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 631,
-    key.length: 9
-  },
-  {
-    key.kind: source.lang.swift.ref.protocol,
-    key.name: "P2",
-    key.usr: "s:5cake12P2P",
-    key.offset: 641,
-    key.length: 2
-  },
-  {
-    key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 644,
-    key.length: 5
-  },
-  {
-    key.kind: source.lang.swift.ref.generic_type_param,
-    key.name: "Self",
-    key.usr: "s:5cake12P2PA2A2P3RzrlE4Selfxmfp",
-    key.offset: 650,
-    key.length: 4
-  },
-  {
-    key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 657,
-    key.length: 5
-  },
-  {
-    key.kind: source.lang.swift.ref.protocol,
-    key.name: "P3",
-    key.usr: "s:5cake12P3P",
-    key.offset: 663,
-    key.length: 2
-  },
-  {
-    key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 673,
+    key.offset: 633,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 678,
+    key.offset: 638,
     key.length: 13
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 697,
+    key.offset: 657,
     key.length: 8
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 706,
+    key.offset: 666,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 716,
+    key.offset: 676,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 721,
+    key.offset: 681,
     key.length: 10
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 737,
+    key.offset: 697,
     key.length: 9
   },
   {
     key.kind: source.lang.swift.ref.struct,
     key.name: "Dictionary",
     key.usr: "s:SD",
-    key.offset: 747,
+    key.offset: 707,
     key.length: 10
   },
   {
     key.kind: source.lang.swift.ref.struct,
     key.name: "Keys",
     key.usr: "s:SD4KeysV",
-    key.offset: 758,
+    key.offset: 718,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 770,
+    key.offset: 730,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 775,
+    key.offset: 735,
     key.length: 3
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 784,
+    key.offset: 744,
     key.length: 9
   },
   {
     key.kind: source.lang.swift.ref.struct,
     key.name: "Dictionary",
     key.usr: "s:SD",
-    key.offset: 794,
+    key.offset: 754,
     key.length: 10
   },
   {
     key.kind: source.lang.swift.ref.struct,
     key.name: "Keys",
     key.usr: "s:SD4KeysV",
-    key.offset: 805,
+    key.offset: 765,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 810,
+    key.offset: 770,
     key.length: 5
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 816,
+    key.offset: 776,
     key.length: 3
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 822,
+    key.offset: 782,
     key.length: 5
   },
   {
     key.kind: source.lang.swift.ref.protocol,
     key.name: "P1",
     key.usr: "s:5cake12P1P",
-    key.offset: 828,
+    key.offset: 788,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 838,
+    key.offset: 798,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 843,
+    key.offset: 803,
     key.length: 3
   }
 ]
@@ -945,7 +906,7 @@
   {
     key.kind: source.lang.swift.decl.extension.protocol,
     key.offset: 511,
-    key.length: 118,
+    key.length: 144,
     key.fully_annotated_generic_signature: "&lt;<decl.generic_type_param usr=\"s:5cake12P2P4Selfxmfp\"><decl.generic_type_param.name>Self</decl.generic_type_param.name></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement><ref.generic_type_param usr=\"s:5cake12P2P4Selfxmfp\">Self</ref.generic_type_param> : <ref.protocol usr=\"s:5cake12P2P\">P2</ref.protocol></decl.generic_type_requirement>&gt;",
     key.extends: {
       key.kind: source.lang.swift.ref.protocol,
@@ -1013,31 +974,13 @@
             key.length: 3
           }
         ]
-      }
-    ]
-  },
-  {
-    key.kind: source.lang.swift.decl.extension.protocol,
-    key.generic_requirements: [
-      {
-        key.description: "Self : P3"
-      }
-    ],
-    key.offset: 631,
-    key.length: 64,
-    key.fully_annotated_generic_signature: "&lt;<decl.generic_type_param usr=\"s:5cake12P2PA2A2P3RzrlE4Selfxmfp\"><decl.generic_type_param.name>Self</decl.generic_type_param.name></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement><ref.generic_type_param usr=\"s:5cake12P2PA2A2P3RzrlE4Selfxmfp\">Self</ref.generic_type_param> : <ref.protocol usr=\"s:5cake12P2P\">P2</ref.protocol></decl.generic_type_requirement>, <decl.generic_type_requirement><ref.generic_type_param usr=\"s:5cake12P2PA2A2P3RzrlE4Selfxmfp\">Self</ref.generic_type_param> : <ref.protocol usr=\"s:5cake12P3P\">P3</ref.protocol></decl.generic_type_requirement>&gt;",
-    key.extends: {
-      key.kind: source.lang.swift.ref.protocol,
-      key.name: "P2",
-      key.usr: "s:5cake12P2P"
-    },
-    key.entities: [
+      },
       {
         key.kind: source.lang.swift.decl.function.method.instance,
         key.name: "fooConstraint()",
         key.usr: "s:5cake12P2PA2A2P3RzrlE13fooConstraintyyF",
         key.default_implementation_of: "s:5cake12P1P13fooConstraintyyF",
-        key.offset: 673,
+        key.offset: 633,
         key.length: 20,
         key.fully_annotated_decl: "<decl.function.method.instance><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>fooConstraint</decl.name>()</decl.function.method.instance>"
       }
@@ -1047,7 +990,7 @@
     key.kind: source.lang.swift.decl.protocol,
     key.name: "P3",
     key.usr: "s:5cake12P3P",
-    key.offset: 697,
+    key.offset: 657,
     key.length: 38,
     key.fully_annotated_decl: "<decl.protocol><syntaxtype.keyword>protocol</syntaxtype.keyword> <decl.name>P3</decl.name></decl.protocol>",
     key.entities: [
@@ -1055,7 +998,7 @@
         key.kind: source.lang.swift.decl.function.method.instance,
         key.name: "p3Required()",
         key.usr: "s:5cake12P3P10p3RequiredyyF",
-        key.offset: 716,
+        key.offset: 676,
         key.length: 17,
         key.fully_annotated_decl: "<decl.function.method.instance><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>p3Required</decl.name>()</decl.function.method.instance>"
       }
@@ -1076,7 +1019,7 @@
         key.description: "Key : Hashable"
       }
     ],
-    key.offset: 737,
+    key.offset: 697,
     key.length: 45,
     key.fully_annotated_generic_signature: "&lt;<decl.generic_type_param usr=\"s:SD3Keyxmfp\"><decl.generic_type_param.name>Key</decl.generic_type_param.name></decl.generic_type_param>, <decl.generic_type_param usr=\"s:SD5Valueq_mfp\"><decl.generic_type_param.name>Value</decl.generic_type_param.name></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>Key : <ref.protocol usr=\"s:SH\">Hashable</ref.protocol></decl.generic_type_requirement>&gt;",
     key.extends: {
@@ -1089,7 +1032,7 @@
         key.kind: source.lang.swift.decl.function.method.instance,
         key.name: "foo()",
         key.usr: "s:SD4KeysV5cake1E3fooyyF",
-        key.offset: 770,
+        key.offset: 730,
         key.length: 10,
         key.fully_annotated_decl: "<decl.function.method.instance><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>foo</decl.name>()</decl.function.method.instance>"
       }
@@ -1105,7 +1048,7 @@
         key.description: "Key : P1"
       }
     ],
-    key.offset: 784,
+    key.offset: 744,
     key.length: 66,
     key.fully_annotated_generic_signature: "&lt;<decl.generic_type_param usr=\"s:SD4KeysV5cake1AC2P1RzrlE3Keyxmfp\"><decl.generic_type_param.name>Key</decl.generic_type_param.name></decl.generic_type_param>, <decl.generic_type_param usr=\"s:SD4KeysV5cake1AC2P1RzrlE5Valueq_mfp\"><decl.generic_type_param.name>Value</decl.generic_type_param.name></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>Key : <ref.protocol usr=\"s:SH\">Hashable</ref.protocol></decl.generic_type_requirement>, <decl.generic_type_requirement>Key : <ref.protocol usr=\"s:5cake12P1P\">P1</ref.protocol></decl.generic_type_requirement>&gt;",
     key.extends: {
@@ -1118,7 +1061,7 @@
         key.kind: source.lang.swift.decl.function.method.instance,
         key.name: "bar()",
         key.usr: "s:SD4KeysV5cake1AC2P1RzrlE3baryyF",
-        key.offset: 838,
+        key.offset: 798,
         key.length: 10,
         key.fully_annotated_decl: "<decl.function.method.instance><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>bar</decl.name>()</decl.function.method.instance>"
       }

--
Command Output (stderr):
--
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake1.swift:30:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake1.swift:34:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func bar() {}
  ^~~~~~~
  
{
  key.request: source.request.docinfo,
  key.compilerargs: [
    "-I",
    "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module1.swift.tmp.mod"
  ],
  key.modulename: "cake1"
}

--

********************
FAIL: Swift(macosx-x86_64) :: SourceKit/DocSupport/doc_swift_module.swift (177 of 5392)
******************** TEST 'Swift(macosx-x86_64) :: SourceKit/DocSupport/doc_swift_module.swift' FAILED ********************
Script:
--
: 'RUN: at line 1';   rm -rf "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod" && mkdir -p "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod"
: 'RUN: at line 2';   '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/swift' -frontend -module-cache-path '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache' -disable-objc-attr-requires-foundation-module -swift-version 4  -emit-module -o /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod/cake.swiftmodule /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift -parse-as-library  -enable-objc-interop -emit-module-doc-path /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod/cake.swiftdoc
: 'RUN: at line 3';   /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/sourcekitd-test -req=doc-info -module cake -- -I /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod > /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.response
: 'RUN: at line 4';   diff -u /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/doc_swift_module.swift.response /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.response
--
Exit Code: 1

Command Output (stdout):
--
--- /Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/doc_swift_module.swift.response	2019-05-22 10:51:24.000000000 -0700
+++ /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.response	2019-06-28 11:23:58.000000000 -0700
@@ -173,9 +173,6 @@
 struct S3<Wrapped> : cake.P5 where Wrapped : cake.P5 {
 
     typealias Element = Wrapped.Element
-}
-
-extension S3 {
 
     var null: Wrapped.Element? { get }
 }
@@ -1638,145 +1635,133 @@
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 2073,
-    key.length: 9
-  },
-  {
-    key.kind: source.lang.swift.ref.struct,
-    key.name: "S3",
-    key.usr: "s:4cake2S3V",
-    key.offset: 2083,
-    key.length: 2
-  },
-  {
-    key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 2093,
+    key.offset: 2075,
     key.length: 3
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 2097,
+    key.offset: 2079,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2103,
+    key.offset: 2085,
     key.length: 7
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2111,
+    key.offset: 2093,
     key.length: 7
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 2122,
+    key.offset: 2104,
     key.length: 3
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 2131,
+    key.offset: 2113,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 2136,
+    key.offset: 2118,
     key.length: 6
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 2143,
+    key.offset: 2125,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.identifier,
-    key.offset: 2147,
+    key.offset: 2129,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.argument,
-    key.offset: 2151,
+    key.offset: 2133,
     key.length: 1
   },
   {
     key.kind: source.lang.swift.syntaxtype.parameter,
-    key.offset: 2153,
+    key.offset: 2135,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2157,
+    key.offset: 2139,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.argument,
-    key.offset: 2161,
+    key.offset: 2143,
     key.length: 1
   },
   {
     key.kind: source.lang.swift.syntaxtype.parameter,
-    key.offset: 2163,
+    key.offset: 2145,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2167,
+    key.offset: 2149,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.keyword,
-    key.offset: 2171,
+    key.offset: 2153,
     key.length: 5
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2177,
+    key.offset: 2159,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2182,
+    key.offset: 2164,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.ref.protocol,
     key.name: "Prot",
     key.usr: "s:4cake4ProtP",
-    key.offset: 2187,
+    key.offset: 2169,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2193,
+    key.offset: 2175,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2198,
+    key.offset: 2180,
     key.length: 4
   },
   {
     key.kind: source.lang.swift.ref.class,
     key.name: "C1",
     key.usr: "s:4cake2C1C",
-    key.offset: 2203,
+    key.offset: 2185,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2207,
+    key.offset: 2189,
     key.length: 2
   },
   {
     key.kind: source.lang.swift.syntaxtype.typeidentifier,
-    key.offset: 2210,
+    key.offset: 2192,
     key.length: 7
   },
   {
     key.kind: source.lang.swift.ref.struct,
     key.name: "Int",
     key.usr: "s:Si",
-    key.offset: 2221,
+    key.offset: 2203,
     key.length: 3
   }
 ]
@@ -2767,7 +2752,7 @@
       }
     ],
     key.offset: 1974,
-    key.length: 97,
+    key.length: 137,
     key.fully_annotated_decl: "<decl.struct><syntaxtype.keyword>struct</syntaxtype.keyword> <decl.name>S3</decl.name>&lt;<decl.generic_type_param usr=\"s:4cake2S3V7Wrappedxmfp\"><decl.generic_type_param.name>Wrapped</decl.generic_type_param.name></decl.generic_type_param>&gt; : <ref.protocol usr=\"s:4cake2P5P\">P5</ref.protocol> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>Wrapped : <ref.protocol usr=\"s:4cake2P5P\">P5</ref.protocol></decl.generic_type_requirement></decl.struct>",
     key.conforms: [
       {
@@ -2791,26 +2776,13 @@
             key.usr: "s:4cake2P5P7ElementQa"
           }
         ]
-      }
-    ]
-  },
-  {
-    key.kind: source.lang.swift.decl.extension.struct,
-    key.offset: 2073,
-    key.length: 56,
-    key.fully_annotated_generic_signature: "&lt;<decl.generic_type_param usr=\"s:4cake2P6P4Selfxmfp\"><decl.generic_type_param.name>Self</decl.generic_type_param.name></decl.generic_type_param> <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement><ref.generic_type_param usr=\"s:4cake2P6P4Selfxmfp\">Self</ref.generic_type_param> : <ref.protocol usr=\"s:4cake2P6P\">P6</ref.protocol></decl.generic_type_requirement>&gt;",
-    key.extends: {
-      key.kind: source.lang.swift.ref.struct,
-      key.name: "S3",
-      key.usr: "s:4cake2S3V"
-    },
-    key.entities: [
+      },
       {
         key.kind: source.lang.swift.decl.var.instance,
         key.name: "null",
         key.usr: "s:4cake2P6PAAE4null7ElementQzSgvp::SYNTHESIZED::s:4cake2S3V",
         key.original_usr: "s:4cake2P6PAAE4null7ElementQzSgvp",
-        key.offset: 2093,
+        key.offset: 2075,
         key.length: 34,
         key.fully_annotated_decl: "<decl.var.instance><syntaxtype.keyword>var</syntaxtype.keyword> <decl.name>null</decl.name>: <decl.var.type>Wrapped.Element?</decl.var.type> { <syntaxtype.keyword>get</syntaxtype.keyword> }</decl.var.instance>"
       }
@@ -2839,7 +2811,7 @@
         key.description: "T1.Element == Int"
       }
     ],
-    key.offset: 2131,
+    key.offset: 2113,
     key.length: 93,
     key.fully_annotated_decl: "<decl.function.free><syntaxtype.keyword>func</syntaxtype.keyword> <decl.name>genfoo</decl.name>&lt;<decl.generic_type_param usr=\"s:4cake6genfoo1x1yyx_q_tAA4ProtRzAA2C1CRb_Si7ElementRtzr0_lF2T1L_xmfp\"><decl.generic_type_param.name>T1</decl.generic_type_param.name></decl.generic_type_param>, <decl.generic_type_param usr=\"s:4cake6genfoo1x1yyx_q_tAA4ProtRzAA2C1CRb_Si7ElementRtzr0_lF2T2L_q_mfp\"><decl.generic_type_param.name>T2</decl.generic_type_param.name></decl.generic_type_param>&gt;(<decl.var.parameter><decl.var.parameter.argument_label>x</decl.var.parameter.argument_label> <decl.var.parameter.name>ix</decl.var.parameter.name>: <decl.var.parameter.type>T1</decl.var.parameter.type></decl.var.parameter>, <decl.var.parameter><decl.var.parameter.argument_label>y</decl.var.parameter.argument_label> <decl.var.parameter.name>iy</decl.var.parameter.name>: <decl.var.parameter.type>T2</decl.var.parameter.type></decl.var.parameter>) <syntaxtype.keyword>where</syntaxtype.keyword> <decl.generic_type_requirement>T1 : <ref.protocol usr=\"s:4cake4ProtP\">Prot</ref.protocol></decl.generic_type_requirement>, <decl.generic_type_requirement>T2 : <ref.class usr=\"s:4cake2C1C\">C1</ref.class></decl.generic_type_requirement>, <decl.generic_type_requirement>T1.Element == <ref.struct usr=\"s:Si\">Int</ref.struct></decl.generic_type_requirement></decl.function.free>",
     key.entities: [
@@ -2847,14 +2819,14 @@
         key.kind: source.lang.swift.decl.var.local,
         key.keyword: "x",
         key.name: "ix",
-        key.offset: 2157,
+        key.offset: 2139,
         key.length: 2
       },
       {
         key.kind: source.lang.swift.decl.var.local,
         key.keyword: "y",
         key.name: "iy",
-        key.offset: 2167,
+        key.offset: 2149,
         key.length: 2
       }
     ]

--
Command Output (stderr):
--
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:18:96: warning: redundant same-type constraint 'T1.Element' == 'C1.Element' (aka 'Int')
public func genfoo<T1 : Prot, T2 : C1>(x ix: T1, y iy: T2) where T1.Element == Int, T2.Element == T1.Element {}
                                                                                               ^
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:18:77: note: same-type constraint 'T1.Element' == 'Int' written here
public func genfoo<T1 : Prot, T2 : C1>(x ix: T1, y iy: T2) where T1.Element == Int, T2.Element == T1.Element {}
                                                                            ^
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:35:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo1() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:46:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo1() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:47:3: warning: 'public' modifier is redundant for struct declared in a public extension
  public struct S2 {
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/SourceKit/DocSupport/Inputs/cake.swift:66:3: warning: 'public' modifier is redundant for enum declared in a public extension
  public enum C1Cases : Int {
  ^~~~~~~
  
{
  key.request: source.request.docinfo,
  key.compilerargs: [
    "-I",
    "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/SourceKit/DocSupport/Output/doc_swift_module.swift.tmp.mod"
  ],
  key.modulename: "cake"
}

--

********************
FAIL: Swift(macosx-x86_64) :: IDE/print_synthesized_extensions.swift (222 of 5392)
******************** TEST 'Swift(macosx-x86_64) :: IDE/print_synthesized_extensions.swift' FAILED ********************
Script:
--
: 'RUN: at line 1';   rm -rf "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp" && mkdir -p "/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp"
: 'RUN: at line 2';   /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/swiftc -frontend -target x86_64-apple-macosx10.9  -module-cache-path '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache' -sdk '/Applications/Xcode/Yellowstone/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk' -swift-version 4   -typo-correction-limit 10  -emit-module-path /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp/print_synthesized_extensions.swiftmodule -emit-module-doc -emit-module-doc-path /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp/print_synthesized_extensions.swiftdoc /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift
: 'RUN: at line 3';   xcrun --toolchain default --sdk '/Applications/Xcode/Yellowstone/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk' /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/bin/swift-ide-test -target x86_64-apple-macosx10.9  -module-cache-path '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/swift-test-results/x86_64-apple-macosx10.9/clang-module-cache' -completion-cache-path '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/swift-test-results/x86_64-apple-macosx10.9/completion-cache' -swift-version 4 -print-module -annotate-print -synthesize-extension -print-interface -no-empty-line-between-members -module-to-print=print_synthesized_extensions -I /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp -source-filename=/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift > /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 4';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK1 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 5';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK2 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 6';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK3 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 7';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK4 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 8';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK5 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 9';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK6 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 10';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK7 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 11';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK8 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 12';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK9 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 13';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK10 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 14';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK11 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 15';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK12 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 16';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK13 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
: 'RUN: at line 17';   '/usr/bin/python' '/Users/rintaro/Repositories/swift-oss/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64' --sanitize SOURCE_DIR='/Users/rintaro/Repositories/swift-oss/swift' --use-filecheck '/Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin/FileCheck'  /Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift -check-prefix=CHECK14 < /Users/rintaro/Repositories/swift-oss/build/Ninja-ReleaseAssert/swift-macosx-x86_64/test-macosx-x86_64/IDE/Output/print_synthesized_extensions.swift.tmp.syn.txt
--
Exit Code: 1

Command Output (stderr):
--
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:39:2: warning: 'public' modifier is redundant for instance method declared in a public extension
        public func p2member() {}
        ^~~~~~~
        
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:45:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func ef1(t : T1) {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:46:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func ef2(t : T2) {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:50:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func ef3(t : T1) {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:51:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func ef4(t : T1) {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:55:2: warning: 'public' modifier is redundant for instance method declared in a public extension
        public func ef5(t : T2) {}
        ^~~~~~~
        
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:107:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func f3() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:123:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func S9IntFunc() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:154:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func fromActualExtension() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:166:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo1() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:171:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo2() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:176:2: warning: 'public' modifier is redundant for instance method declared in a public extension
 public func foo2() {}
 ^~~~~~~
 
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:182:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo3() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:188:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo3() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:194:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo4() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:206:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo4() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:200:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo5() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:220:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func foo1() {}
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:229:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func nomergeFunc(t: T1) -> T1 { return t }
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:230:3: warning: 'public' modifier is redundant for instance method declared in a public extension
  public func f1(t: T1) -> T1 { return t }
  ^~~~~~~
  
/Users/rintaro/Repositories/swift-oss/swift/test/IDE/print_synthesized_extensions.swift:240:12: error: CHECK1: expected string not found in input
// CHECK1: <synthesized>extension <ref:Struct>S1</ref> where <ref:GenericTypeParam>Self</ref>.P2T1 : <ref:Protocol>P2</ref> {
           ^
<stdin>:1:1: note: scanning from here
<decl:Import>import <ref:module>SwiftOnoneSupport</ref></decl>
^
<stdin>:17:15: note: possible intended match here
<decl:Extension>extension <loc><ref:Protocol>P1</ref></loc> where <ref:GenericTypeParam>Self</ref>.T1 == <ref:Struct>Int</ref> {
              ^

--

********************

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants