Custom Regex Rule Matching Too Aggressively
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 19.7k
- Forks
- 2.3k
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 11
Description
New Issue Checklist
- Updated SwiftLint to the latest version
- I searched for existing GitHub issues
Describe the bug
I am writing a custom regex rule that I want to match on lines where a property is not properly marked weak (similar to the weak_delegate rule but not with a delegate protocol. The rule I've got is as follows:
custom_rules:
weak_clickstream_nodes:
regex: "^((?<!weak).)*var.*Clickstream(AnalyticsNodeObject|Node)\?$"
message: "Clickstream nodes must be marked as weak"
When I run the regex in Xcode it finds lines correctly, but SwiftLint is matching lines that have weak too. Here are some sample lines to test against:
// Should match
public var next: ClickstreamNode?
public var parent: ClickstreamAnalyticsNodeObject?
// Should not match
public weak var next: ClickstreamNode?
weak public var next: ClickstreamNode?
public weak var next: ClickstreamAnalyticsNodeObject?
weak public var next: ClickstreamAnalyticsNodeObject?
public func send(from node: ClickstreamNode?, to dispatcher: ClickstreamDispatcher = .mapi) -> Impression {```
The regex in my custom rule does match the top 2, but SwiftLint matches the top 4 in the "Should not match" section as well.
##### Complete output when running SwiftLint, including the stack trace and command used
```bash
$ ./vendor/swiftlint lint --quiet --config ./tools/swiftlint.yml
/Users/q1214382/Developer/zulily_ios_main/Tests/ZulilyUnitTests/Sources/ZulilyKit/Wireframes/WireframeLoggingTests.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyFoundation/Sources/Models/Product/v5/ProductRequirements.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyFoundation/Sources/Models/Cart/Promotion.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyFoundation/Sources/Models/SimilarItem.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyFoundation/Sources/Models/IneligibleItem.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyFoundation/Sources/Logging/NavigationUserAction.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/zulily/Sources/Redesign/ClosingContainerWindow.swift:17:5: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/zulily/Sources/Redesign/ClosingContainerWindow.swift:29:5: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/OrderMainPageFrameV1/OrderMainPageFrameV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/OrderDetailsFrameV1/OrderDetailsFrameV1.swift:14:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/ShippingAddressesFrameV1/ShippingAddressesFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Cart Frame V1/CartFrameV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/PaymentEntryFormFrameV1/PaymentEntryFormFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/ZuCard Frame V1/ZuCardFrameV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Product Details Frame V1/ProductDetailsFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Product Details Frame V1/Injectors/ProductDashboard.ClickableCouponV2View.swift:38:17: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/One Column Wireframe V1/OneColumnWireframeV1.swift:19:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Account Wireframe V1/AccountWireframeV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/ZuCard Quick App Frame V1/ZuCardQuickAppApplicationViewController.swift:51:17: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Cookie Consent Banner Frame V1/CookieConsentBannerFrameV1.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/PaymentSelectionFrameV1/PaymentSelectionFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/ZuCard Quick App Frame V1/ZuCardQuickAppFrameV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Search Frame V1/SearchFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/ZuCardFrameV2/ZuCardFrameV2.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/GiftCardFrameV2/GiftCardFrameV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/OrderItemActionFrameV1/OrderItemActionFrameV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Address Form Frame V1/AddressFormFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Checkout Frame v1/CheckoutFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/Two Column Wireframe V1/TwoColumnWireframeV1.swift:26:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/OrderConfirmationFrameV1/OrderConfirmationFrameV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/CountryListFrameV1/CountryListFrameV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Wireframes/AddressVerification/AddressVerificationFrameV1.swift:19:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Love.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Geo v1/GeotargetV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Placeholder v1/PlaceholderV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Toggle V1/ToggleV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CheckoutItemTileV1/CheckoutItemTileV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/DrillInV3/DrillInV3.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Autoscale Horizontal v1/AutoscaleHorizontalV1SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Flash Finds V1/FlashFindsV1SectionStyle.swift:60:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Brands Horizontal V2/SharedHorizontalSection.swift:23:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/HeaderV8/HeaderV8.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Notify v1/CartNotifyV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderFilterV1/OrderFilterV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Flag V1/FlagSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Inject V2/InjectV2SectionStyle.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Horizontal Separator v2/HorizontalSeparatorV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Brand Header V1/BrandHeaderV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Gift Card V1/GiftCardV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Header V7/HeaderV7.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/GiftMessageV1/GiftMessageV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Filter V3/FilterV3.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Categories Horizontal V2/CategoriesHorizontalV2SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Descriplet V1/DescripletV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/EVents Horizontal v2/EventsHorizontalV2SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Standard Product/StandardProductStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Summaries/CartItemSummaryV4.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Summaries/CartItemSummaries.swift:74:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Header No Padding/HeaderNoPadding.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Brand Favorite V1/BrandFavoriteV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Items Horizontal V1/ItemsHorizontalV1.swift:21:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Standard Event v1/StandardEventV1SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderConfirmationV1/OrderConfirmationV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Notice V2/CartItemNoticeV2.swift:13:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Billboard v1/BillboardSectionStyle.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Category Tree V1/models/CategoryTreeV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/HighlightSavingsV1/HighlightSavingsV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/EventTileV1/EventTileV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ATB/ATB Swipe/ATB Swipe V2 Cell/ATBSwipeV2CellStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ATB/ATB Standard Cell/ATBStandardCellStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ATB/ATBModel.swift:22:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/DescripletV6/DescripletV6.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Actions V1/CartItemActionsV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Categories Inline/CategoriesInlineSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Hero v2/HeroV2SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Hero Product/HeroProductSectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Group Header V1/GroupHeaderV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Shipping Options/ShippingOptionsV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/PaymentMethodV1/PaymentMethodV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/SearchSuggestionV1/SearchSuggestionV1.swift:19:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CartNotificationHeaderV1/CartNotificationHeaderV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Section Protocols/LayoutSection.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderItemSummaryV1/OrderItemSummaryV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ShareBarV1/ShareBarV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Card V1/CardV1.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Filler Tile v1/FillerTileSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/SearchDrillInV1/SearchDrillInV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Filler Tile v1/Event Storyboard/EventStoryboardSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Button V1/ButtonV1SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Smart Pay V1/SmartPayBase.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderTotalV1/OrderTotalV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/SmartPayV2/SmartPayV2.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Top Bar V1/CartItemTopBarV1SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Inject V1/InjectV1SectionStyle.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Gift Card Details V1/CartItemGiftCardDetailsV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Headers/HeaderV9/HeaderV9.swift:23:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Headers/Header V3/HeaderV3SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Headers/Header V6/HeaderV6SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Drill In v2/DrillInV2.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CarouselV1/CarouselV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderItemGroupV1/OrderItemGroupV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Header V4/HeaderV4SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Descriplet V4/DescripletV4SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Descriplet V3/DescripletV3SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Ad Hole V1/AdHoleV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/SearchInstantResultHeaderV1/SearchInstantResultHeaderV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Header V5/HeaderV5SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/SearchInstantResultV1/SearchInstantResultV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/VideoPanelV1/VideoPanelV1SectionStyle.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Item Notice V1/CartItemNoticeV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Categories Horizontal/CategoriesHorizontalSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/OrderStatusV1/OrderStatusV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/BannerV2/BannerV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Order Summary V1/OrderSummaryV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Full Widths Inline v1/FullWidthsInlineV1.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ShopsHorizontalV1/ShopsHorizontalV1.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Segmented Control V1/CartSegmentedControl.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/DescripletV5/DescripletV5.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ExpressCheckoutV1/ExpressCheckoutV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Products Horizontal v1/ProductsHorizontalV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Hybrid Event v1/HybridEventV1SectionStyle.swift:19:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/BannerV3/BannerV3.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/BrandsHorizontalV3/BrandsHorizontalV3.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Billboard v2/BillboardV2SectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Brand V1/BrandV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Messaging/CartMessaging.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CategoryDrillInV1/CategoryDrillInV1.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Hero v1/HeroSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/ShippingCostSummaryV1/ShippingCostSummaryV1.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Cart Notification Header V2/CartNotificationHeaderV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/BrandV3/BrandV3.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Banner/BannerSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Small Products Horizontal V1/SmallProductsHorizontalV1SectionStyle.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CartItemActionsV2/CartItemActionsV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/CartPersonalizationV2/CartPersonalizationV2.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/HeroesHorizontalV1/HeroesHorizontalV1PageViewController.swift:25:13: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/HeroesHorizontalV1/HeroesHorizontalV1PageViewController.swift:36:13: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/HeroesHorizontalV1/HeroesHorizontalV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Reviews/ReviewsFrameV1.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Collage/Collage.swift:21:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Event.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Events Horizontal/HorizontalEventV1Item.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Sections/Events Horizontal/EventSectionStyle.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/SectionTemplateButtonModel.swift:17:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Common/SectionHeader.swift:1:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/Common/EventCategory.swift:18:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Models/SectionImageButtonModel.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Search Landing Page/Models/SearchFrameV2.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Search Landing Page/Models/Tab.swift:16:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Views/Redeem Gift Code/RedeemCardView.swift:80:13: warning: Self in Property Initialization Violation: `self` refers to the unapplied `NSObject.self()` method, which is likely not expected. Make the variable `lazy` to be able to refer to the current instance or use `ClassName.self`. (self_in_property_initialization)
/Users/q1214382/Developer/zulily_ios_main/Modules/ZulilyKit/Sources/Logging/VideoButtonDataProvider.swift:15:1: warning: weak_clickstream_nodes Violation: Clickstream nodes must be marked as weak (weak_clickstream_nodes)
Environment
- SwiftLint version (run
swiftlint versionto be sure)? 0.45.1 - Installation method used (Homebrew, CocoaPods, building from source, etc)? Direct download of release version
- Paste your configuration file:
disabled_rules: # rule identifiers to exclude from running
# TODO code correctness / quality
- block_based_kvo
- weak_delegate
- private_over_fileprivate
# TODO code maintainability
- unused_optional_binding
- large_tuple
- type_name # handles 2 issues, starts uppercase, and name too long
- shorthand_operator
- implicit_getter
- control_statement
- empty_enum_arguments # TODO autocorrect
- syntactic_sugar
- function_parameter_count
# TODO code readability / formatting
- mark # TODO autocorrect
- statement_position
- trailing_whitespace
- vertical_whitespace
- trailing_semicolon # TODO autocorrect
- return_arrow_whitespace # TODO autocorrect
- leading_whitespace
- comment_spacing
- redundant_optional_initialization
- opening_brace
- colon
- trailing_newline
- inclusive_language
- force_cast
- identifier_name
- cyclomatic_complexity
- trailing_comma
- unused_closure_parameter
- comma
- todo
- function_body_length
- type_body_length
- file_length
# -----------------------------------------------------------------------------
# Explicitly make sure these are on
opt_in_rules:
# code correctness / quality
- notification_center_detachment
- discarded_notification_center_observer
- class_delegate_protocol
- legacy_constant
- compiler_protocol_init
- multiple_closures_with_trailing_closure
- valid_ibinspectable
- legacy_constructor # autocorrected
# code readability / formatting
- operator_whitespace
- closing_brace
- vertical_parameter_alignment
- switch_case_alignment
# code maintainability
- redundant_set_access_control
- unneeded_break_in_switch
- void_return
- redundant_void_return
- empty_parentheses_with_trailing_closure
- protocol_property_accessors_order
nesting:
type_level: 2
line_length:
warning: 400
error: 400
custom_rules:
weak_clickstream_nodes:
regex: "^((?<!weak).)*var.*Clickstream(AnalyticsNodeObject|Node)\\?$"
message: "Clickstream nodes must be marked as weak"
# All paths are relative to the swiftlint config file. Using ${PWD} will ensure that the path is relative to the working
# directory when swiftlint is run from the repo root.
excluded:
- ${PWD}/tools/MockingServer
- ${PWD}/DData
- ${PWD}/Tuist
- ${PWD}/Project.swift
- ${PWD}/.tuist-bin
- ${PWD}/.DerivedData
- ${PWD}/Derived
- ${PWD}/Modules/LindenDTOs
- ${PWD}/tools/*/.build
- ${PWD}/Modules/*/Sources/ResourceAccessors.swift
- ${PWD}/Modules/*/Tests/ResourceAccessors.swift
- ${PWD}/vendor/*
- ${PWD}/tools/zu_cli/.build
- Which Xcode version are you using (check
xcodebuild -version)? 13.0
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the custom_rules configuration with the provided sample Swift property and function lines, comparing SwiftLint's matches with the regex behavior reported in Xcode. Trace the custom regex rule matching entry point and add coverage for all listed weak and non-weak examples; done means only the two intended properties are reported.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100