
public func getVersion() -> Int {
#if BEFORE
  return 0
#else
  return 1
#endif
}

@_fixed_layout public struct AddConformance {
  public init() {
    x = 0
    y = 0
  }

  public var x: Int
  public var y: Int

  public var z: Int {
    get { return x + y }
    set {
      x = newValue / 2
      y = newValue - x
    }
  }
}

public protocol PointLike {
  var x: Int { get set }
  var y: Int { get set }
}

public protocol Point3DLike {
  var z: Int { get set }
}

#if AFTER
extension AddConformance : PointLike {}
extension AddConformance : Point3DLike {}
#endif

public func workWithPointLike<T>(_ t: T) -> Int {
  if let p = t as? PointLike {
    return p.x * p.y
  } else {
    return 0
  }
}
