Skip to content

Fix multiline_call_arguments with enum-case patterns.#6444

Open
GandaLF2006 wants to merge 4 commits intorealm:mainfrom
GandaLF2006:gandalf2006/multiline_call_arguments-improve
Open

Fix multiline_call_arguments with enum-case patterns.#6444
GandaLF2006 wants to merge 4 commits intorealm:mainfrom
GandaLF2006:gandalf2006/multiline_call_arguments-improve

Conversation

@GandaLF2006
Copy link
Copy Markdown
Contributor

Summary

This PR fixes false positives in multiline_call_arguments when enum-case patterns (e.g. .caseOne(...)) are used in pattern-matching positions. SwiftSyntax represents such patterns as FunctionCallExprSyntax, so the rule previously treated them as real calls and produced violations.

Problem

The rule could incorrectly lint enum-case patterns in pattern-matching constructs, e.g.:

if case .caseOne(1, 2, 3, 4) = value {
    // ...
}

This is a pattern, not a function call, but it was previously linted as a call expression.

Fix

We now ignore FunctionCallExprSyntax nodes only when they are located inside a pattern subtree (pattern-part only), by walking up the parent chain and checking containment within pattern containers:

  • MatchingPatternConditionSyntax (e.g. if/guard/while case ...)
  • SwitchCaseItemSyntax (e.g., case .foo(...))
  • ForStmtSyntax (e.g., for case let .foo(...) in ...)
  • CatchClauseSyntax (e.g. catch EnumCase.foo(...) / catch let EnumCase.foo(...))

@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch from 295f111 to 241eec6 Compare January 17, 2026 16:39
@SwiftLintBot
Copy link
Copy Markdown

SwiftLintBot commented Jan 17, 2026

