// RUN: rm -rf %t && mkdir %t
// RUN: %target-swift-frontend -emit-module-path %t/print_synthesized_extensions.swiftmodule -emit-module-doc -emit-module-doc-path %t/print_synthesized_extensions.swiftdoc %s
// RUN: %target-swift-ide-test -print-module -annotate-print -synthesize-extension -print-interface -no-empty-line-between-members -module-to-print=print_synthesized_extensions -I %t -source-filename=%s > %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK1 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK2 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK3 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK4 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK5 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK6 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK7 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK8 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK9 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK10 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK11 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK12 < %t.syn.txt
// RUN: FileCheck %s -check-prefix=CHECK13 < %t.syn.txt

public protocol P1 {
  associatedtype T1
  associatedtype T2
  func f1(t : T1) -> T1
  func f2(t : T2) -> T2
}

public extension P1 where T1 == Int {
  func p1IntFunc(i : Int) -> Int {return 0}
}

public extension P1 where T1 : P3 {
  func p3Func(i : Int) -> Int {return 0}
}

public protocol P2 {
	associatedtype P2T1
}

public extension P2 where P2T1 : P2{
	public func p2member() {}
}

public protocol P3 {}

public extension P1 where T1 : P2 {
  public func ef1(t : T1) {}
  public func ef2(t : T2) {}
}

public extension P1 where T1 == P2, T2 : P3 {
  public func ef3(t : T1) {}
  public func ef4(t : T1) {}
}

public extension P1 where T2 : P3 {
	public func ef5(t : T2) {}
}

public struct S2 {}

public struct S1<T> : P1, P2 {
  public typealias T1 = T
  public typealias T2 = S2
  public typealias P2T1 = T
  public func f1(t : T1) -> T1 {
    return t
  }
  public func f2(t : T2) -> T2 {
    return t
  }
}

public struct S3<T> : P1 {
  public typealias T1 = (T, T)
  public typealias T2 = (T, T)
  public func f1(t : T1) -> T1 {
    return t
  }
  public func f2(t : T2) -> T2 {
    return t
  }
}

public struct S4<T> : P1  {
  public typealias T1 = Int
  public typealias T2 = Int
  public func f1(t : T1) -> T1 {
    return t
  }
  public func f2(t : T2) -> T2 {
    return t
  }
}

public struct S5 : P3 {}

public struct S6<T> : P1  {
  public typealias T1 = S5
  public typealias T2 = S5
  public func f1(t : T1) -> T1 {
    return t
  }
  public func f2(t : T2) -> T2 {
    return t
  }
}
public extension S6 {
  public func f3() {}
}
public struct S7 {
  public struct S8 : P1  {
    public typealias T1 = S5
    public typealias T2 = S5
    public func f1(t : T1) -> T1 {
      return t
    }
    public func f2(t : T2) -> T2 {
      return t
    }
  }
}

public extension P1 where T1 == S9<Int> {
  public func S9IntFunc() {}
}

public struct S9<T> : P3 {}

public struct S10 : P1 {
  public typealias T1 = S9<Int>
  public typealias T2 = S9<Int>
  public func f1(t : T1) -> T1 {
    return t
  }
  public func f2(t : T2) -> T2 {
    return t
  }
}

public protocol P4 {}

/// Extension on P4Func1
public extension P4 {
  func P4Func1() {}
}

/// Extension on P4Func2
public extension P4 {
  func P4Func2() {}
}

public struct S11 : P4 {}

public extension S6 {
  public func fromActualExtension() {}
}

public protocol P5 {
  associatedtype T1

  /// This is picked
  func foo1()
}
public extension P5 {

  /// This is not picked
  public func foo1() {}
}

public extension P5 where T1 == Int {
  /// This is picked
  public func foo2() {}
}

public extension P5 {
  /// This is not picked
 public func foo2() {}
}

public extension P5 {

  /// This is not picked
  public func foo3() {}
}

public extension P5 where T1 : Comparable{

  /// This is picked
  public func foo3() {}
}

public extension P5 where T1 : Comparable {

  /// This is picked
  public func foo4() {}
}

public extension P5 {

  /// This is not picked
  public func foo4() {}
}

public struct S12 : P5{
  public typealias T1 = Int
  public func foo1() {}
}

public protocol P6 {
  func foo1()
  func foo2()
}

public extension P6 {
  public func foo1() {}
}

