   return s.fn()
 }
 
+func forceStaticMemberResult() -> Int {
+  return S.static_fn()
+}
+
 func overloadedForceMemberResult() -> Int {
   return overloaded().fn()
 }

_ = s.k
s.m = 7
s.j = 3

struct T {
  let i: Float!

  var m: Int

  func fn() -> Int! { return i }
  static func static_fn() -> Int! { return 0 }

  init(i: Int!, j: Int!, k: Int, m: Int) {
    self.i = i
    self.j = j
    self.k = k
    self.m = m
  }

  init!() {
    i = 0
    j = 0
    k = 0
    m = 0
  }
}

func takesStruct(s: S) {
