Files
sourcekit-lsp/Sources/SwiftExtensions/Array+Safe.swift
Paul LeMarquand 1abfb65a51 Prepend module name to TestItem IDs
It is possible to have two identically named suites in two different
test targets. These were being erroniously rolled up in to the same
parent TestItem.

Disambiguate these TestItems by prepending the module name. This has the
added benefit of making the TestItem IDs a fully qualified name that can
be passed to `swift test`.

The module name is pulled from the compiler arguments for the target. If
no module name can be found we fall back to the `targetID` for the
`ConfiguredTarget`.
2024-07-02 14:19:57 -04:00

20 lines
763 B
Swift

//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift.org open source project
//
// Copyright (c) 2014 - 2018 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See https://swift.org/LICENSE.txt for license information
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
extension Array {
/// Returns the element at the specified index if it is within the Array's
/// bounds, otherwise `nil`.
public subscript(safe index: Index) -> Element? {
return index >= 0 && index < count ? self[index] : nil
}
}