 
   // Grab the class object for the key path type we'll end up with.
   func openRoot<Root>(_: Root.Type) -> AnyKeyPath.Type {
+    // FIXME: Opened archetype specialization fails to propagate uses
+    // in some cases. rdar://problem/31749245
+    @inline(never)
     func openLeaf<Leaf>(_: Leaf.Type) -> AnyKeyPath.Type {
       switch capability {
       case .readOnly:

      
      // Start formal access to the mutable value, based on the final base
      // value.
      func formalMutation<MutationRoot>(_ base: MutationRoot)
          -> UnsafeMutablePointer<Value> {
        var base2 = base

        let isLast = optNextType == nil
        
        func project<CurValue>(_ base: CurValue) -> Value? {
          // FIXME: Opened archetype specialization fails to propagate uses
          // in some cases. rdar://problem/31749245
          @inline(never)
          func project2<NewValue>(_: NewValue.Type) -> Value? {
            let newBase: NewValue = rawComponent.projectReadOnly(base)
            if isLast {
