diff --git a/Sources/ArgumentParser/CMakeLists.txt b/Sources/ArgumentParser/CMakeLists.txt
index 2a65d2262..bace0ad5e 100644
--- a/Sources/ArgumentParser/CMakeLists.txt
+++ b/Sources/ArgumentParser/CMakeLists.txt
@@ -23,7 +23,6 @@ add_library(ArgumentParser
Parsing/ArgumentDecoder.swift
Parsing/ArgumentDefinition.swift
Parsing/ArgumentSet.swift
- Parsing/ArgumentSetSequence.swift
Parsing/CommandParser.swift
Parsing/InputOrigin.swift
Parsing/Name.swift
diff --git a/Sources/ArgumentParser/Parsable Properties/Argument.swift b/Sources/ArgumentParser/Parsable Properties/Argument.swift
index dea1b7d76..69a55ab41 100644
--- a/Sources/ArgumentParser/Parsable Properties/Argument.swift
+++ b/Sources/ArgumentParser/Parsable Properties/Argument.swift
@@ -280,8 +280,8 @@ extension Argument {
values.set(v, forKey: key, inputOrigin: origin)
}
})
- return ArgumentSet(alternatives: [arg])
- })
+ return ArgumentSet(arg)
+ })
}
/// Creates a property that reads its value from an argument, parsing with
@@ -403,7 +403,7 @@ extension Argument {
update: .appendToArray(forType: Element.self, key: key),
initial: setInitialValue)
arg.help.defaultValue = helpDefaultValue
- return ArgumentSet(alternatives: [arg])
+ return ArgumentSet(arg)
})
}
@@ -501,7 +501,7 @@ extension Argument {
}),
initial: setInitialValue)
arg.help.defaultValue = helpDefaultValue
- return ArgumentSet(alternatives: [arg])
+ return ArgumentSet(arg)
})
}
diff --git a/Sources/ArgumentParser/Parsable Properties/Flag.swift b/Sources/ArgumentParser/Parsable Properties/Flag.swift
index 1cba8becf..d7d313fd3 100644
--- a/Sources/ArgumentParser/Parsable Properties/Flag.swift
+++ b/Sources/ArgumentParser/Parsable Properties/Flag.swift
@@ -400,9 +400,7 @@ extension Flag where Value: EnumerableFlag {
hasUpdated = try ArgumentSet.updateFlag(key: key, value: value, origin: origin, values: &values, hasUpdated: hasUpdated, exclusivity: exclusivity)
}))
}
- return exclusivity == .exclusive
- ? ArgumentSet(exclusive: args)
- : ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
@@ -525,9 +523,7 @@ extension Flag {
}))
}
- return exclusivity == .exclusive
- ? ArgumentSet(exclusive: args)
- : ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
@@ -553,7 +549,7 @@ extension Flag {
})
}))
}
- return ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
@@ -628,9 +624,7 @@ extension Flag where Value: CaseIterable, Value: RawRepresentable, Value: Equata
hasUpdated = try ArgumentSet.updateFlag(key: key, value: value, origin: origin, values: &values, hasUpdated: hasUpdated, exclusivity: exclusivity)
}))
}
- return exclusivity == .exclusive
- ? ArgumentSet(exclusive: args)
- : ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
}
@@ -656,9 +650,7 @@ extension Flag {
hasUpdated = try ArgumentSet.updateFlag(key: key, value: value, origin: origin, values: &values, hasUpdated: hasUpdated, exclusivity: exclusivity)
}))
}
- return exclusivity == .exclusive
- ? ArgumentSet(exclusive: args)
- : ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
@@ -686,7 +678,7 @@ extension Flag {
})
}))
}
- return ArgumentSet(additive: args)
+ return ArgumentSet(args)
})
}
}
diff --git a/Sources/ArgumentParser/Parsable Properties/Option.swift b/Sources/ArgumentParser/Parsable Properties/Option.swift
index adc1f52f8..c4851cffa 100644
--- a/Sources/ArgumentParser/Parsable Properties/Option.swift
+++ b/Sources/ArgumentParser/Parsable Properties/Option.swift
@@ -391,7 +391,7 @@ extension Option {
})
arg.help.options.formUnion(ArgumentDefinition.Help.Options(type: Value.self))
arg.help.defaultValue = initial.map { "\($0)" }
- return ArgumentSet(alternatives: [arg])
+ return ArgumentSet(arg)
})
}
@@ -534,7 +534,7 @@ extension Option {
initial: setInitialValue
)
arg.help.defaultValue = helpDefaultValue
- return ArgumentSet(alternatives: [arg])
+ return ArgumentSet(arg)
})
}
@@ -636,7 +636,7 @@ extension Option {
initial: setInitialValue
)
arg.help.defaultValue = helpDefaultValue
- return ArgumentSet(alternatives: [arg])
+ return ArgumentSet(arg)
})
}
diff --git a/Sources/ArgumentParser/Parsable Types/ParsableArguments.swift b/Sources/ArgumentParser/Parsable Types/ParsableArguments.swift
index e7fe0686d..25fedcfcb 100644
--- a/Sources/ArgumentParser/Parsable Types/ParsableArguments.swift
+++ b/Sources/ArgumentParser/Parsable Types/ParsableArguments.swift
@@ -237,7 +237,7 @@ extension ArgumentSet {
let key = InputKey(rawValue: codingKey)
return parsed.argumentSet(for: key)
}
- self.init(additive: a)
+ self.init(sets: a)
}
}
diff --git a/Sources/ArgumentParser/Parsable Types/ParsableArgumentsValidation.swift b/Sources/ArgumentParser/Parsable Types/ParsableArgumentsValidation.swift
index 2a26ab39c..bbbb9dbae 100644
--- a/Sources/ArgumentParser/Parsable Types/ParsableArgumentsValidation.swift
+++ b/Sources/ArgumentParser/Parsable Types/ParsableArgumentsValidation.swift
@@ -55,21 +55,11 @@ extension ParsableArguments {
fileprivate extension ArgumentSet {
var firstPositionalArgument: ArgumentDefinition? {
- switch content {
- case .arguments(let arguments):
- return arguments.first(where: { $0.isPositional })
- case .sets(let sets):
- return sets.first(where: { $0.firstPositionalArgument != nil })?.firstPositionalArgument
- }
+ content.first(where: { $0.isPositional })
}
var firstRepeatedPositionalArgument: ArgumentDefinition? {
- switch content {
- case .arguments(let arguments):
- return arguments.first(where: { $0.isRepeatingPositional })
- case .sets(let sets):
- return sets.first(where: { $0.firstRepeatedPositionalArgument != nil })?.firstRepeatedPositionalArgument
- }
+ content.first(where: { $0.isRepeatingPositional })
}
}
@@ -234,13 +224,8 @@ struct ParsableArgumentsUniqueNamesValidator: ParsableArgumentsValidator {
}
let countedNames: [String: Int] = argSets.reduce(into: [:]) { countedNames, args in
- switch args.content {
- case .arguments(let defs):
- for name in defs.flatMap({ $0.names }) {
- countedNames[name.synopsisString, default: 0] += 1
- }
- default:
- break
+ for name in args.content.flatMap({ $0.names }) {
+ countedNames[name.synopsisString, default: 0] += 1
}
}
diff --git a/Sources/ArgumentParser/Parsing/ArgumentSet.swift b/Sources/ArgumentParser/Parsing/ArgumentSet.swift
index 40e84d689..606c4b7ed 100644
--- a/Sources/ArgumentParser/Parsing/ArgumentSet.swift
+++ b/Sources/ArgumentParser/Parsing/ArgumentSet.swift
@@ -19,74 +19,38 @@
/// The `-v | -f` part is one *set* that’s optional, `