 
 func usesConformingType1(_ c: ConformingType1) {
   // We should pick First.doStuff() here, since Second.doStuff() is unavailable
-	let result = c.doStuff(123)
-	let _: Bool = result
+  let result = c.doStuff(123)
+  let _: Bool = result
 }
 
 @available(macOS 100, *)
 func usesConformingType1a(_ c: ConformingType1) {
   // We should pick Second.doStuff() here, since it is more specialized than
   // First.doStuff()
-	let result = c.doStuff(123)
-	let _: Int = result
+  let result = c.doStuff(123)
+  let _: Int = result
 }
 
 // Same as above but unconditionally unavailable


// Associated conformance with unavailability
protocol Rider {
	associatedtype H : Horse
}

struct AssocConformanceUnavailable : Rider {
// expected-error@-1 {{conformance of 'HasUnavailableConformance1' to 'Horse' is unavailable}}
// expected-note@-2 {{in associated type 'Self.H' (inferred as 'HasUnavailableConformance1')}}
	typealias H = HasUnavailableConformance1
}

// Associated conformance with deprecation
struct AssocConformanceDeprecated : Rider {
// expected-warning@-1 {{conformance of 'HasDeprecatedConformance1' to 'Horse' is deprecated}}
// expected-note@-2 {{in associated type 'Self.H' (inferred as 'HasDeprecatedConformance1')}}
	typealias H = HasDeprecatedConformance1
}

// Associated conformance with availability


func usesConformingType2(_ c: ConformingType2) {
  // We should pick First.doStuff() here, since Second.doStuff() is unavailable
  let result = c.doStuff(123)
  let _: Bool = result
}

// Make sure this also works for synthesized conformances
struct UnavailableHashable {
  let x: Int
  let y: Int
}

@available(macOS 100, *)
