Skip to content

Commit

Permalink
Enable preferForLoop by default
Browse files Browse the repository at this point in the history
  • Loading branch information
nicklockwood committed Jan 8, 2024
1 parent b4910bf commit 9c8eb47
Show file tree
Hide file tree
Showing 7 changed files with 31 additions and 32 deletions.
4 changes: 2 additions & 2 deletions EditorExtension/Shared/RulesStore.swift
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,8 @@ extension RulesStore {

let disabledRules = Set(FormatRules.disabledByDefault)
var rules = currentRules
newRuleNames.forEach {
rules[$0] = !disabledRules.contains($0)
for newRuleName in newRuleNames {
rules[newRuleName] = !disabledRules.contains(newRuleName)
}

save(rules)
Expand Down
2 changes: 1 addition & 1 deletion Rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
* [modifierOrder](#modifierOrder)
* [numberFormatting](#numberFormatting)
* [opaqueGenericParameters](#opaqueGenericParameters)
* [preferForLoop](#preferForLoop)
* [preferKeyPath](#preferKeyPath)
* [redundantBackticks](#redundantBackticks)
* [redundantBreak](#redundantBreak)
Expand Down Expand Up @@ -95,7 +96,6 @@
* [isEmpty](#isEmpty)
* [markTypes](#markTypes)
* [organizeDeclarations](#organizeDeclarations)
* [preferForLoop](#preferForLoop)
* [sortSwitchCases](#sortSwitchCases)
* [wrapConditionalBodies](#wrapConditionalBodies)
* [wrapEnumCases](#wrapEnumCases)
Expand Down
8 changes: 4 additions & 4 deletions Snapshots/Euclid/Sources/CSG.swift
Original file line number Diff line number Diff line change
Expand Up @@ -482,8 +482,8 @@ extension Polygon {
{
precondition(isConvex)
guard polygon.isConvex else {
polygon.tessellate().forEach {
clip($0, &inside, &outside, &id)
for item in polygon.tessellate() {
clip(item, &inside, &outside, &id)
}
return
}
Expand Down Expand Up @@ -538,8 +538,8 @@ extension Polygon {
polygon.id = id
}
if !polygon.isConvex {
polygon.tessellate().forEach {
$0.split(along: plane, &coplanar, &front, &back, &id)
for item in polygon.tessellate() {
item.split(along: plane, &coplanar, &front, &back, &id)
}
return
}
Expand Down
10 changes: 5 additions & 5 deletions Snapshots/Issues/780.swift
Original file line number Diff line number Diff line change
Expand Up @@ -977,8 +977,8 @@ public extension SNS {
public func validate(name: String) throws {
try validate(resourceArn, name: "resourceArn", parent: name, max: 1011)
try validate(resourceArn, name: "resourceArn", parent: name, min: 1)
try tags.forEach {
try $0.validate(name: "\(name).tags[]")
for tag in tags {
try tag.validate(name: "\(name).tags[]")
}
}

Expand Down Expand Up @@ -1033,9 +1033,9 @@ public extension SNS {
public func validate(name: String) throws {
try validate(resourceArn, name: "resourceArn", parent: name, max: 1011)
try validate(resourceArn, name: "resourceArn", parent: name, min: 1)
try tagKeys.forEach {
try validate($0, name: "tagKeys[]", parent: name, max: 128)
try validate($0, name: "tagKeys[]", parent: name, min: 1)
for tagKey in tagKeys {
try validate(tagKey, name: "tagKeys[]", parent: name, max: 128)
try validate(tagKey, name: "tagKeys[]", parent: name, min: 1)
}
}

Expand Down
3 changes: 1 addition & 2 deletions Sources/Rules.swift
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ private let rulesByName: [String: FormatRule] = {
while changedOrder {
changedOrder = false
for value in values {
value.orderAfter.forEach { name in
for name in value.orderAfter {
guard let rule = rules[name] else {
preconditionFailure(name)
}
Expand Down Expand Up @@ -7299,7 +7299,6 @@ public struct _FormatRules {

public let preferForLoop = FormatRule(
help: "Convert functional `forEach` calls to for loops.",
disabledByDefault: true,
options: ["anonymousforeach", "onelineforeach"]
) { formatter in
formatter.forEach(.identifier("forEach")) { forEachIndex, _ in
Expand Down
2 changes: 1 addition & 1 deletion Tests/CommandLineTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ class CommandLineTests: XCTestCase {

func testHelpLineLength() {
CLI.print = { message, _ in
message.components(separatedBy: "\n").forEach { line in
for line in message.components(separatedBy: "\n") {
XCTAssertLessThanOrEqual(line.count, 80, line)
}
}
Expand Down
34 changes: 17 additions & 17 deletions Tests/OptionDescriptorTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,14 @@ class OptionDescriptorTests: XCTestCase {
testName: String = #function)
{
var options = FormatOptions.default
expectations.forEach {
for expectation in expectations {
do {
try descriptor.toOptions($0.argumentValue, &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument \($0.argumentValue) map to option \($0.optionValue)")
try descriptor.toOptions($0.argumentValue.uppercased(), &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument Uppercased \($0.argumentValue) map to option \($0.optionValue)")
try descriptor.toOptions($0.argumentValue.capitalized, &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument capitalized \($0.argumentValue) map to option \($0.optionValue)")
try descriptor.toOptions(expectation.argumentValue, &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument \(expectation.argumentValue) map to option \(expectation.optionValue)")
try descriptor.toOptions(expectation.argumentValue.uppercased(), &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument Uppercased \(expectation.argumentValue) map to option \(expectation.optionValue)")
try descriptor.toOptions(expectation.argumentValue.capitalized, &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument capitalized \(expectation.argumentValue) map to option \(expectation.optionValue)")
} catch {
XCTFail("\(testName): error: \(error)")
}
Expand All @@ -54,16 +54,16 @@ class OptionDescriptorTests: XCTestCase {
testName: String = #function)
{
var options = FormatOptions.default
expectations.forEach {
for expectation in expectations {
do {
try descriptor.toOptions($0.argumentValue, &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument \($0.argumentValue) map to option \(String(describing: $0.optionValue))")
try descriptor.toOptions(expectation.argumentValue, &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument \(expectation.argumentValue) map to option \(String(describing: expectation.optionValue))")
if testCaseVariation {
do {
try descriptor.toOptions($0.argumentValue.uppercased(), &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument Uppercased \($0.argumentValue) map to option \(String(describing: $0.optionValue))")
try descriptor.toOptions($0.argumentValue.capitalized, &options)
XCTAssertEqual(options[keyPath: keyPath], $0.optionValue, "\(testName): Argument capitalized \($0.argumentValue) map to option \(String(describing: $0.optionValue))")
try descriptor.toOptions(expectation.argumentValue.uppercased(), &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument Uppercased \(expectation.argumentValue) map to option \(String(describing: expectation.optionValue))")
try descriptor.toOptions(expectation.argumentValue.capitalized, &options)
XCTAssertEqual(options[keyPath: keyPath], expectation.optionValue, "\(testName): Argument capitalized \(expectation.argumentValue) map to option \(String(describing: expectation.optionValue))")
} catch {
XCTFail("\(testName): error: \(error)")
}
Expand Down Expand Up @@ -106,9 +106,9 @@ class OptionDescriptorTests: XCTestCase {
expectations: [FreeTextValidationExpectation],
testName: String = #function)
{
expectations.forEach {
let isValid = descriptor.validateArgument($0.input)
XCTAssertEqual(isValid, $0.isValid, "\(testName): \(isValid) != \($0.isValid)")
for expectation in expectations {
let isValid = descriptor.validateArgument(expectation.input)
XCTAssertEqual(isValid, expectation.isValid, "\(testName): \(isValid) != \(expectation.isValid)")
}
}

Expand Down

0 comments on commit 9c8eb47

Please sign in to comment.