Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Jan 6, 2026

The async_without_await rule incorrectly flagged override functions, property accessors, and initializers that don't await. These declarations must retain async to properly override the parent's async signature.

class Parent {
    func test() async { await foo() }
}

class Child: Parent {
    // Previously flagged as violation, now correctly allowed
    override func test() async { 
        print("Child")
    }
}

Changes

  • FunctionDeclSyntax: Skip violation when override modifier present
  • AccessorDeclSyntax: Walk syntax tree to check if parent variable/subscript has override
  • InitializerDeclSyntax: Skip violation when override modifier present
  • Added Syntax.closestVariableOrSubscript() helper for accessor parent lookup
  • Added non-triggering examples for all three override scenarios

Note

CHANGELOG placeholder #ISSUE_NUMBER should be replaced with the actual issue reference.

Original prompt

This section details on the original issue you should resolve

<issue_title>False positive triggers for async_without_await, unneeded_throws_rethrows with override functions</issue_title>
<issue_description>### New Issue Checklist

Bug Description

async_without_await, unneeded_throws_rethrows "false positive" triggers when function has override.

class A {
    func test() async {
        try? await Task.sleep(for: .seconds(0.5)) 
        print("A")
    }
}

class B: A {
    override func test() async { 
        print("B")
    }
}

Task {
    let b = B()
    await b.test()
}

The following code produces B as output, but when the rule is enabled, it suggests to replace to:

class B: A {
    func test() { 
        print("B")
    }
}

as a result, the output will be A, because it doesn't override the original function. So the rule breaks the logic.
The same happens for throws in unneeded_throws_rethrows rule.

I would suggest excluding the warning for functions that have override

$ swiftlint lint

Environment

  • SwiftLint version: 0.63.0
  • Xcode version: 26.0.1
  • Installation method used: Universal macOS Binary
  • Configuration file:
only_rules:
- async_without_await
- unneeded_throws_rethrows

Are you using nested configurations? If so, paste their
relative paths and respective contents.
</issue_description>

<agent_instructions>Ignore override functions in the async_without_await rule, that is, even if the function doesn't await anything, keep the async keyword.</agent_instructions>

Comments on the Issue (you are @copilot in this section)

@SimplyDanny For `throws` that's not a problem. Overriding function can omit the `throws` if the function doesn't actually throw. But you're right for `async`. It cannot be left out.

✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 2 commits January 6, 2026 20:33
Co-authored-by: SimplyDanny <16365760+SimplyDanny@users.noreply.github.com>
…await rule

Co-authored-by: SimplyDanny <16365760+SimplyDanny@users.noreply.github.com>
@SwiftLintBot
Copy link

SwiftLintBot commented Jan 6, 2026

