diff --git a/Sources/OptionDescriptor.swift b/Sources/OptionDescriptor.swift index a959c1e8..7349bf4f 100644 --- a/Sources/OptionDescriptor.swift +++ b/Sources/OptionDescriptor.swift @@ -101,9 +101,9 @@ class OptionDescriptor { type = .binary(true: trueValues, false: falseValues) toOptions = { value, options in switch value.lowercased() { - case let value where trueValues.contains(value): + case let value where trueValues.contains(where: { value == $0.lowercased() }): options[keyPath: keyPath] = true - case let value where falseValues.contains(value): + case let value where falseValues.contains(where: { value == $0.lowercased() }): options[keyPath: keyPath] = false default: throw FormatError.options("") diff --git a/Tests/OptionDescriptorTests.swift b/Tests/OptionDescriptorTests.swift index a5a1b7c5..07719a38 100644 --- a/Tests/OptionDescriptorTests.swift +++ b/Tests/OptionDescriptorTests.swift @@ -349,4 +349,10 @@ class OptionDescriptorTests: XCTestCase { let options2 = FormatOptions(selfRequired: ["baz", "bar", "foo"]) XCTAssertEqual(options1.description, options2.description) } + + func testFileMacroCase() { + let argument = "#fileID" + var options: FormatOptions = .default + XCTAssertNoThrow(try Descriptors.preferFileMacro.toOptions(argument, &options)) + } }