Xcode shows doc comment from a protocol declaration instead of protocol conformance

When jumping to String definition in Xcode and looking there for e.g. reserveCapacity function, it shows following:

    /// Prepares the collection to store the specified number of elements, when
    /// doing so is appropriate for the underlying type.
    ///
    /// If you will be adding a known number of elements to a collection, use
    /// this method to avoid multiple reallocations. A type that conforms to
    /// `RangeReplaceableCollection` can choose how to respond when this method
    /// is called. Depending on the type, it may make sense to allocate more or
    /// less storage than requested or to take no action at all.
    ///
    /// - Parameter n: The requested number of elements to store.
    @inlinable public mutating func reserveCapacity(_ n: Int)

This is doc comment from RangeReplaceableCollection protocol.

String conformance to this protocol has following:

  /// Reserves enough space in the string's underlying storage to store the
  /// specified number of ASCII characters.
  ///
  /// Because each character in a string can require more than a single ASCII
  /// character's worth of storage, additional allocation may be necessary
  /// when adding characters to a string after a call to
  /// `reserveCapacity(_:)`.
  ///
  /// - Parameter n: The minimum number of ASCII character's worth of storage
  ///   to allocate.
  ///
  /// - Complexity: O(*n*)
  public mutating func reserveCapacity(_ n: Int) {

This is exactly what has to be shown for reserveCapacity in String.

Is it a bug? Where should I file this bug?

Regards,
Valeriy Van

Sounds like an Xcode bug for which you’d file a feedback.

1 Like