4241 Warnings
⚠️ Big PR
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/SourcesViewController.swift:232:113: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/SourcesViewController.swift:258:108: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/SourcesViewController.swift:266:109: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/SourcesViewController.swift:307:84: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/SourcesViewController.swift:328:84: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/Settings panels/NowPlayingViewController.swift:212:95: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Resources/MainUI/VideosViewController.swift:716:69: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Music/Music.swift:47:152: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Music/Music.swift:52:136: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Cache/VideoDownload.swift:84:64: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:153:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:223:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:267:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:303:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Aerial.swift:179:37: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Aerial.swift:183:66: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Models/Downloads/FileHelpers.swift:17:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/PrefPanel/InfoCommonView.swift:157:81: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/ClockLayer.swift:80:39: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/BatteryIconLayer.swift:76:42: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ConditionSymbolLayer.swift:94:69: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ConditionSymbolLayer.swift:97:70: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ConditionSymbolLayer.swift:133:69: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ConditionSymbolLayer.swift:136:70: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:65:47: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:93:47: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:253:40: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:352:40: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/AerialView.swift:638:23: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/AerialView.swift:643:73: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Aerial: /Aerial/Source/Views/AerialView.swift:646:72: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in Alamofire: /Tests/TestHelpers.swift:467:22: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Tests/SparkleAppUpdaterTests/UpdateWideEventDataTests.swift:182:76: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Tests/SparkleAppUpdaterTests/UpdateWideEventDataTests.swift:281:72: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Tests/SparkleAppUpdaterTests/UpdateWideEventDataTests.swift:410:45: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Sources/SparkleAppUpdater/SparkleUpdateCompletionValidator.swift:101:20: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Sources/SparkleAppUpdater/SparkleUpdateCompletionValidator.swift:108:20: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/LocalPackages/AppUpdater/Sources/SparkleAppUpdater/SparkleUpdateCompletionValidator.swift:128:16: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Favicons/FaviconUserScriptIntegrationTests.swift:245:64: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Favicons/FaviconUserScriptIntegrationTests.swift:276:61: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Tab/SearchNonexistentDomainTests.swift:253:47: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:105:73: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:107:82: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:112:49: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:117:56: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:139:102: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:154:102: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:176:102: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:183:106: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:707:75: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:32:24: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:37:25: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:42:25: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:47:25: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:52:25: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:62:24: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:63:40: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:67:41: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:70:40: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:73:40: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BookmarksTests/FaviconsFetcher/BookmarkDomainsTests.swift:170:46: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:68:85: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:195:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:202:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:267:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:273:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Mappers/JsonToRemoteConfigModelMapperTests.swift:49:58: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:77:69: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:264:69: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:280:69: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:298:69: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:311:69: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/DesktopUserAttributeMatcherTests.swift:182:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/DesktopUserAttributeMatcherTests.swift:188:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/DesktopUserAttributeMatcherTests.swift:194:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/DesktopUserAttributeMatcherTests.swift:202:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:233:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:241:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:247:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:253:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:259:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:265:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:320:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:327:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:334:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:346:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:353:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:360:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:367:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Matchers/CommonUserAttributeMatcherTests.swift:379:12: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyConfigTests/FeatureFlagger/ExperimentCohortsManagerTests.swift:201:37: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/DistributedNavigationDelegateTests.swift:446:107: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/DistributedNavigationDelegateTests.swift:639:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/Helpers/NavigationTestHelpers.swift:273:90: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/NavigationRedirectsTests.swift:703:65: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/NavigationRedirectsTests.swift:748:65: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/SubscriptionTests/Storage/KeychainManagerTests.swift:376:77: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Statistics/UsageSegmentationCalculationTests.swift:61:13: Warning: In multi-line calls, a newline is required after each comma (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/LinkProtection/URLParameterTests.swift:95:55: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/DataClearing/DataClearingWideEventDataTests.swift:725:86: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillEmailUserScriptTests.swift:66:79: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:295:68: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:416:83: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:430:85: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:444:84: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:457:78: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/ContentBlocker/ContentBlockerRulesManagerTests.swift:963:71: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/SuggestionsTests/SuggestionLoadingTests.swift:149:73: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:130:50: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:134:59: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:138:45: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:144:50: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:159:59: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:163:53: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:165:63: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ This PR introduced a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:167:63: Warning: In multi-line calls, each argument must start on its own line (multiline_call_arguments)
⚠️ Danger found 4241 violations with this PR. Due to GitHub's max issue comment size, the number shown has been truncated to 117.
3946 Messages
📖 Building this branch resulted in a binary size of 27494.71 KiB vs 27476.09 KiB when built on main (0% larger).
📖 Linting Aerial with this PR took 0.79 s vs 0.8 s on main (1% faster).
📖 Linting Alamofire with this PR took 1.01 s vs 1.03 s on main (1% faster).
📖 Linting Brave with this PR took 7.25 s vs 7.21 s on main (0% slower).
📖 Linting DuckDuckGo with this PR took 27.5 s vs 27.38 s on main (0% slower).
📖 Linting Firefox with this PR took 12.1 s vs 12.06 s on main (0% slower).
📖 Linting Kickstarter with this PR took 8.32 s vs 8.31 s on main (0% slower).
📖 Linting Moya with this PR took 0.49 s vs 0.44 s on main (11% slower).
📖 Linting NetNewsWire with this PR took 2.6 s vs 2.62 s on main (0% faster).
📖 Linting Nimble with this PR took 0.72 s vs 0.7 s on main (2% slower).
📖 Linting PocketCasts with this PR took 7.67 s vs 7.83 s on main (2% faster).
📖 Linting Quick with this PR took 0.43 s vs 0.45 s on main (4% faster).
📖 Linting Realm with this PR took 3.06 s vs 2.94 s on main (4% slower).
📖 Linting Sourcery with this PR took 1.89 s vs 1.87 s on main (1% slower).
📖 Linting Swift with this PR took 4.68 s vs 4.67 s on main (0% slower).
📖 Linting SwiftLintPerformanceTests with this PR took 0.34 s vs 0.35 s on main (2% faster).
📖 Linting VLC with this PR took 1.25 s vs 1.25 s on main (0% slower).
📖 Linting Wire with this PR took 18.72 s vs 18.72 s on main (0% slower).
📖 Linting WordPress with this PR took 12.68 s vs 12.68 s on main (0% slower).
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Music/Music.swift:45:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Music/Music.swift:50:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Cache/VideoDownload.swift:83:32: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Aerial.swift:179:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Aerial.swift:179:24: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:152:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:222:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:266:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Cache/Cache.swift:302:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Models/Downloads/FileHelpers.swift:16:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/ClockLayer.swift:78:40: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/BatteryIconLayer.swift:76:28: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:65:34: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:93:34: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:253:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/Layers/Weather/ForecastLayer.swift:352:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/AerialView.swift:637:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/AerialView.swift:641:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Aerial: /Aerial/Source/Views/AerialView.swift:644:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in Alamofire: /Tests/TestHelpers.swift:467:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Favicons/FaviconUserScriptIntegrationTests.swift:245:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Favicons/FaviconUserScriptIntegrationTests.swift:276:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Tab/SearchNonexistentDomainTests.swift:248:51: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:105:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:107:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:112:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:117:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:139:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:154:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:176:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:183:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /macOS/IntegrationTests/Fire/FireTests.swift:707:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:29:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:33:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:38:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:43:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:48:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:56:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:63:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:67:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:70:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/Mocks/MockMaliciousSiteProtectionAPIClient.swift:73:12: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BookmarksTests/FaviconsFetcher/BookmarkDomainsTests.swift:166:29: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/MaliciousSiteProtectionTests/MaliciousSiteProtectionUpdateManagerTests.swift:68:25: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/Mappers/JsonToRemoteConfigModelMapperTests.swift:46:26: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:76:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:263:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:279:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:297:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/RemoteMessagingTests/RemoteMessagingStoreTests.swift:310:27: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/PrivacyConfigTests/FeatureFlagger/ExperimentCohortsManagerTests.swift:199:36: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/DistributedNavigationDelegateTests.swift:446:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/NavigationTests/Helpers/NavigationTestHelpers.swift:272:42: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/SubscriptionTests/Storage/KeychainManagerTests.swift:376:29: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/LinkProtection/URLParameterTests.swift:95:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/DataClearing/DataClearingWideEventDataTests.swift:725:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillEmailUserScriptTests.swift:66:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:295:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:416:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:430:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:444:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/Autofill/AutofillVaultUserScriptTests.swift:457:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/BrowserServicesKitTests/ContentBlocker/ContentBlockerRulesManagerTests.swift:961:24: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/SuggestionsTests/SuggestionLoadingTests.swift:147:26: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:130:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:134:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:138:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:144:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:159:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:163:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:165:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:167:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:171:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:180:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:200:21: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:205:29: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /SharedPackages/BrowserServicesKit/Tests/HistoryTests/BrowsingHistoryMigrationTests.swift:210:25: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/AutofillCredentialProvider/CredentialProvider/Shared/ActionMessageView.swift:182:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/TabInstrumentation.swift:54:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/TabInstrumentation.swift:65:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/Instruments.swift:46:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/Instruments.swift:59:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/UIViewExtension.swift:30:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/UIViewExtension.swift:37:23: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/StatisticsLoader.swift:148:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/BookmarksCachingSearch.swift:106:34: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/Core/PrivacyFeatures.swift:66:38: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/WebExtensions/WebExtensionWindowTabProvider+iOS.swift:92:34: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewControllerMenuBuilderExtension.swift:766:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/BookmarksViewController.swift:146:51: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/UnifiedToggleInput/MainViewController+UnifiedToggleInput.swift:490:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/AppLifecycle/AppStates/Launching.swift:372:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/AlertPlaygroundView.swift:113:25: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/UIHostingControllerExtension.swift:47:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/OnboardingFlow/LinearOnboarding/OnboardingView+IntroDialogContent.swift:81:25: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/OnboardingFlow/LinearOnboarding/OnboardingIntroViewModel.swift:121:36: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/FeatureFlagsDebugSettings/ExperimentCohortView.swift:48:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+MultiSelect.swift:90:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+MultiSelect.swift:270:19: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+MultiSelect.swift:273:19: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/PrivacyIconView.swift:201:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/PrivacyIconView.swift:214:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/SettingsViewModel.swift:1558:28: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/SettingsViewModel.swift:1565:34: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/SettingsViewModel.swift:1788:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/FireMode/FireModePromotionCardView.swift:42:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/AppServices/ReportingService.swift:278:33: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/BrowsingMenu/BrowsingMenuAnimator.swift:109:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:704:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:898:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:2850:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:2864:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:2894:17: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewController.swift:3760:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/InternalUserCommands.swift:55:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabViewCell.swift:324:9: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:27:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:30:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:33:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:35:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:38:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
📖 This PR fixed a violation in DuckDuckGo: /iOS/DuckDuckGo/TabSwitcherViewController+KeyCommands.swift:41:13: Warning: Call should have each parameter on a separate line (multiline_call_arguments)
⚠️ Danger found 3946 violations with this PR. Due to GitHub's max issue comment size, the number shown has been truncated to 141.

Generated by 🚫 Danger

@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch from 241eec6 to 2800379 Compare January 17, 2026 16:40
@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch from 2800379 to 1cb7ca7 Compare January 24, 2026 21:58
@GandaLF2006
Copy link
Copy Markdown
Contributor Author

@SimplyDanny Hey-hey. One more PR to fix rule :)

