[{"id":"36986292360","type":"PullRequestEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"opened","number":1659,"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659","id":1797171699,"node_id":"PR_kwDOA_OyXc5rHqnz","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1659","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1659.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1659.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1659","number":1659,"state":"open","locked":false,"title":"Fix issue where `redundantInit` didn't work on some complex types","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `redundantInit` rule didn't work on some complex types with nested scopes, like nested collections, collections of tuples, generic types with a collection argument, etc.\r\n\r\nPreviously it would leave these examples as-is:\r\n\r\n```swift\r\nlet tupleArray = [(key: String, value: Int)].init()\r\nlet nestedArray = [[String]].init()\r\nlet atomicDictionary = Atomic<[String: Int]>.init()\r\n```\r\n\r\nNow they're corrected as expected:\r\n\r\n```swift\r\nlet tupleArray = [(key: String, value: Int)]()\r\nlet nestedArray = [[String]]()\r\nlet atomicDictionary = Atomic<[String: Int]>()\r\n```","created_at":"2024-03-29T01:44:26Z","updated_at":"2024-03-29T01:44:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1659/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6f22825e642475c5700c3315db6707d5f9af2984","head":{"label":"calda:cal--redundantInit-fix","ref":"cal--redundantInit-fix","sha":"6f22825e642475c5700c3315db6707d5f9af2984","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-29T01:44:14Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431716,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T19:41:24Z","pushed_at":"2024-03-29T01:44:26Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7442,"watchers_count":7442,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":264,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":264,"watchers":7442,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1659"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1659"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1659/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1659/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6f22825e642475c5700c3315db6707d5f9af2984"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":39,"deletions":12,"changed_files":2}},"public":true,"created_at":"2024-03-29T01:44:27Z"},{"id":"36986289774","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17755415402,"size":1,"distinct_size":1,"ref":"refs/heads/cal--redundantInit-fix","head":"6f22825e642475c5700c3315db6707d5f9af2984","before":"c66163205526306abff502a943aeb005296fc7f9","commits":[{"sha":"6f22825e642475c5700c3315db6707d5f9af2984","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where redundantInit didn't work on collection types","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6f22825e642475c5700c3315db6707d5f9af2984"}]},"public":true,"created_at":"2024-03-29T01:44:15Z"},{"id":"36986221483","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17755378344,"size":1,"distinct_size":1,"ref":"refs/heads/cal--redundantInit-fix","head":"c66163205526306abff502a943aeb005296fc7f9","before":"029f8348d628898f3bceff54b6ced77a2dacd318","commits":[{"sha":"c66163205526306abff502a943aeb005296fc7f9","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where redundantInit didn't work on collection types","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/c66163205526306abff502a943aeb005296fc7f9"}]},"public":true,"created_at":"2024-03-29T01:39:31Z"},{"id":"36984328817","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17754399833,"size":1,"distinct_size":1,"ref":"refs/heads/cal--redundantInit-fix","head":"029f8348d628898f3bceff54b6ced77a2dacd318","before":"d6c08bba24b006fe9a9deb87da401233f04d7ee9","commits":[{"sha":"029f8348d628898f3bceff54b6ced77a2dacd318","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where redundantInit didn't work on collection types","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/029f8348d628898f3bceff54b6ced77a2dacd318"}]},"public":true,"created_at":"2024-03-28T23:27:53Z"},{"id":"36984167776","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17754318181,"size":593,"distinct_size":1,"ref":"refs/heads/cal--redundantInit-fix","head":"d6c08bba24b006fe9a9deb87da401233f04d7ee9","before":"6293bdd8a03c51b66c4faa99621fbe877ed8fcf2","commits":[{"sha":"6d51c89c01c0b94cbc0ac715bda7db536d0c05b1","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix syntax coloring in tests","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6d51c89c01c0b94cbc0ac715bda7db536d0c05b1"},{"sha":"83a39038a724253cb6ed537596e9b34df1084380","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix indenting of try/await expressions in collection literal","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/83a39038a724253cb6ed537596e9b34df1084380"},{"sha":"5a579d9230c0bffdc4965b5bf17252bd16511b43","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix line indent after indented closure","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/5a579d9230c0bffdc4965b5bf17252bd16511b43"},{"sha":"7dd9afe9a1256db93e0683ce78f3064e3e04b3e7","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix trailing closure label interpreted as keyword","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/7dd9afe9a1256db93e0683ce78f3064e3e04b3e7"},{"sha":"5dc1c17d794670f3a24cc2bd36e8c5f8eb5e8a09","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix indenting of labelled trailing closures","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/5dc1c17d794670f3a24cc2bd36e8c5f8eb5e8a09"},{"sha":"4265d232ea10f28e9b5e28d3385b09458c40bbb6","author":{"email":"cal@calstephens.tech","name":"Cal Stephens"},"message":"Fix issue where redundantInit rule could cause build failure (#1039)","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/4265d232ea10f28e9b5e28d3385b09458c40bbb6"},{"sha":"7dea79140216ab1ac795f5bd4edfaf5b0b581341","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Disable redundantInit if followed by comment","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/7dea79140216ab1ac795f5bd4edfaf5b0b581341"},{"sha":"9d3f2955d54b8694827905e42ca442b93b9a062b","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Update for 0.48.16 release","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/9d3f2955d54b8694827905e42ca442b93b9a062b"},{"sha":"34144264208b4241ea1f316aa4c65bf8638a5cb2","author":{"email":"cal@calstephens.tech","name":"Cal Stephens"},"message":"Fix issue where pattern matching with inline let would break redundantArguments rule (#1046)","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/34144264208b4241ea1f316aa4c65bf8638a5cb2"},{"sha":"23cff61bea5b254565abd6036628987e0016072a","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix shadowed param after tuple assignment not marked unused","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/23cff61bea5b254565abd6036628987e0016072a"},{"sha":"86169ecbd846209e65c951a9f212266d36a588bd","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix indent for closure with wrapped capture list","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/86169ecbd846209e65c951a9f212266d36a588bd"},{"sha":"a7fc89cd0a4fa08046cc04b049fb5aa6d7f9b8ba","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix capture list containing comment mistaken for array","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/a7fc89cd0a4fa08046cc04b049fb5aa6d7f9b8ba"},{"sha":"f57e664bdc0df387182d0c353367c9d0e7f7ff94","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix syntax errors introduced when removing parens","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/f57e664bdc0df387182d0c353367c9d0e7f7ff94"},{"sha":"3c33b468d5c15b6f916b2b4c55a9a3105674c62d","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Update for 0.48.17 release","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/3c33b468d5c15b6f916b2b4c55a9a3105674c62d"},{"sha":"6fecac7d0a4bd650fc28eca30e7e2f702fcf8122","author":{"email":"chuck@chuckgrindel.com","name":"Chuck Grindel"},"message":"Added section for Bazel build usage.","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6fecac7d0a4bd650fc28eca30e7e2f702fcf8122"},{"sha":"24d9318b0f38c5d4e5139faefa85c126e1b91a12","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix parsing bug in `redundantSelf` rule","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/24d9318b0f38c5d4e5139faefa85c126e1b91a12"},{"sha":"ace304d3bbca6db8eaee1e7bcd4a4d45ea55854b","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Apply `--selfrequired` inside nested parameter expressions","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/ace304d3bbca6db8eaee1e7bcd4a4d45ea55854b"},{"sha":"b0401b045704da358aa9e590c48f43733527a683","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix error reporting for `--filelist` files","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/b0401b045704da358aa9e590c48f43733527a683"},{"sha":"ecb0eed7721623d017317e34fc3ce836d70e79e2","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix `redundantObjc` rule when `private(set)` used","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/ecb0eed7721623d017317e34fc3ce836d70e79e2"},{"sha":"27beabac3189113029ed778ddfd66062b6b64eed","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix indenting of conditional wrapped members","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/27beabac3189113029ed778ddfd66062b6b64eed"}]},"public":true,"created_at":"2024-03-28T23:16:49Z"},{"id":"36983080772","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":63729462,"name":"airbnb/swift","url":"https://api.github.com/repos/airbnb/swift"},"payload":{"repository_id":63729462,"push_id":17753785128,"size":1,"distinct_size":1,"ref":"refs/heads/master","head":"fa3ae574d0b9c93a1655424bd4381044274c5cb4","before":"c6b77cadd7bcb5ec654b926689778f8c64b3d1cd","commits":[{"sha":"fa3ae574d0b9c93a1655424bd4381044274c5cb4","author":{"email":"cal@calstephens.tech","name":"Cal Stephens"},"message":"Add rule to use doc comments before declarations (#262)","distinct":true,"url":"https://api.github.com/repos/airbnb/swift/commits/fa3ae574d0b9c93a1655424bd4381044274c5cb4"}]},"public":true,"created_at":"2024-03-28T22:13:32Z","org":{"id":698437,"login":"airbnb","gravatar_id":"","url":"https://api.github.com/orgs/airbnb","avatar_url":"https://avatars.githubusercontent.com/u/698437?"}},{"id":"36983080776","type":"DeleteEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":63729462,"name":"airbnb/swift","url":"https://api.github.com/repos/airbnb/swift"},"payload":{"ref":"cal--docComments-v2","ref_type":"branch","pusher_type":"user"},"public":true,"created_at":"2024-03-28T22:13:32Z","org":{"id":698437,"login":"airbnb","gravatar_id":"","url":"https://api.github.com/orgs/airbnb","avatar_url":"https://avatars.githubusercontent.com/u/698437?"}},{"id":"36983080572","type":"PullRequestEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":63729462,"name":"airbnb/swift","url":"https://api.github.com/repos/airbnb/swift"},"payload":{"action":"closed","number":262,"pull_request":{"url":"https://api.github.com/repos/airbnb/swift/pulls/262","id":1770960025,"node_id":"PR_kwDOA8xvNs5pjrSZ","html_url":"https://github.com/airbnb/swift/pull/262","diff_url":"https://github.com/airbnb/swift/pull/262.diff","patch_url":"https://github.com/airbnb/swift/pull/262.patch","issue_url":"https://api.github.com/repos/airbnb/swift/issues/262","number":262,"state":"closed","locked":false,"title":"Add rule to use doc comments before declarations","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"_Please react with 👍/👎 below if you agree or disagree with this proposal._\r\n\r\n#### Summary\r\n\r\nThis PR proposes a new rule to use doc comments (`///`) instead of regular comments (`//`) before declarations within type bodies or at the top level.\r\n\r\n```swift\r\n// WRONG\r\n\r\n// A planet that exists somewhere in the universe.\r\nclass Planet {\r\n // Data about the composition and density of the planet's atmosphere if present.\r\n var atmosphere: Atmosphere?\r\n\r\n // Data about the size, location, and composition of large bodies of water on the planet's surface.\r\n var oceans: [Ocean]\r\n\r\n // Terraforms the planet, by adding an atmosphere and ocean that is hospitable for life.\r\n func terraform() {\r\n // This gas composition has a pretty good track record so far!\r\n let composition = AtmosphereComposition(nitrogen: 0.78, oxygen: 0.22)\r\n\r\n // Generate the atmosphere first, then the oceans. Otherwise, the water will just boil off immediately.\r\n generateAtmosphere(using: composition)\r\n generateOceans()\r\n }\r\n}\r\n\r\n// RIGHT\r\n\r\n/// A planet that exists somewhere in the universe.\r\nclass Planet {\r\n /// Data about the composition and density of the planet's atmosphere if present.\r\n var atmosphere: Atmosphere?\r\n\r\n /// Data about the size, location, and composition of large bodies of water on the planet's surface.\r\n var oceans: [Ocean]\r\n\r\n /// Terraforms the planet, by adding an atmosphere and ocean that is hospitable for life.\r\n func terraform() {\r\n // This gas composition has a pretty good track record so far!\r\n let composition = AtmosphereComposition(nitrogen: 0.78, oxygen: 0.22)\r\n\r\n // Generate the atmosphere first, then the oceans. Otherwise, the water will just boil off immediately.\r\n generateAtmosphere(using: composition)\r\n generateOceans()\r\n }\r\n}\r\n```\r\n\r\n#### Reasoning\r\n\r\nThis rule was originally proposed in https://github.com/airbnb/swift/pull/198 (Sept 2022). We closed that PR following @swiftal64's thoughtful feedback here: https://github.com/airbnb/swift/pull/198#issuecomment-1270330067.\r\n\r\nThere are a few changes to this new proposal that resolves the issues @swiftal64 identified with the previous approach.\r\n\r\n 1. We never autocorrect doc comments into regular comments. We continue to permit using doc comments elsewhere in the code, even if the comment doesn't precede a declaration in a type body or at the top level. This is supported by a new `--doccomments preserve` option added to SwiftFormat in [nicklockwood/SwiftFormat#1638](https://github.com/nicklockwood/SwiftFormat/pull/1638).\r\n\r\n ```swift\r\n // ALSO RIGHT:\r\n\r\n func terraform() {\r\n /// This gas composition has a pretty good track record so far!\r\n /// - Doc comments are not required before local declarations in function scopes, but are permitted.\r\n let composition = AtmosphereComposition(nitrogen: 0.78, oxygen: 0.22)\r\n\r\n /// Generate the `atmosphere` first, **then** the `oceans`. Otherwise, the water will just boil off immediately.\r\n /// - Comments not preceeding declarations can use doc comments, and will not be autocorrected into regular comments.\r\n /// This can be useful because Xcode applies markdown styling to doc comments but not regular comments.\r\n generateAtmosphere(using: composition)\r\n generateOceans()\r\n }\r\n ```\r\n\r\n 2. The autocorrect implementation intelligently handles comment directives like `// swiftformat:`, `// swiftlint:`, `// sourcery:`, `// MARK:` and `// TODO:`. These examples are left as regular comments:\r\n\r\n\r\n ```swift\r\n // RIGHT\r\n\r\n // swiftformat:sort\r\n enum FeatureFlags {\r\n case allowFasterThanLightTravel\r\n case disableGravity\r\n case enableDarkEnergy\r\n case enableDarkMatter\r\n }\r\n\r\n // TODO: There are no more production consumers of this legacy model, so we\r\n // should detangle the remaining code dependencies and clean it up.\r\n struct LegacyGeocentricUniverseModel {\r\n ...\r\n }\r\n ```\r\n\r\n3. We continue allowing regular comments before a grouped block of declarations, since it's possible that the comment refers to the block as a whole rather than just the following declaration. This was implemented in [nicklockwood/SwiftFormat#1638](https://github.com/nicklockwood/SwiftFormat/pull/1638).\r\n\r\n ```swift\r\n // RIGHT\r\n\r\n enum Planet {\r\n // The inner planets\r\n case mercury\r\n case venus\r\n case earth\r\n case mars\r\n\r\n // The outer planets\r\n case jupiter\r\n case saturn\r\n case uranus\r\n case neptune\r\n }\r\n\r\n // ALSO RIGHT\r\n\r\n enum Planet {\r\n /// The smallest planet\r\n case mercury\r\n case venus\r\n case earth\r\n case mars\r\n /// The largest planet\r\n case jupiter\r\n case saturn\r\n case uranus\r\n case neptune\r\n }\r\n ```\r\n\r\nThese changes resolve all of the feedback that we received during the previous proposal review.\r\n","created_at":"2024-03-13T21:58:58Z","updated_at":"2024-03-28T22:13:31Z","closed_at":"2024-03-28T22:13:31Z","merged_at":"2024-03-28T22:13:31Z","merge_commit_sha":"fa3ae574d0b9c93a1655424bd4381044274c5cb4","assignee":null,"assignees":[],"requested_reviewers":[{"login":"bachand","id":1791049,"node_id":"MDQ6VXNlcjE3OTEwNDk=","avatar_url":"https://avatars.githubusercontent.com/u/1791049?v=4","gravatar_id":"","url":"https://api.github.com/users/bachand","html_url":"https://github.com/bachand","followers_url":"https://api.github.com/users/bachand/followers","following_url":"https://api.github.com/users/bachand/following{/other_user}","gists_url":"https://api.github.com/users/bachand/gists{/gist_id}","starred_url":"https://api.github.com/users/bachand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bachand/subscriptions","organizations_url":"https://api.github.com/users/bachand/orgs","repos_url":"https://api.github.com/users/bachand/repos","events_url":"https://api.github.com/users/bachand/events{/privacy}","received_events_url":"https://api.github.com/users/bachand/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/airbnb/swift/pulls/262/commits","review_comments_url":"https://api.github.com/repos/airbnb/swift/pulls/262/comments","review_comment_url":"https://api.github.com/repos/airbnb/swift/pulls/comments{/number}","comments_url":"https://api.github.com/repos/airbnb/swift/issues/262/comments","statuses_url":"https://api.github.com/repos/airbnb/swift/statuses/b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3","head":{"label":"airbnb:cal--docComments-v2","ref":"cal--docComments-v2","sha":"b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3","user":{"login":"airbnb","id":698437,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY5ODQzNw==","avatar_url":"https://avatars.githubusercontent.com/u/698437?v=4","gravatar_id":"","url":"https://api.github.com/users/airbnb","html_url":"https://github.com/airbnb","followers_url":"https://api.github.com/users/airbnb/followers","following_url":"https://api.github.com/users/airbnb/following{/other_user}","gists_url":"https://api.github.com/users/airbnb/gists{/gist_id}","starred_url":"https://api.github.com/users/airbnb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbnb/subscriptions","organizations_url":"https://api.github.com/users/airbnb/orgs","repos_url":"https://api.github.com/users/airbnb/repos","events_url":"https://api.github.com/users/airbnb/events{/privacy}","received_events_url":"https://api.github.com/users/airbnb/received_events","type":"Organization","site_admin":false},"repo":{"id":63729462,"node_id":"MDEwOlJlcG9zaXRvcnk2MzcyOTQ2Mg==","name":"swift","full_name":"airbnb/swift","private":false,"owner":{"login":"airbnb","id":698437,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY5ODQzNw==","avatar_url":"https://avatars.githubusercontent.com/u/698437?v=4","gravatar_id":"","url":"https://api.github.com/users/airbnb","html_url":"https://github.com/airbnb","followers_url":"https://api.github.com/users/airbnb/followers","following_url":"https://api.github.com/users/airbnb/following{/other_user}","gists_url":"https://api.github.com/users/airbnb/gists{/gist_id}","starred_url":"https://api.github.com/users/airbnb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbnb/subscriptions","organizations_url":"https://api.github.com/users/airbnb/orgs","repos_url":"https://api.github.com/users/airbnb/repos","events_url":"https://api.github.com/users/airbnb/events{/privacy}","received_events_url":"https://api.github.com/users/airbnb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/airbnb/swift","description":"Airbnb's Swift Style Guide","fork":false,"url":"https://api.github.com/repos/airbnb/swift","forks_url":"https://api.github.com/repos/airbnb/swift/forks","keys_url":"https://api.github.com/repos/airbnb/swift/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airbnb/swift/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airbnb/swift/teams","hooks_url":"https://api.github.com/repos/airbnb/swift/hooks","issue_events_url":"https://api.github.com/repos/airbnb/swift/issues/events{/number}","events_url":"https://api.github.com/repos/airbnb/swift/events","assignees_url":"https://api.github.com/repos/airbnb/swift/assignees{/user}","branches_url":"https://api.github.com/repos/airbnb/swift/branches{/branch}","tags_url":"https://api.github.com/repos/airbnb/swift/tags","blobs_url":"https://api.github.com/repos/airbnb/swift/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airbnb/swift/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airbnb/swift/git/refs{/sha}","trees_url":"https://api.github.com/repos/airbnb/swift/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airbnb/swift/statuses/{sha}","languages_url":"https://api.github.com/repos/airbnb/swift/languages","stargazers_url":"https://api.github.com/repos/airbnb/swift/stargazers","contributors_url":"https://api.github.com/repos/airbnb/swift/contributors","subscribers_url":"https://api.github.com/repos/airbnb/swift/subscribers","subscription_url":"https://api.github.com/repos/airbnb/swift/subscription","commits_url":"https://api.github.com/repos/airbnb/swift/commits{/sha}","git_commits_url":"https://api.github.com/repos/airbnb/swift/git/commits{/sha}","comments_url":"https://api.github.com/repos/airbnb/swift/comments{/number}","issue_comment_url":"https://api.github.com/repos/airbnb/swift/issues/comments{/number}","contents_url":"https://api.github.com/repos/airbnb/swift/contents/{+path}","compare_url":"https://api.github.com/repos/airbnb/swift/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airbnb/swift/merges","archive_url":"https://api.github.com/repos/airbnb/swift/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airbnb/swift/downloads","issues_url":"https://api.github.com/repos/airbnb/swift/issues{/number}","pulls_url":"https://api.github.com/repos/airbnb/swift/pulls{/number}","milestones_url":"https://api.github.com/repos/airbnb/swift/milestones{/number}","notifications_url":"https://api.github.com/repos/airbnb/swift/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airbnb/swift/labels{/name}","releases_url":"https://api.github.com/repos/airbnb/swift/releases{/id}","deployments_url":"https://api.github.com/repos/airbnb/swift/deployments","created_at":"2016-07-19T21:33:28Z","updated_at":"2024-03-27T11:05:19Z","pushed_at":"2024-03-28T21:45:28Z","git_url":"git://github.com/airbnb/swift.git","ssh_url":"git@github.com:airbnb/swift.git","clone_url":"https://github.com/airbnb/swift.git","svn_url":"https://github.com/airbnb/swift","homepage":"","size":627,"stargazers_count":2240,"watchers_count":2240,"language":"Markdown","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":297,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","naming-conventions","style-guide","styleguide","swift","swiftformat","swiftlint"],"visibility":"public","forks":297,"open_issues":1,"watchers":2240,"default_branch":"master"}},"base":{"label":"airbnb:master","ref":"master","sha":"c6b77cadd7bcb5ec654b926689778f8c64b3d1cd","user":{"login":"airbnb","id":698437,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY5ODQzNw==","avatar_url":"https://avatars.githubusercontent.com/u/698437?v=4","gravatar_id":"","url":"https://api.github.com/users/airbnb","html_url":"https://github.com/airbnb","followers_url":"https://api.github.com/users/airbnb/followers","following_url":"https://api.github.com/users/airbnb/following{/other_user}","gists_url":"https://api.github.com/users/airbnb/gists{/gist_id}","starred_url":"https://api.github.com/users/airbnb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbnb/subscriptions","organizations_url":"https://api.github.com/users/airbnb/orgs","repos_url":"https://api.github.com/users/airbnb/repos","events_url":"https://api.github.com/users/airbnb/events{/privacy}","received_events_url":"https://api.github.com/users/airbnb/received_events","type":"Organization","site_admin":false},"repo":{"id":63729462,"node_id":"MDEwOlJlcG9zaXRvcnk2MzcyOTQ2Mg==","name":"swift","full_name":"airbnb/swift","private":false,"owner":{"login":"airbnb","id":698437,"node_id":"MDEyOk9yZ2FuaXphdGlvbjY5ODQzNw==","avatar_url":"https://avatars.githubusercontent.com/u/698437?v=4","gravatar_id":"","url":"https://api.github.com/users/airbnb","html_url":"https://github.com/airbnb","followers_url":"https://api.github.com/users/airbnb/followers","following_url":"https://api.github.com/users/airbnb/following{/other_user}","gists_url":"https://api.github.com/users/airbnb/gists{/gist_id}","starred_url":"https://api.github.com/users/airbnb/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/airbnb/subscriptions","organizations_url":"https://api.github.com/users/airbnb/orgs","repos_url":"https://api.github.com/users/airbnb/repos","events_url":"https://api.github.com/users/airbnb/events{/privacy}","received_events_url":"https://api.github.com/users/airbnb/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/airbnb/swift","description":"Airbnb's Swift Style Guide","fork":false,"url":"https://api.github.com/repos/airbnb/swift","forks_url":"https://api.github.com/repos/airbnb/swift/forks","keys_url":"https://api.github.com/repos/airbnb/swift/keys{/key_id}","collaborators_url":"https://api.github.com/repos/airbnb/swift/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/airbnb/swift/teams","hooks_url":"https://api.github.com/repos/airbnb/swift/hooks","issue_events_url":"https://api.github.com/repos/airbnb/swift/issues/events{/number}","events_url":"https://api.github.com/repos/airbnb/swift/events","assignees_url":"https://api.github.com/repos/airbnb/swift/assignees{/user}","branches_url":"https://api.github.com/repos/airbnb/swift/branches{/branch}","tags_url":"https://api.github.com/repos/airbnb/swift/tags","blobs_url":"https://api.github.com/repos/airbnb/swift/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/airbnb/swift/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/airbnb/swift/git/refs{/sha}","trees_url":"https://api.github.com/repos/airbnb/swift/git/trees{/sha}","statuses_url":"https://api.github.com/repos/airbnb/swift/statuses/{sha}","languages_url":"https://api.github.com/repos/airbnb/swift/languages","stargazers_url":"https://api.github.com/repos/airbnb/swift/stargazers","contributors_url":"https://api.github.com/repos/airbnb/swift/contributors","subscribers_url":"https://api.github.com/repos/airbnb/swift/subscribers","subscription_url":"https://api.github.com/repos/airbnb/swift/subscription","commits_url":"https://api.github.com/repos/airbnb/swift/commits{/sha}","git_commits_url":"https://api.github.com/repos/airbnb/swift/git/commits{/sha}","comments_url":"https://api.github.com/repos/airbnb/swift/comments{/number}","issue_comment_url":"https://api.github.com/repos/airbnb/swift/issues/comments{/number}","contents_url":"https://api.github.com/repos/airbnb/swift/contents/{+path}","compare_url":"https://api.github.com/repos/airbnb/swift/compare/{base}...{head}","merges_url":"https://api.github.com/repos/airbnb/swift/merges","archive_url":"https://api.github.com/repos/airbnb/swift/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/airbnb/swift/downloads","issues_url":"https://api.github.com/repos/airbnb/swift/issues{/number}","pulls_url":"https://api.github.com/repos/airbnb/swift/pulls{/number}","milestones_url":"https://api.github.com/repos/airbnb/swift/milestones{/number}","notifications_url":"https://api.github.com/repos/airbnb/swift/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/airbnb/swift/labels{/name}","releases_url":"https://api.github.com/repos/airbnb/swift/releases{/id}","deployments_url":"https://api.github.com/repos/airbnb/swift/deployments","created_at":"2016-07-19T21:33:28Z","updated_at":"2024-03-27T11:05:19Z","pushed_at":"2024-03-28T21:45:28Z","git_url":"git://github.com/airbnb/swift.git","ssh_url":"git@github.com:airbnb/swift.git","clone_url":"https://github.com/airbnb/swift.git","svn_url":"https://github.com/airbnb/swift","homepage":"","size":627,"stargazers_count":2240,"watchers_count":2240,"language":"Markdown","has_issues":false,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"has_discussions":true,"forks_count":297,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":["ios","naming-conventions","style-guide","styleguide","swift","swiftformat","swiftlint"],"visibility":"public","forks":297,"open_issues":1,"watchers":2240,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/airbnb/swift/pulls/262"},"html":{"href":"https://github.com/airbnb/swift/pull/262"},"issue":{"href":"https://api.github.com/repos/airbnb/swift/issues/262"},"comments":{"href":"https://api.github.com/repos/airbnb/swift/issues/262/comments"},"review_comments":{"href":"https://api.github.com/repos/airbnb/swift/pulls/262/comments"},"review_comment":{"href":"https://api.github.com/repos/airbnb/swift/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/airbnb/swift/pulls/262/commits"},"statuses":{"href":"https://api.github.com/repos/airbnb/swift/statuses/b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3"}},"author_association":"MEMBER","auto_merge":null,"active_lock_reason":null,"merged":true,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"comments":0,"review_comments":1,"maintainer_can_modify":false,"commits":3,"additions":125,"deletions":2,"changed_files":3}},"public":true,"created_at":"2024-03-28T22:13:32Z","org":{"id":698437,"login":"airbnb","gravatar_id":"","url":"https://api.github.com/orgs/airbnb","avatar_url":"https://avatars.githubusercontent.com/u/698437?"}},{"id":"36982544558","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":63729462,"name":"airbnb/swift","url":"https://api.github.com/repos/airbnb/swift"},"payload":{"repository_id":63729462,"push_id":17753524300,"size":1,"distinct_size":1,"ref":"refs/heads/cal--docComments-v2","head":"b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3","before":"ed8f820fcd26879a8366ad2aaae65c5b834144a6","commits":[{"sha":"b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Update to SwiftFormat build with bug fixes","distinct":true,"url":"https://api.github.com/repos/airbnb/swift/commits/b0e7036eb25039a3c122a969dd3b9e7dbf8b0ca3"}]},"public":true,"created_at":"2024-03-28T21:45:28Z","org":{"id":698437,"login":"airbnb","gravatar_id":"","url":"https://api.github.com/orgs/airbnb","avatar_url":"https://avatars.githubusercontent.com/u/698437?"}},{"id":"36982522967","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":63729462,"name":"airbnb/swift","url":"https://api.github.com/repos/airbnb/swift"},"payload":{"repository_id":63729462,"push_id":17753513791,"size":2,"distinct_size":2,"ref":"refs/heads/cal--infer-types","head":"5a39cdcb87b437dd8d9a3409b425e3646836ee28","before":"d343fb27e0ba0ddb3e88af8a836572130b3c2647","commits":[{"sha":"3750e2cd2a2f32db8e6e3f43784ba331c4254e1c","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Update to SwiftFormat build with bug fixes","distinct":true,"url":"https://api.github.com/repos/airbnb/swift/commits/3750e2cd2a2f32db8e6e3f43784ba331c4254e1c"},{"sha":"5a39cdcb87b437dd8d9a3409b425e3646836ee28","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Add discussion around edge cases","distinct":true,"url":"https://api.github.com/repos/airbnb/swift/commits/5a39cdcb87b437dd8d9a3409b425e3646836ee28"}]},"public":true,"created_at":"2024-03-28T21:44:24Z","org":{"id":698437,"login":"airbnb","gravatar_id":"","url":"https://api.github.com/orgs/airbnb","avatar_url":"https://avatars.githubusercontent.com/u/698437?"}},{"id":"36982304833","type":"ReleaseEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"action":"published","release":{"url":"https://api.github.com/repos/calda/SwiftFormat/releases/148948965","assets_url":"https://api.github.com/repos/calda/SwiftFormat/releases/148948965/assets","upload_url":"https://uploads.github.com/repos/calda/SwiftFormat/releases/148948965/assets{?name,label}","html_url":"https://github.com/calda/SwiftFormat/releases/tag/0.54-beta-5","id":148948965,"author":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"node_id":"RE_kwDOEJ_Egs4I4Mfl","tag_name":"0.54-beta-5","target_commitish":"develop","name":"0.54-beta-5","draft":false,"prerelease":false,"created_at":"2024-03-28T20:40:46Z","published_at":"2024-03-28T21:33:33Z","assets":[{"url":"https://api.github.com/repos/calda/SwiftFormat/releases/assets/159164552","id":159164552,"node_id":"RA_kwDOEJ_Egs4JfKiI","name":"SwiftFormat.artifactbundle.zip","label":null,"uploader":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"content_type":"application/zip","state":"uploaded","size":2134651,"download_count":0,"created_at":"2024-03-28T21:33:17Z","updated_at":"2024-03-28T21:33:20Z","browser_download_url":"https://github.com/calda/SwiftFormat/releases/download/0.54-beta-5/SwiftFormat.artifactbundle.zip"}],"tarball_url":"https://api.github.com/repos/calda/SwiftFormat/tarball/0.54-beta-5","zipball_url":"https://api.github.com/repos/calda/SwiftFormat/zipball/0.54-beta-5","body":"A beta release of 0.54, based on [0.53.5](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.53.5) plus a snapshot of the develop branch on March 28, 2024.\r\n\r\nChangelog since 0.53.5: https://github.com/calda/SwiftFormat/compare/0.53.5...0.54-beta-5","short_description_html":"
A beta release of 0.54, based on 0.53.5 plus a snapshot of the develop branch on March 28, 2024.
\nChangelog since 0.53.5: 0.53.5...0.54-beta-5
","is_short_description_html_truncated":false}},"public":true,"created_at":"2024-03-28T21:33:34Z"},{"id":"36982304766","type":"CreateEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"ref":"0.54-beta-5","ref_type":"tag","master_branch":"develop","description":"A command-line tool and Xcode Extension for formatting Swift code","pusher_type":"user"},"public":true,"created_at":"2024-03-28T21:33:34Z"},{"id":"36981075687","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17752844956,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"2188dea583caaf962417ca0694a7a2342d7dabf2","before":"9934dff47a82218221b5e8647a1e35829c6711e0","commits":[{"sha":"2188dea583caaf962417ca0694a7a2342d7dabf2","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes could cause a build failure if the property's type is an existential, or if the RHS value has an infix operator","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/2188dea583caaf962417ca0694a7a2342d7dabf2"}]},"public":true,"created_at":"2024-03-28T20:41:04Z"},{"id":"36981070543","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17752842755,"size":1,"distinct_size":1,"ref":"refs/heads/develop","head":"e5ffbd4471707595157bafc479d7327a6524c618","before":"9d99bdc24ced2e43ee52c8487c0fd0b54f65bf23","commits":[{"sha":"e5ffbd4471707595157bafc479d7327a6524c618","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes could cause a build failure if the property's type is an existential, or if the RHS value has an infix operator","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/e5ffbd4471707595157bafc479d7327a6524c618"}]},"public":true,"created_at":"2024-03-28T20:40:52Z"},{"id":"36980938965","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17752783517,"size":1,"distinct_size":1,"ref":"refs/heads/develop","head":"9d99bdc24ced2e43ee52c8487c0fd0b54f65bf23","before":"200d6f21dda2b691e3ea0815259dc105aead2ecf","commits":[{"sha":"9d99bdc24ced2e43ee52c8487c0fd0b54f65bf23","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes could cause a build failure if the property's type is an existential, or if the RHS value has an infix operator","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/9d99bdc24ced2e43ee52c8487c0fd0b54f65bf23"}]},"public":true,"created_at":"2024-03-28T20:35:31Z"},{"id":"36980918011","type":"PullRequestReviewCommentEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543616332","pull_request_review_id":1967229963,"id":1543616332,"node_id":"PRRC_kwDOA_OyXc5cAbdM","diff_hunk":"@@ -5037,4 +5035,68 @@ class SyntaxTests: RulesTests {\n let options = FormatOptions(redundantType: .inferred, inferredTypesInConditionalExpressions: true)\n testFormatting(for: input, rule: FormatRules.preferInferredTypes, options: options)\n }\n+\n+ func testPreservesExplicitOptionalType() {\n+ // `let foo = Foo?.foo` doesn't work if `.foo` is defined on `Foo` but not `Foo?`\n+ let input = \"\"\"\n+ let optionalFoo1: Foo? = .foo\n+ let optionalFoo2: Foo? = Foo.foo\n+ let optionalFoo3: Foo! = .foo\n+ let optionalFoo4: Foo! = Foo.foo\n+ \"\"\"\n+\n+ let options = FormatOptions(redundantType: .inferred)\n+ testFormatting(for: input, rule: FormatRules.preferInferredTypes, options: options)\n+ }\n+\n+ func testPreservesTypeWithSeparateDeclarationAndProperty() {\n+ let input = \"\"\"\n+ var foo: Foo!\n+ foo = Foo(afterDelay: {\n+ print(foo)\n+ })\n+ \"\"\"\n+\n+ let options = FormatOptions(redundantType: .inferred)\n+ testFormatting(for: input, rule: FormatRules.preferInferredTypes, options: options)\n+ }\n+\n+ func testPreservesTypeWithExistentialAny() {\n+ let input = \"\"\"\n+ protocol ShapeStyle {}\n+ struct MyShapeStyle: ShapeStyle {}\n+\n+ extension ShapeStyle where Self == MyShapeStyle {\n+ static var myShape: MyShapeStyle { MyShapeStyle() }\n+ }\n+\n+ /// This compiles\n+ let myShape1: any ShapeStyle = .myShape\n+\n+ // This would fail with \"error: static member 'myShape' cannot be used on protocol metatype '(any ShapeStyle).Type'\"\n+ // let myShape2 = (any ShapeStyle).myShape","path":"Tests/RulesTests+Syntax.swift","commit_id":"9934dff47a82218221b5e8647a1e35829c6711e0","original_commit_id":"9934dff47a82218221b5e8647a1e35829c6711e0","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"We can't detect this unless the code uses the optional existential `any` syntax, so I added a note about it in the \"known issues\" section. Within the Airbnb codebase all examples of this pattern do use the `any` syntax, so this is ok for us.","created_at":"2024-03-28T20:34:40Z","updated_at":"2024-03-28T20:34:40Z","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543616332","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543616332"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543616332"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}},"reactions":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543616332/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":5077,"original_line":5077,"side":"RIGHT","original_position":59,"position":59,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T20:34:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5ce28aaea4911fca7f7563b9b52f52456526c7a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/9934dff47a82218221b5e8647a1e35829c6711e0","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"9934dff47a82218221b5e8647a1e35829c6711e0","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T20:31:33Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431588,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T19:41:24Z","pushed_at":"2024-03-28T20:31:34Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7442,"watchers_count":7442,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7442,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/9934dff47a82218221b5e8647a1e35829c6711e0"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T20:34:40Z"},{"id":"36980917983","type":"PullRequestReviewEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","review":{"id":1967229963,"node_id":"PRR_kwDOA_OyXc51QYwL","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":null,"commit_id":"9934dff47a82218221b5e8647a1e35829c6711e0","submitted_at":"2024-03-28T20:34:40Z","state":"commented","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1967229963","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1967229963"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}}},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T20:34:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5ce28aaea4911fca7f7563b9b52f52456526c7a0","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/9934dff47a82218221b5e8647a1e35829c6711e0","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"9934dff47a82218221b5e8647a1e35829c6711e0","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T20:31:33Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431588,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T19:41:24Z","pushed_at":"2024-03-28T20:31:34Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7442,"watchers_count":7442,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7442,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/9934dff47a82218221b5e8647a1e35829c6711e0"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T20:34:41Z"},{"id":"36980841221","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17752738558,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"9934dff47a82218221b5e8647a1e35829c6711e0","before":"200d6f21dda2b691e3ea0815259dc105aead2ecf","commits":[{"sha":"9934dff47a82218221b5e8647a1e35829c6711e0","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes could cause a build failure if the property's type is an existential, or if the RHS value has an infix operator","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/9934dff47a82218221b5e8647a1e35829c6711e0"}]},"public":true,"created_at":"2024-03-28T20:31:34Z"},{"id":"36976952769","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17750923871,"size":43,"distinct_size":0,"ref":"refs/heads/develop","head":"200d6f21dda2b691e3ea0815259dc105aead2ecf","before":"361810955ba27a6fe3b81038b35c849052721795","commits":[{"sha":"bb9181288707a5fc9902f109702807119d174900","author":{"email":"bikrrr@gmail.com","name":"Uhl Albert"},"message":"Change System Preferences to System Settings\n\nUpdate to match System Settings name change from macOS Ventura 13.0.","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/bb9181288707a5fc9902f109702807119d174900"},{"sha":"dcee748eaa2147cdf0e421ffc40add294f4cfa01","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Handle edge case for `startOfScope()` helper","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/dcee748eaa2147cdf0e421ffc40add294f4cfa01"},{"sha":"13b65e7b9a5e0c903f7f6cb9c7ec897319d75af6","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Handle linebreaks between scoped imports","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/13b65e7b9a5e0c903f7f6cb9c7ec897319d75af6"},{"sha":"f98ad6e6b711354ad9e721d4c147559e975c91c4","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Fix borrowing/consuming/isolated spacing in `spaceAroundBrackets/Parens`","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/f98ad6e6b711354ad9e721d4c147559e975c91c4"},{"sha":"daefc78de6d1125ad5559c4e7e18bb280f3aaad4","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Improve `startOfLine()` helper function","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/daefc78de6d1125ad5559c4e7e18bb280f3aaad4"},{"sha":"011c1c3d731b39c4d6a1a94ccc8aa109e42d4596","author":{"email":"nick@charcoaldesign.co.uk","name":"Nick Lockwood"},"message":"Improve `endOfScope()` helper function","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/011c1c3d731b39c4d6a1a94ccc8aa109e42d4596"},{"sha":"cbf4b254b677831554c783f03dedfc8518afbc87","author":{"email":"aliaksandr.baranouski@kiwi.com","name":"a.baranouski"},"message":"`--conditionswrap` option to format condition in Xcode 12 style, in case it's too long or multiline","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/cbf4b254b677831554c783f03dedfc8518afbc87"},{"sha":"4d8be429fef056d8266547477a51ff9e1384aa73","author":{"email":"facumenzella@users.noreply.github.com","name":"Facundo Menzella"},"message":"Add options for spacing around delimiter (#1335)","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/4d8be429fef056d8266547477a51ff9e1384aa73"},{"sha":"6c6ba1fcebd0ee275556b4ffdc2fd6e626c74132","author":{"email":"facumenzella@users.noreply.github.com","name":"Facundo Menzella"},"message":"Extend `initCoderUnavailable ` rule (#1442)","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6c6ba1fcebd0ee275556b4ffdc2fd6e626c74132"},{"sha":"46f765637d7fd1ac4658dea65c1ee02411bc416e","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add `created.name` and `created.email` file header placeholders","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/46f765637d7fd1ac4658dea65c1ee02411bc416e"},{"sha":"68bb8f2c50ffaf6a33ee4f59d1251fe86c5b5e51","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Fix header replacements when placeholder is used multiple times","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/68bb8f2c50ffaf6a33ee4f59d1251fe86c5b5e51"},{"sha":"306891d481d603290d27ec8dc5b791d28a337488","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add option to configure how dates are printed in the file header","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/306891d481d603290d27ec8dc5b791d28a337488"},{"sha":"f873011c73d570c51c11c00c51ef7620661a01f0","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add option to configure which timezone dates should be formatted to","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/f873011c73d570c51c11c00c51ef7620661a01f0"},{"sha":"c606ec26ebfabe708fc61e89cd3307fa6e8fee98","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add option to configure which timezone dates should be formatted to","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/c606ec26ebfabe708fc61e89cd3307fa6e8fee98"},{"sha":"5cebeb441c0d4a22cf85fa2d90efcd35e5d44de7","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Integrate date formatting options in file header rule","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/5cebeb441c0d4a22cf85fa2d90efcd35e5d44de7"},{"sha":"0ad0bea62c35c317acf1cdd2c6b0d99cbdca2e8f","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Fix crash in the shell helper function","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/0ad0bea62c35c317acf1cdd2c6b0d99cbdca2e8f"},{"sha":"a95877da9b2bc2c0e5224353107260a1a8da62ad","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add test for GitFileInfo","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/a95877da9b2bc2c0e5224353107260a1a8da62ad"},{"sha":"a3ba996b43e41dc575665a8b90d83b99ac1af101","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Add support for following the file across renames in git","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/a3ba996b43e41dc575665a8b90d83b99ac1af101"},{"sha":"6ae0f8751f44de7551781b799adee47e83b56161","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Reduce number of shell commands to get git info and improve reliability","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6ae0f8751f44de7551781b799adee47e83b56161"},{"sha":"bc055986796b6596b3fa9ef2dd196715ef689a3b","author":{"email":"hampus.tagerud@gmail.com","name":"Hampus Tågerud"},"message":"Update workflow to support running git commands from tests","distinct":false,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/bc055986796b6596b3fa9ef2dd196715ef689a3b"}]},"public":true,"created_at":"2024-03-28T18:01:04Z"},{"id":"36976935006","type":"PullRequestReviewCommentEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543403906","pull_request_review_id":1966904861,"id":1543403906,"node_id":"PRRC_kwDOA_OyXc5b_nmC","diff_hunk":"@@ -991,7 +991,7 @@ struct _Descriptors {\n argumentName: \"doccomments\",\n displayName: \"Doc comments\",\n help: \"Preserve doc comments: \\\"default\\\" or \\\"preserve\\\".\",\n- keyPath: \\.preserveSingleLineForEach,\n+ keyPath: \\.preserveDocComments,","path":"Sources/OptionDescriptor.swift","commit_id":"200d6f21dda2b691e3ea0815259dc105aead2ecf","original_commit_id":"200d6f21dda2b691e3ea0815259dc105aead2ecf","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"Unrelated bugfix, this `OptionDescriptor` key path was wrong","created_at":"2024-03-28T18:00:24Z","updated_at":"2024-03-28T18:00:24Z","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543403906","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543403906"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543403906"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}},"reactions":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543403906/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":994,"original_line":994,"side":"RIGHT","original_position":5,"position":5,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T18:00:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8982bd5cf472595dcf8d46a2eba43d8b37133180","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/200d6f21dda2b691e3ea0815259dc105aead2ecf","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"200d6f21dda2b691e3ea0815259dc105aead2ecf","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:59:55Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:59:57Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/200d6f21dda2b691e3ea0815259dc105aead2ecf"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T18:00:24Z"},{"id":"36976934937","type":"PullRequestReviewEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","review":{"id":1966904861,"node_id":"PRR_kwDOA_OyXc51PJYd","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":null,"commit_id":"200d6f21dda2b691e3ea0815259dc105aead2ecf","submitted_at":"2024-03-28T18:00:24Z","state":"commented","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966904861","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966904861"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}}},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T18:00:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"8982bd5cf472595dcf8d46a2eba43d8b37133180","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/200d6f21dda2b691e3ea0815259dc105aead2ecf","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"200d6f21dda2b691e3ea0815259dc105aead2ecf","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:59:55Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:59:57Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/200d6f21dda2b691e3ea0815259dc105aead2ecf"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T18:00:25Z"},{"id":"36976920159","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17750907463,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"200d6f21dda2b691e3ea0815259dc105aead2ecf","before":"6a9444a483e9cebc840337eb065bd5a393df5c62","commits":[{"sha":"200d6f21dda2b691e3ea0815259dc105aead2ecf","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix bug in preserveDocComments option descriptor","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/200d6f21dda2b691e3ea0815259dc105aead2ecf"}]},"public":true,"created_at":"2024-03-28T17:59:56Z"},{"id":"36976867041","type":"PullRequestReviewCommentEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","comment":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543401240","pull_request_review_id":1966900253,"id":1543401240,"node_id":"PRRC_kwDOA_OyXc5b_m8Y","diff_hunk":"@@ -7942,8 +7942,18 @@ public struct _FormatRules {\n \n let typeTokens = formatter.tokens[type.range]\n \n+ // Preserve the existing formatting if the LHS type is optional.\n+ // - `let foo: Foo? = .foo` is valid, but `let foo = Foo?.foo`\n+ // is invalid if `.foo` is defined on `Foo` but not `Foo?`.\n+ guard ![\"?\", \"!\"].contains(typeTokens.last?.string ?? \"\") else {\n+ return\n+ }\n+\n // If the RHS starts with a leading dot, then we know its accessing some static member on this type.\n if formatter.tokens[rhsStartIndex].isOperator(\".\") {\n+ // Update the . token from a prefix operator to an infix operator.\n+ formatter.replaceToken(at: rhsStartIndex, with: .operator(\".\", .infix))","path":"Sources/Rules.swift","commit_id":"6a9444a483e9cebc840337eb065bd5a393df5c62","original_commit_id":"6a9444a483e9cebc840337eb065bd5a393df5c62","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"The `redundantInit` rule didn't work correctly when run after the `preferInferredType` rule. At first I fixed this by changing the `redundantInit` rule to not check the operator type, but thinking about it more it seems better to have the `preferInferredType` rule change the `\".\"` operator from `.prefix` to `.infix`.","created_at":"2024-03-28T17:58:00Z","updated_at":"2024-03-28T17:58:03Z","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543401240","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543401240"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#discussion_r1543401240"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}},"reactions":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments/1543401240/reactions","total_count":0,"+1":0,"-1":0,"laugh":0,"hooray":0,"confused":0,"heart":0,"rocket":0,"eyes":0},"start_line":null,"original_start_line":null,"start_side":null,"line":7955,"original_line":7955,"side":"RIGHT","original_position":23,"position":23,"subject_type":"line"},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T17:58:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1b6a77f63694db01f56cfe9fc360f38823ebbc9f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"6a9444a483e9cebc840337eb065bd5a393df5c62","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:57:49Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:57:51Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T17:58:00Z"},{"id":"36976867018","type":"PullRequestReviewEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","review":{"id":1966900253,"node_id":"PRR_kwDOA_OyXc51PIQd","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"","commit_id":"6a9444a483e9cebc840337eb065bd5a393df5c62","submitted_at":"2024-03-28T17:58:03Z","state":"commented","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966900253","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966900253"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}}},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T17:58:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1b6a77f63694db01f56cfe9fc360f38823ebbc9f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"6a9444a483e9cebc840337eb065bd5a393df5c62","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:57:49Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:57:51Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T17:58:03Z"},{"id":"36976867005","type":"PullRequestReviewEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"created","review":{"id":1966900253,"node_id":"PRR_kwDOA_OyXc51PIQd","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"","commit_id":"6a9444a483e9cebc840337eb065bd5a393df5c62","submitted_at":"2024-03-28T17:58:03Z","state":"commented","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966900253","pull_request_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","author_association":"CONTRIBUTOR","_links":{"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658#pullrequestreview-1966900253"},"pull_request":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"}}},"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T17:58:03Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1b6a77f63694db01f56cfe9fc360f38823ebbc9f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"6a9444a483e9cebc840337eb065bd5a393df5c62","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:57:49Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:57:51Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/6a9444a483e9cebc840337eb065bd5a393df5c62"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null}},"public":true,"created_at":"2024-03-28T17:58:03Z"},{"id":"36976860495","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17750881534,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"6a9444a483e9cebc840337eb065bd5a393df5c62","before":"4d7aaeb98d0c303da5f3a0eed0c046a500ca8268","commits":[{"sha":"6a9444a483e9cebc840337eb065bd5a393df5c62","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes would cause build failure if property has optional type","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/6a9444a483e9cebc840337eb065bd5a393df5c62"}]},"public":true,"created_at":"2024-03-28T17:57:51Z"},{"id":"36976797648","type":"PullRequestEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":66302557,"name":"nicklockwood/SwiftFormat","url":"https://api.github.com/repos/nicklockwood/SwiftFormat"},"payload":{"action":"opened","number":1658,"pull_request":{"url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658","id":1796598762,"node_id":"PR_kwDOA_OyXc5rFevq","html_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658","diff_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.diff","patch_url":"https://github.com/nicklockwood/SwiftFormat/pull/1658.patch","issue_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658","number":1658,"state":"open","locked":false,"title":"Fix issue where preferInferredTypes could cause build failure if property has optional type","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"body":"This PR fixes an issue where the `preferInferredTypes` rule could cause a build failure in cases where the property has a optional type.\r\n\r\nFor example, this compiles:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\nlet foo: String? = .foo\r\n```\r\n\r\nbut this doesn't:\r\n\r\n```swift\r\nextension String {\r\n static let foo = \"Foo\"\r\n}\r\n\r\n// error: type 'String?' has no member 'foo'\r\nlet foo = String?.foo\r\n```","created_at":"2024-03-28T17:55:43Z","updated_at":"2024-03-28T17:55:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits","review_comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments","review_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/4d7aaeb98d0c303da5f3a0eed0c046a500ca8268","head":{"label":"calda:cal--preferInferredTypes-fixes","ref":"cal--preferInferredTypes-fixes","sha":"4d7aaeb98d0c303da5f3a0eed0c046a500ca8268","user":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"repo":{"id":278905986,"node_id":"MDEwOlJlcG9zaXRvcnkyNzg5MDU5ODY=","name":"SwiftFormat","full_name":"calda/SwiftFormat","private":false,"owner":{"login":"calda","id":1811727,"node_id":"MDQ6VXNlcjE4MTE3Mjc=","avatar_url":"https://avatars.githubusercontent.com/u/1811727?v=4","gravatar_id":"","url":"https://api.github.com/users/calda","html_url":"https://github.com/calda","followers_url":"https://api.github.com/users/calda/followers","following_url":"https://api.github.com/users/calda/following{/other_user}","gists_url":"https://api.github.com/users/calda/gists{/gist_id}","starred_url":"https://api.github.com/users/calda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/calda/subscriptions","organizations_url":"https://api.github.com/users/calda/orgs","repos_url":"https://api.github.com/users/calda/repos","events_url":"https://api.github.com/users/calda/events{/privacy}","received_events_url":"https://api.github.com/users/calda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/calda/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":true,"url":"https://api.github.com/repos/calda/SwiftFormat","forks_url":"https://api.github.com/repos/calda/SwiftFormat/forks","keys_url":"https://api.github.com/repos/calda/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/calda/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/calda/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/calda/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/calda/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/calda/SwiftFormat/events","assignees_url":"https://api.github.com/repos/calda/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/calda/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/calda/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/calda/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/calda/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/calda/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/calda/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/calda/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/calda/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/calda/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/calda/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/calda/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/calda/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/calda/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/calda/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/calda/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/calda/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/calda/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/calda/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/calda/SwiftFormat/merges","archive_url":"https://api.github.com/repos/calda/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/calda/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/calda/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/calda/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/calda/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/calda/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/calda/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/calda/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/calda/SwiftFormat/deployments","created_at":"2020-07-11T17:05:20Z","updated_at":"2022-09-06T14:17:23Z","pushed_at":"2024-03-28T17:55:36Z","git_url":"git://github.com/calda/SwiftFormat.git","ssh_url":"git@github.com:calda/SwiftFormat.git","clone_url":"https://github.com/calda/SwiftFormat.git","svn_url":"https://github.com/calda/SwiftFormat","homepage":"","size":431587,"stargazers_count":2,"watchers_count":2,"language":"Swift","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":1,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":1,"open_issues":0,"watchers":2,"default_branch":"develop"}},"base":{"label":"nicklockwood:develop","ref":"develop","sha":"ca709624e2f520888bedb24619969985ce67dae9","user":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"repo":{"id":66302557,"node_id":"MDEwOlJlcG9zaXRvcnk2NjMwMjU1Nw==","name":"SwiftFormat","full_name":"nicklockwood/SwiftFormat","private":false,"owner":{"login":"nicklockwood","id":546885,"node_id":"MDQ6VXNlcjU0Njg4NQ==","avatar_url":"https://avatars.githubusercontent.com/u/546885?v=4","gravatar_id":"","url":"https://api.github.com/users/nicklockwood","html_url":"https://github.com/nicklockwood","followers_url":"https://api.github.com/users/nicklockwood/followers","following_url":"https://api.github.com/users/nicklockwood/following{/other_user}","gists_url":"https://api.github.com/users/nicklockwood/gists{/gist_id}","starred_url":"https://api.github.com/users/nicklockwood/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicklockwood/subscriptions","organizations_url":"https://api.github.com/users/nicklockwood/orgs","repos_url":"https://api.github.com/users/nicklockwood/repos","events_url":"https://api.github.com/users/nicklockwood/events{/privacy}","received_events_url":"https://api.github.com/users/nicklockwood/received_events","type":"User","site_admin":false},"html_url":"https://github.com/nicklockwood/SwiftFormat","description":"A command-line tool and Xcode Extension for formatting Swift code","fork":false,"url":"https://api.github.com/repos/nicklockwood/SwiftFormat","forks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/forks","keys_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/teams","hooks_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/hooks","issue_events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/events{/number}","events_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/events","assignees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/assignees{/user}","branches_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/branches{/branch}","tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/tags","blobs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/refs{/sha}","trees_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/{sha}","languages_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/languages","stargazers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/stargazers","contributors_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contributors","subscribers_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscribers","subscription_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/subscription","commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/commits{/sha}","git_commits_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/git/commits{/sha}","comments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/comments{/number}","issue_comment_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/comments{/number}","contents_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/contents/{+path}","compare_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/merges","archive_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/downloads","issues_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues{/number}","pulls_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls{/number}","milestones_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/milestones{/number}","notifications_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/labels{/name}","releases_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/releases{/id}","deployments_url":"https://api.github.com/repos/nicklockwood/SwiftFormat/deployments","created_at":"2016-08-22T19:39:05Z","updated_at":"2024-03-28T13:47:41Z","pushed_at":"2024-03-28T17:55:43Z","git_url":"git://github.com/nicklockwood/SwiftFormat.git","ssh_url":"git@github.com:nicklockwood/SwiftFormat.git","clone_url":"https://github.com/nicklockwood/SwiftFormat.git","svn_url":"https://github.com/nicklockwood/SwiftFormat","homepage":"","size":427664,"stargazers_count":7441,"watchers_count":7441,"language":"Swift","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"has_discussions":false,"forks_count":603,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":263,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"allow_forking":true,"is_template":false,"web_commit_signoff_required":false,"topics":[],"visibility":"public","forks":603,"open_issues":263,"watchers":7441,"default_branch":"main"}},"_links":{"self":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658"},"html":{"href":"https://github.com/nicklockwood/SwiftFormat/pull/1658"},"issue":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658"},"comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/issues/1658/comments"},"review_comments":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/comments"},"review_comment":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/pulls/1658/commits"},"statuses":{"href":"https://api.github.com/repos/nicklockwood/SwiftFormat/statuses/4d7aaeb98d0c303da5f3a0eed0c046a500ca8268"}},"author_association":"CONTRIBUTOR","auto_merge":null,"active_lock_reason":null,"merged":false,"mergeable":null,"rebaseable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"maintainer_can_modify":true,"commits":1,"additions":38,"deletions":3,"changed_files":3}},"public":true,"created_at":"2024-03-28T17:55:45Z"},{"id":"36976794195","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17750851339,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"4d7aaeb98d0c303da5f3a0eed0c046a500ca8268","before":"616b443deb129ea6f8176057f94ae207ccc5f546","commits":[{"sha":"4d7aaeb98d0c303da5f3a0eed0c046a500ca8268","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes would cause build failure if property has optional type","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/4d7aaeb98d0c303da5f3a0eed0c046a500ca8268"}]},"public":true,"created_at":"2024-03-28T17:55:37Z"},{"id":"36976779572","type":"PushEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"repository_id":278905986,"push_id":17750844681,"size":1,"distinct_size":1,"ref":"refs/heads/cal--preferInferredTypes-fixes","head":"616b443deb129ea6f8176057f94ae207ccc5f546","before":"8ebcf87456eb1edee4bce6a12aac629ccce7ff76","commits":[{"sha":"616b443deb129ea6f8176057f94ae207ccc5f546","author":{"email":"cal.stephens@airbnb.com","name":"Cal Stephens"},"message":"Fix issue where preferInferredTypes would cause build failure if property has optional type","distinct":true,"url":"https://api.github.com/repos/calda/SwiftFormat/commits/616b443deb129ea6f8176057f94ae207ccc5f546"}]},"public":true,"created_at":"2024-03-28T17:55:08Z"},{"id":"36976594846","type":"CreateEvent","actor":{"id":1811727,"login":"calda","display_login":"calda","gravatar_id":"","url":"https://api.github.com/users/calda","avatar_url":"https://avatars.githubusercontent.com/u/1811727?"},"repo":{"id":278905986,"name":"calda/SwiftFormat","url":"https://api.github.com/repos/calda/SwiftFormat"},"payload":{"ref":"cal--preferInferredTypes-fixes","ref_type":"branch","master_branch":"develop","description":"A command-line tool and Xcode Extension for formatting Swift code","pusher_type":"user"},"public":true,"created_at":"2024-03-28T17:48:39Z"}]