Fix false positives in unused_import rule for constructors defined in transitive modules (#5246)

This commit is contained in:
John Szumski
2023-10-01 05:19:41 -04:00
committed by GitHub
parent 68b27d8310
commit 696e19df33
3 changed files with 16 additions and 0 deletions
+5
View File
@@ -24,6 +24,11 @@
[jszumski](https://github.com/jszumski)
[#5242](https://github.com/realm/SwiftLint/pull/5242)
* Fix false positive in `unused_import` rule when using a constructor
defined in a transitive module.
[jszumski](https://github.com/jszumski)
[#5246](https://github.com/realm/SwiftLint/pull/5246)
## 0.53.0: Laundry List
#### Breaking
@@ -177,6 +177,11 @@ private extension SwiftLintFile {
}
appendUsedImports(cursorInfo: cursorInfo, usrFragments: &usrFragments)
// also collect modules from secondary symbol usage if available
for secondaryInfo in cursorInfo.secondarySymbols {
appendUsedImports(cursorInfo: secondaryInfo, usrFragments: &usrFragments)
}
}
return (imports: imports, usrFragments: usrFragments)
@@ -180,6 +180,12 @@ public struct SourceKittenDictionary {
let array = value["key.inheritedtypes"] as? [SourceKitRepresentable] ?? []
return array.compactMap { ($0 as? [String: String]).flatMap { $0["key.name"] } }
}
public var secondarySymbols: [SourceKittenDictionary] {
let array = value["key.secondary_symbols"] as? [SourceKitRepresentable] ?? []
return array.compactMap { $0 as? [String: SourceKitRepresentable] }
.map(Self.init)
}
}
extension SourceKittenDictionary {