@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch 3 times, most recently from e553709 to ff1b214 Compare February 22, 2026 17:16
@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch 2 times, most recently from 30e2640 to b4c8cca Compare March 3, 2026 14:47
@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch 2 times, most recently from c4db9e6 to 2155214 Compare March 8, 2026 14:23
@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch 2 times, most recently from 93019ad to 6ab0d0c Compare March 20, 2026 21:26
@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch 2 times, most recently from 992a540 to 986ca2c Compare March 30, 2026 20:29
Copy link
Copy Markdown
Collaborator

@SimplyDanny SimplyDanny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the update! Please consider my comments.

description: "Call should have each parameter on a separate line",
description: """
Enforces one-argument-per-line for multi-line calls; \
optionally limits or forbids multi-argument single-line calls via configuration
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
optionally limits or forbids multi-argument single-line calls via configuration
optionally limits or forbids multi-argument single-line calls via configuration.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

struct MultilineCallArgumentsRule: Rule {
var configuration = MultilineCallArgumentsConfiguration()

enum Reason {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each of them is only used once, isn't it? Would be fine to inline them.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I kept Reason intentionally as a single source of truth for violation messages used by both the rule and the unit tests. This avoids duplicating strings in tests and prevents message drift if we ever tweak wording.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay. I missed the them being used in unit tests as well.

), b: 3
)
""",
configuration: ["max_number_of_single_line_parameters": 10]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this configuration good for?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed

