realm / SwiftLint

A tool to enforce Swift style and conventions.
https://realm.github.io/SwiftLint
MIT License
18.61k stars 2.22k forks source link

`unused_import` not taking into account `@_exported import` #5528

Open NachoSoto opened 5 months ago

NachoSoto commented 5 months ago

New Issue Checklist

Describe the bug

I'm running into the exact same as #2877. I see there were a few improvements to this in 0.54, but with a multi-module setup like in #2877, import A is removed when the code depends on symbols from B. Similarly, code that depends on CoreFoundation (for example, CGFloat), but only imports Foundation gets this import removed.

Complete output when running SwiftLint, including the stack trace and command used

I haven't tried a small repro project, and this is currently happening in a large project so the output is very long. This is the command:

$ xcodebuild -configuration Debug -workspace ${WORKSPACE} -scheme ${SCHEME} -destination 'generic/platform=iOS' | tee build.log
$ swiftlint analyze --compiler-log-path build.log --fix

Environment

// This is removed
import Foundation

public func method(_ value: CGFloat) {}