             let (rawComponent, optNextType) = buffer.next()
             let nextType = optNextType ?? Value.self
             func project<CurValue>(_: CurValue.Type) {
-              // FIXME: Opened archetype specialization fails to propagate uses
-              // in some cases. rdar://problem/31749245
-              @inline(never)
               func project2<NewValue>(_: NewValue.Type) {
                 p = rawComponent.projectMutableAddress(p,
                                              from: CurValue.self,

        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 {

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