public protocol P7 {
  associatedtype T1
  func f1(t: T1)
}

public extension P7 {
  public func nomergeFunc(t: T1) -> T1 { return t }
  public func f1(t: T1) -> T1 { return t }
}

// CHECK1: <synthesized>extension <ref:Struct>S1</ref> where T : P2 {
// CHECK1-NEXT:     <decl:Func>public func <loc>p2member()</loc></decl>
// CHECK1-NEXT:     <decl:Func>public func <loc>ef1(<decl:Param>t: T</decl>)</loc></decl>
// CHECK1-NEXT:     <decl:Func>public func <loc>ef2(<decl:Param>t: <ref:Struct>S2</ref></decl>)</loc></decl>
// CHECK1-NEXT: }</synthesized>

// CHECK2:  <synthesized>extension <ref:Struct>S1</ref> where T : P3 {
// CHECK2-NEXT:     <decl:Func>public func <loc>p3Func(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK2-NEXT: }</synthesized>

// CHECK3:  <synthesized>extension <ref:Struct>S1</ref> where T == Int {
// CHECK3-NEXT:     <decl:Func>public func <loc>p1IntFunc(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK3-NEXT: }</synthesized>

// CHECK4:  <synthesized>extension <ref:Struct>S1</ref> where T == S9<Int> {
// CHECK4-NEXT:     <decl:Func>public func <loc>S9IntFunc()</loc></decl>
// CHECK4-NEXT: }</synthesized>

// CHECK5:      <decl:Struct>public struct <loc>S10</loc> : <ref:Protocol>P1</ref> {
// CHECK5-NEXT:   <decl:TypeAlias>public typealias <loc>T1</loc> = <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S9</ref><<ref:Struct>Int</ref>></decl>
// CHECK5-NEXT: <decl:TypeAlias>public typealias <loc>T2</loc> = <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S9</ref><<ref:Struct>Int</ref>></decl>
// CHECK5-NEXT: <decl:Func>public func <loc>f1(<decl:Param>t: <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S10</ref>.Type.<ref:TypeAlias>T1</ref></decl>)</loc> -> <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S10</ref>.Type.<ref:TypeAlias>T1</ref></decl>
// CHECK5-NEXT: <decl:Func>public func <loc>f2(<decl:Param>t: <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S10</ref>.Type.<ref:TypeAlias>T2</ref></decl>)</loc> -> <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S10</ref>.Type.<ref:TypeAlias>T2</ref></decl></decl>
// CHECK5-NEXT: <decl:Func>public func <loc>p3Func(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK5-NEXT: <decl:Func>public func <loc>ef5(<decl:Param>t: <ref:Struct>S9</ref><<ref:Struct>Int</ref>></decl>)</loc></decl>
// CHECK5-NEXT: <decl:Func>public func <loc>S9IntFunc()</loc></decl>
// CHECK5-NEXT: }</synthesized>

// CHECK6:  <synthesized>/// Extension on P4Func1
// CHECK6-NEXT:  extension <ref:Struct>S11</ref> {
// CHECK6-NEXT:      <decl:Func>public func <loc>P4Func1()</loc></decl>
// CHECK6-NEXT:  }</synthesized>

// CHECK7:  <synthesized>/// Extension on P4Func2
// CHECK7-NEXT:  extension <ref:Struct>S11</ref> {
// CHECK7-NEXT:  <decl:Func>public func <loc>P4Func2()</loc></decl>
// CHECK7-NEXT:  }</synthesized>

// CHECK8:      <decl:Struct>public struct <loc>S4<<decl:GenericTypeParam>T</decl>></loc> : <ref:Protocol>P1</ref> {
// CHECK8-NEXT:   <decl:TypeAlias>public typealias <loc>T1</loc> = <ref:Struct>Int</ref></decl>
// CHECK8-NEXT:   <decl:TypeAlias>public typealias <loc>T2</loc> = <ref:Struct>Int</ref></decl>
// CHECK8-NEXT:   <decl:Func>public func <loc>f1(<decl:Param>t: <ref:TypeAlias>T1</ref></decl>)</loc> -> <ref:TypeAlias>T1</ref></decl>
// CHECK8-NEXT:   <decl:Func>public func <loc>f2(<decl:Param>t: <ref:TypeAlias>T2</ref></decl>)</loc> -> <ref:TypeAlias>T2</ref></decl></decl>
// CHECK8-NEXT:   <decl:Func>public func <loc>p1IntFunc(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK8-NEXT:   }</synthesized>