a: (
1,
2
), b: 3
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really multi-line? 😅

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

guard maxNumberOfSingleLineParameters >= 1 else {
throw Issue.inconsistentConfiguration(
ruleID: Parent.identifier,
message: "Option '\($maxNumberOfSingleLineParameters.key)' should be >= 1."
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are quite inconsistent with that in general, but I like it more with the period. And in this case, the similar message in other rules also use it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

var checkedExpressionPattern = false
var checkedValueBindingPattern = false

while let node = current {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder what an example would be that really requires walking up the whole tree. Isn't it enough to check 1-2 parent levels for specific nodes like MatchingPatternConditionSyntax and others?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. The short version is: the relevant “pattern container” isn’t consistently 1–2 parent hops away from the .caseOne(...) node.

For example, in:

if case let .caseOne(_, _, three, _) = value { }

SwiftSyntax models .caseOne(...) as a FunctionCallExprSyntax, but it’s usually wrapped by pattern nodes first. In other words, the parent chain often looks like:

FunctionCallExprSyntax → ExpressionPatternSyntax → ValueBindingPatternSyntax → MatchingPatternConditionSyntax

If we only look 1–2 levels up, we can miss MatchingPatternConditionSyntax and end up linting a pattern as if it were a real call (the exact false positive this PR fixes).

Also, we’re not walking to the root in the normal case: once we hit a top-level container (if/guard/while case, switch case, for case, catch), we check whether we’re inside its pattern subtree and then stop (break). So it stays bounded, but robust.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got your point. However, as long as it's only a hand full of cases to check explicitly, I'd still go with them instead of the generic solution for the sake of simplicity.

Also, the isInside doesn't have an early exit, has it?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The pattern subtree can be nested deeper than 1-2 levels. For case .foo(let a), .foo(...) is inside ExpressionPatternSyntax → ValueBindingPatternSyntax → MatchingPatternConditionSyntax. We need to walk up to verify we're in the pattern, not the body.

The current code does stop once it finds a container and confirms position — it just uses isInside to make that verification simple.

a: (
1,
2
), b: 3
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this really multi-line? 😅

try MultilineCallArgumentsRule(configuration: config)
}

private func validate(_ rule: some Rule, contents: String) -> [StyleViolation] {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could accept the config and create the rule instance itself.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion — agreed. I’ll update the test helper to accept a config dictionary and instantiate MultilineCallArgumentsRule internally.

@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch from 986ca2c to c7e1b1b Compare April 2, 2026 11:56
@GandaLF2006 GandaLF2006 requested a review from SimplyDanny April 2, 2026 11:58
@GandaLF2006
Copy link
Copy Markdown
Contributor Author

Thanks for the update! Please consider my comments.

@SimplyDanny Fixed your comments. Please re-review :)

struct MultilineCallArgumentsRule: Rule {
var configuration = MultilineCallArgumentsConfiguration()

enum Reason {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay. I missed the them being used in unit tests as well.

var checkedExpressionPattern = false
var checkedValueBindingPattern = false

while let node = current {
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got your point. However, as long as it's only a hand full of cases to check explicitly, I'd still go with them instead of the generic solution for the sake of simplicity.

Also, the isInside doesn't have an early exit, has it?

@GandaLF2006 GandaLF2006 force-pushed the gandalf2006/multiline_call_arguments-improve branch from 22530d5 to 30289cf Compare April 7, 2026 21:59
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.

3 participants