1 Warning
⚠️ This PR may need tests.
289 Messages
📖 Building this branch resulted in a binary size of 27222.4 KiB vs 27205.98 KiB when built on main (0% larger).
📖 Linting Aerial with this PR took 0.77 s vs 0.78 s on main (1% faster).
📖 Linting Alamofire with this PR took 1.05 s vs 1.06 s on main (0% faster).
📖 Linting Brave with this PR took 6.93 s vs 6.93 s on main (0% slower).
📖 Linting DuckDuckGo with this PR took 22.91 s vs 22.96 s on main (0% faster).
📖 Linting Firefox with this PR took 11.09 s vs 11.1 s on main (0% faster).
📖 Linting Kickstarter with this PR took 7.6 s vs 7.63 s on main (0% faster).
📖 Linting Moya with this PR took 0.43 s vs 0.45 s on main (4% faster).
📖 Linting NetNewsWire with this PR took 2.31 s vs 2.31 s on main (0% slower).
📖 Linting Nimble with this PR took 0.67 s vs 0.68 s on main (1% faster).
📖 Linting PocketCasts with this PR took 7.23 s vs 7.2 s on main (0% slower).
📖 Linting Quick with this PR took 0.4 s vs 0.43 s on main (6% faster).
📖 Linting Realm with this PR took 3.31 s vs 3.28 s on main (0% slower).
📖 Linting Sourcery with this PR took 1.81 s vs 1.82 s on main (0% faster).
📖 Linting Swift with this PR took 4.33 s vs 4.33 s on main (0% slower).
📖 Linting SwiftLintPerformanceTests with this PR took 0.34 s vs 0.34 s on main (0% slower).
📖 Linting VLC with this PR took 1.11 s vs 1.13 s on main (1% faster).
📖 Linting Wire with this PR took 17.14 s vs 17.46 s on main (1% faster).
📖 Linting WordPress with this PR took 11.54 s vs 11.55 s on main (0% faster).
📖 This PR fixed a violation in Brave: /ios/brave-ios/Tests/ClientTests/Helpers/DefaultBrowserHelperTests.swift:14:25: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Brave: /ios/brave-ios/Sources/Brave/BraveSkus/BraveSkusWebHelper.swift:161:32: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGoTests/Subscription/SimplifiedPaywall/SubscriptionPagesUseSubscriptionFeatureSimplifiedPaywallTests.swift:39:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGoTests/DuckPlayer/DuckPlayerUserScriptYoutubeTests.swift:38:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Sources/SyncDataProviders/Settings/SettingsProvider.swift:130:80: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Sources/SyncDataProviders/CreditCards/CreditCardsProvider.swift:117:80: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Sources/SyncDataProviders/Bookmarks/BookmarksProvider.swift:94:80: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Sources/SyncDataProviders/Identities/IdentitiesProvider.swift:117:80: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Sources/SyncDataProviders/Credentials/CredentialsProvider.swift:102:80: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Tab/SearchNonexistentDomainTests.swift:81:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireproofDomainsStoreMock.swift:105:58: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/History/HistoryIntegrationTests.swift:70:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/DBPE2ETests/DBPEndToEndTests.swift:69:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteDetectorTests.swift:32:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteDetectorTests.swift:39:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionDataManagerTests.swift:34:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionDataManagerTests.swift:49:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:41:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyStatsTests/CurrentPackTests.swift:27:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyStatsTests/PrivacyStatsUtilsTests.swift:27:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyStatsTests/PrivacyStatsUtilsTests.swift:33:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyStatsTests/PrivacyStatsTests.swift:29:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyStatsTests/PrivacyStatsTests.swift:34:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/SubscriptionTests/SubscriptionUserScript/SubscriptionUserScriptTests.swift:30:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NetworkingTests/Auth/OAuthClientTests.swift:67:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NetworkingTests/Auth/OAuthClientTests.swift:78:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/ContentBlocker/UserContentControllerTests.swift:57:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/LocalPackages/NetworkProtectionMac/Sources/NetworkProtectionProxy/Provider/TransparentProxyProvider.swift:238:69: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Favicons/FaviconManagerTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/HomePage/HomePageSettingsModelTests.swift:41:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/HomePage/HomePageSettingsModelTests.swift:62:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/HomePage/UserBackgroundImagesManagerTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/HomePage/UserBackgroundImagesManagerTests.swift:45:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/MaliciousSiteProtection/MaliciousSiteProtectionTests.swift:46:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/MaliciousSiteProtection/MaliciousSiteProtectionTests.swift:54:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/FileDownload/FilePresenterTests.swift:39:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Tab/Model/TabCrashIndicatorModelTests.swift:34:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/ContentBlocker/ContentBlockingUpdatingTests.swift:41:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Subscription/SubscriptionErrorReporterTests.swift:38:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Subscription/SubscriptionErrorReporterTests.swift:54:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Subscription/SubscriptionAppStoreRestorerTests.swift:99:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Bookmarks/ViewModels/AddBookmarkPopoverViewModelTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Fire/FireDialogViewModelTests.swift:2073:58: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Bookmarks/Model/BookmarkMigrationTests.swift:58:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/Bookmarks/Model/BookmarkMigrationTests.swift:63:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/View/Onboarding/UserDefaultsHistoryViewOnboardingViewSettingsPersistorTests.swift:27:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/View/Onboarding/HistoryViewOnboardingViewModelTests.swift:28:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/View/DefaultHistoryViewTabOpenerTests.swift:51:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/View/Onboarding/HistoryViewOnboardingDeciderTests.swift:35:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/View/HistoryViewActionsHandlerTests.swift:70:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageCustomizationProviderTests.swift:36:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageCustomizationProviderTests.swift:57:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageAIChatShortcutSettingProviderTests.swift:33:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageAIChatShortcutSettingProviderTests.swift:46:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageNextStepsCardsProviderTests.swift:34:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/History/Services/HistoryViewDataProviderTests.swift:55:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/NewTabPage/NewTabPageNextStepsCardsPixelHandlerTests.swift:28:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /macOS/UnitTests/TabExtensionsTests/TabCrashRecoveryExtensionTests.swift:79:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/DataBrokerProtectionCore/Tests/DataBrokerProtectionCoreTests/CaptchaServiceTests.swift:43:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/DataBrokerProtectionCore/Tests/DataBrokerProtectionCoreTests/EarliestBeginDateForBackgroundTaskCalculationTests.swift:34:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/DataBrokerProtectionCore/Tests/DataBrokerProtectionCoreTests/EmailServiceTests.swift:38:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/DataBrokerProtectionCore/Tests/DataBrokerProtectionCoreTests/BrokerProfileJobActionTests.swift:34:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Firefox: /firefox-ios/firefox-ios-tests/Tests/XCUITests/FeatureFlaggedTestBase.swift:46:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in NetNewsWire: /Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift:18:24: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in NetNewsWire: /Modules/Account/Tests/AccountTests/AccountCredentialsTest.swift:22:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:44:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:91:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:127:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:166:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:201:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Discover/DiscoverItemObservableTests.swift:248:84: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Playback/Chapters/ChapterManagerTests.swift:104:87: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Playback/Effects/AudioUtilsTests.swift:10:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Playback/Effects/AudioUtilsTests.swift:14:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in PocketCasts: /PocketCastsTests/Tests/Player/Transcripts/TranscriptManagerTests.swift:30:89: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/MapTests.swift:1081:51: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/MapTests.swift:1085:63: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:1768:54: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:1770:40: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:1772:44: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:1774:57: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:1776:51: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:2020:54: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:2022:40: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:2024:44: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:2026:57: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Realm: /RealmSwift/Tests/RealmCollectionTypeTests.swift:2028:51: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireAuthentication/Tests/WireAuthenticationLogicTests/LoginViaSSOUseCaseTests.swift:39:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireAuthentication/Tests/WireAuthenticationUITests/Registration/VerificationEmailCodeViewModelTests.swift:39:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireAuthentication/Tests/WireAuthenticationUITests/Registration/PersonalAccountCreationViewModelTests.swift:40:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireAuthentication/Tests/WireAuthenticationUITests/LoginViaEmail/LoginViaEmailViewModelTests.swift:46:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/GroupParticipantsDetailViewControllerSnapshotTests.swift:55:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/ChangeEmailViewControllerSnapshotTests.swift:37:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/ConfirmEmailViewControllerTests.swift:37:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/SettingsTableViewControllerSnapshotTests.swift:41:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/LegalHoldDetailsViewControllerSnapshotTests.swift:38:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/ChangeHandleViewControllerTests.swift:36:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/Settings/Debug Report/SettingsDebugReportViewControllerSnapshotTests.swift:34:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/Collection/CollectionsViewControllerTests.swift:59:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/MessageDetails/MessageDetailsViewControllerTests.swift:39:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/ConversationList/Container/ConversationListViewControllerViewModelTests.swift:36:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/UserInterface/ConversationList/ArchivedList/ArchivedListViewModelTests.swift:49:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/UserProfile/ProfileViewControllerTests.swift:40:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/UserInterface/MainController/SidebarViewControllerBuilderSnapshotTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /wire-ios/Wire-iOS Tests/ConversationDetail/GroupDetailsViewControllerSnapshotTests.swift:36:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireMoveToFolderUITests/FolderPickerViewModelTests.swift:35:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireMoveToFolderUITests/FolderPickerViewModelTests.swift:44:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/BackupImportExportRootViewSnapshotTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/BackupImportExportRootViewSnapshotTests.swift:37:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/CreatingBackupProgressViewSnapshotTests.swift:30:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/CreatingBackupProgressViewSnapshotTests.swift:35:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/SetBackupPasswordViewSnapshotTests.swift:31:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/SetBackupPasswordViewSnapshotTests.swift:37:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Import/ImportProgressViewSnapshotTests.swift:30:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Import/ImportProgressViewSnapshotTests.swift:35:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/ExportBackupViewModelTests.swift:36:27: Warning: Declaration should not be async if it doesn't use await (async_without_await)
📖 This PR fixed a violation in Wire: /WireUI/Tests/WireSettingsUITests/Account/BackupImportExport/Export/ExportBackupViewModelTests.swift:51:30: Warning: Declaration should not be async if it doesn't use await (async_without_await)
⚠️ Danger found 289 violations with this PR. Due to GitHub's max issue comment size, the number shown has been truncated to 136.

Generated by 🚫 Danger

Co-authored-by: SimplyDanny <16365760+SimplyDanny@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix false positive triggers in SwiftLint for override functions Fix async_without_await false positives for override declarations Jan 6, 2026
Copilot AI requested a review from SimplyDanny January 6, 2026 20:54
@SimplyDanny SimplyDanny marked this pull request as ready for review January 6, 2026 21:50
@SimplyDanny SimplyDanny merged commit 7a9186a into main Jan 7, 2026
27 checks passed
@SimplyDanny SimplyDanny deleted the copilot/fix-async-without-await-issue branch January 7, 2026 19:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

False positive triggers for async_without_await, unneeded_throws_rethrows with override functions

3 participants