// CHECK9:      <decl:Struct>public struct <loc>S6<<decl:GenericTypeParam>T</decl>></loc> : <ref:Protocol>P1</ref> {
// CHECK9-NEXT:    <decl:TypeAlias>public typealias <loc>T1</loc> = <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S5</ref></decl>
// CHECK9-NEXT:    <decl:TypeAlias>public typealias <loc>T2</loc> = <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S5</ref></decl>
// CHECK9-NEXT:    <decl:Func>public func <loc>f1(<decl:Param>t: <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S6</ref>.Type.<ref:TypeAlias>T1</ref></decl>)</loc> -> <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S6</ref>.Type.<ref:TypeAlias>T1</ref></decl>
// CHECK9-NEXT:    <decl:Func>public func <loc>f2(<decl:Param>t: <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S6</ref>.Type.<ref:TypeAlias>T2</ref></decl>)</loc> -> <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S6</ref>.Type.<ref:TypeAlias>T2</ref></decl></decl>
// CHECK9-NEXT:    <decl:Extension><decl:Func>public func <loc>f3()</loc></decl></decl>
// CHECK9-NEXT:    <decl:Extension><decl:Func>public func <loc>fromActualExtension()</loc></decl></decl>
// CHECK9-NEXT:    <decl:Func>public func <loc>p3Func(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK9-NEXT:    <decl:Func>public func <loc>ef5(<decl:Param>t: <ref:Struct>S5</ref></decl>)</loc></decl>
// CHECK9-NEXT: }</synthesized>

// CHECK10: <synthesized>extension <ref:module>print_synthesized_extensions</ref>.<ref:Struct>S7</ref>.<ref:Struct>S8</ref> {
// CHECK10-NEXT:     <decl:Func>public func <loc>p3Func(<decl:Param>i: <ref:Struct>Int</ref></decl>)</loc> -> <ref:Struct>Int</ref></decl>
// CHECK10-NEXT:     <decl:Func>public func <loc>ef5(<decl:Param>t: <ref:Struct>S5</ref></decl>)</loc></decl>
// CHECK10-NEXT: }</synthesized>

// CHECK11:      <decl:Struct>public struct <loc>S12</loc> : <ref:Protocol>P5</ref> {
// CHECK11-NEXT:  <decl:TypeAlias>public typealias <loc>T1</loc> = <ref:Struct>Int</ref></decl>
// CHECK11-NEXT:  <decl:Func>/// This is picked
// CHECK11-NEXT:    public func <loc>foo1()</loc></decl></decl>
// CHECK11-NEXT:  <decl:Func>/// This is picked
// CHECK11-NEXT:    public func <loc>foo2()</loc></decl>
// CHECK11-NEXT:  <decl:Func>/// This is picked
// CHECK11-NEXT:    public func <loc>foo3()</loc></decl>
// CHECK11-NEXT:  <decl:Func>/// This is picked
// CHECK11-NEXT:    public func <loc>foo4()</loc></decl>
// CHECK11-NEXT: }</synthesized>

// CHECK12:       <decl:Protocol>public protocol <loc>P6</loc> {
// CHECK12-NEXT:    <decl:Func(HasDefault)>public func <loc>foo1()</loc></decl>
// CHECK12-NEXT:    <decl:Func>public func <loc>foo2()</loc></decl>
// CHECK12-NEXT:  }</decl>

// CHECK13:       <decl:Protocol>public protocol <loc>P7</loc> {
// CHECK13-NEXT:   <decl:AssociatedType>associatedtype <loc>T1</loc></decl>
// CHECK13-NEXT:   <decl:Func>public func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc></decl>
// CHECK13-NEXT:  }</decl>

// CHECK13:       <decl:Extension>extension <loc><ref:Protocol>P7</ref></loc> {
// CHECK13-NEXT:   <decl:Func>public func <loc>nomergeFunc(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc> -> <ref:GenericTypeParam>Self</ref>.T1</decl>
// CHECK13-NEXT:   <decl:Func>public func <loc>f1(<decl:Param>t: <ref:GenericTypeParam>Self</ref>.T1</decl>)</loc> -> <ref:GenericTypeParam>Self</ref>.T1</decl>
// CHECK13-NEXT:  }</decl>
