Skip to content

Commit 4e1fcaa

Browse files
committed
Address syntactic redundancies
1 parent b441774 commit 4e1fcaa

File tree

9 files changed

+45
-47
lines changed

9 files changed

+45
-47
lines changed

src/DocoptNet/ApplicationResultAccumulator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ interface IApplicationResultAccumulator<T, out TResult>
2020
TResult GetResult(T state);
2121
}
2222

23-
interface IApplicationResultAccumulator<T> : IApplicationResultAccumulator<T, T> { }
23+
interface IApplicationResultAccumulator<T> : IApplicationResultAccumulator<T, T>;
2424

2525
static class ApplicationResultAccumulators
2626
{

src/DocoptNet/ArgValue.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ readonly partial struct ArgValue
5858

5959
public bool TryAsBoolean(out bool value) { value = IsBoolean && _int != 0; return IsBoolean; }
6060
public bool TryAsInteger(out int value) { value = IsInteger ? _int : default; return IsInteger; }
61-
public bool TryAsString([NotNullWhen(true)]out string? value) { value = _ref is string s ? s : default; return IsString; }
62-
public bool TryAsStringList([NotNullWhen(true)]out StringList? value) { value = _ref is StringList list ? list : default; return IsStringList; }
61+
public bool TryAsString([NotNullWhen(true)]out string? value) { value = _ref as string; return IsString; }
62+
public bool TryAsStringList([NotNullWhen(true)]out StringList? value) { value = _ref as StringList; return IsStringList; }
6363

6464
public static explicit operator bool(ArgValue value) => value.TryAsBoolean(out var f) ? f : throw new InvalidCastException();
6565
public static explicit operator int(ArgValue value) => value.TryAsInteger(out var n) ? n : throw new InvalidCastException();

src/DocoptNet/CodeGeneration/Public.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
namespace DocoptNet
55
{
6-
public partial class DocoptArgumentsAttribute { }
6+
public partial class DocoptArgumentsAttribute;
77
}

src/DocoptNet/CodeGeneration/SourceGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,8 +241,8 @@ static void Generate(CSharpSourceBuilder code,
241241

242242
var (parserTypeName, parserConfigurationCode) =
243243
leaves.OfType<Option>().Any(o => o is { Name: "-h" or "--help" })
244-
? (nameof(IHelpFeaturingParser<object>), ".EnableHelp()")
245-
: (nameof(IBaselineParser<object>), string.Empty);
244+
? (nameof(IHelpFeaturingParser<>), ".EnableHelp()")
245+
: (nameof(IBaselineParser<>), string.Empty);
246246

247247
const string usageConstName = "Usage";
248248

src/DocoptNet/Docopt.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -377,7 +377,7 @@ static IEnumerable<Pattern> ParseAtom(Tokens tokens, ICollection<Option> options
377377
{
378378
return ParseShorts(tokens, options);
379379
}
380-
if ((token.StartsWith("<") && token.EndsWith(">")) || token.All(c => char.IsUpper(c)))
380+
if ((token.StartsWith("<") && token.EndsWith(">")) || token.All(char.IsUpper))
381381
{
382382
result.Add(new Argument(tokens.Move()));
383383
}
@@ -478,7 +478,7 @@ static IEnumerable<Option> ParseLong(Tokens tokens, ICollection<Option> options)
478478
option = new Option(longName, argCount);
479479
options.Add(option);
480480
if (tokens.ThrowsInputError)
481-
option = new Option(longName, argCount, value is { } v ? v : ArgValue.True);
481+
option = new Option(longName, argCount, value ?? ArgValue.True);
482482
}
483483
else
484484
{
@@ -498,7 +498,7 @@ static IEnumerable<Option> ParseLong(Tokens tokens, ICollection<Option> options)
498498
}
499499
}
500500
if (tokens.ThrowsInputError)
501-
option.Value = value is { } v ? v : ArgValue.True;
501+
option.Value = value ?? ArgValue.True;
502502
}
503503
return [option];
504504
}
@@ -519,7 +519,7 @@ internal static ICollection<Option> ParseDefaults(string doc)
519519
var s2 = a[i + 1];
520520
split.Add(s1 + s2);
521521
}
522-
var options = split.Where(x => x.StartsWith("-")).Select(x => Option.Parse(x));
522+
var options = split.Where(x => x.StartsWith("-")).Select(Option.Parse);
523523
defaults.AddRange(options);
524524
}
525525
return defaults;

src/DocoptNet/Internals/BranchPatterns.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@ namespace DocoptNet.Internals
1414
abstract partial class BranchPattern : Pattern
1515
{
1616
#pragma warning disable IDE0290 // Use primary constructor (protected)
17-
protected BranchPattern(params Pattern[] children)
17+
protected BranchPattern(params Pattern[] children) =>
1818
#pragma warning restore IDE0290 // Use primary constructor
19-
{
20-
if (children == null) throw new ArgumentNullException(nameof(children));
21-
Children = children;
22-
}
19+
Children = children ?? throw new ArgumentNullException(nameof(children));
2320

2421
public override string Name
2522
{

src/DocoptNet/Internals/Public.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ namespace DocoptNet.Internals
88
using System.ComponentModel;
99
using static System.ComponentModel.EditorBrowsableState;
1010

11-
[EditorBrowsable(Never)] public partial class BranchPattern { }
12-
[EditorBrowsable(Never)] public partial class Either { }
13-
[EditorBrowsable(Never)] public partial struct EitherMatcher { }
14-
[EditorBrowsable(Never)] public partial class GeneratedSourceModule { }
15-
[EditorBrowsable(Never)] public partial class LeafPattern { }
16-
[EditorBrowsable(Never)] public partial struct MatchResult { }
17-
[EditorBrowsable(Never)] public partial struct OneOrMoreMatcher { }
18-
[EditorBrowsable(Never)] public partial class Option { }
19-
[EditorBrowsable(Never)] public partial struct OptionalMatcher { }
20-
[EditorBrowsable(Never)] public partial class Pattern { }
21-
[EditorBrowsable(Never)] public partial class PatternMatcher { }
22-
[EditorBrowsable(Never)] public partial struct ReadOnlyList<T> { }
23-
[EditorBrowsable(Never)] public partial struct RequiredMatcher { }
11+
[EditorBrowsable(Never)] public partial class BranchPattern;
12+
[EditorBrowsable(Never)] public partial class Either;
13+
[EditorBrowsable(Never)] public partial struct EitherMatcher;
14+
[EditorBrowsable(Never)] public partial class GeneratedSourceModule;
15+
[EditorBrowsable(Never)] public partial class LeafPattern;
16+
[EditorBrowsable(Never)] public partial struct MatchResult;
17+
[EditorBrowsable(Never)] public partial struct OneOrMoreMatcher;
18+
[EditorBrowsable(Never)] public partial class Option;
19+
[EditorBrowsable(Never)] public partial struct OptionalMatcher;
20+
[EditorBrowsable(Never)] public partial class Pattern;
21+
[EditorBrowsable(Never)] public partial class PatternMatcher;
22+
[EditorBrowsable(Never)] public partial struct ReadOnlyList<T>;
23+
[EditorBrowsable(Never)] public partial struct RequiredMatcher;
2424
}
2525

2626
#endif

src/DocoptNet/Public.cs

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,25 @@
55

66
namespace DocoptNet
77
{
8-
public partial class Docopt { }
9-
public partial class PrintExitEventArgs { }
10-
public partial class DocoptBaseException { }
11-
public partial class DocoptExitException { }
12-
public partial class DocoptInputErrorException { }
13-
public partial class DocoptLanguageErrorException { }
14-
public partial class ValueObject { }
15-
public partial class ArgsParseOptions { }
16-
public partial class StringList { }
17-
public partial struct ArgValue { }
18-
public partial interface IParser<out T> { }
19-
public partial interface IHelpFeaturingParser<out T> { }
20-
public partial interface IVersionFeaturingParser<out T> { }
21-
public partial interface IBaselineParser<out T> { }
22-
public partial interface IArgumentsResult<out T> { }
23-
public partial interface IInputErrorResult { }
24-
public partial interface IHelpResult { }
25-
public partial interface IVersionResult { }
8+
public partial class Docopt;
9+
10+
public partial class PrintExitEventArgs;
11+
public partial class DocoptBaseException;
12+
public partial class DocoptExitException;
13+
public partial class DocoptInputErrorException;
14+
public partial class DocoptLanguageErrorException;
15+
public partial class ValueObject;
16+
public partial class ArgsParseOptions;
17+
public partial class StringList;
18+
public partial struct ArgValue;
19+
public partial interface IParser<out T>;
20+
public partial interface IHelpFeaturingParser<out T>;
21+
public partial interface IVersionFeaturingParser<out T>;
22+
public partial interface IBaselineParser<out T>;
23+
public partial interface IArgumentsResult<out T>;
24+
public partial interface IInputErrorResult;
25+
public partial interface IHelpResult;
26+
public partial interface IVersionResult;
2627
}
2728

2829
#endif

src/DocoptNet/ValueObject.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ internal ValueObject(object? obj) =>
2222
public bool IsInt => Value != null && (Value is int || int.TryParse(Value.ToString(), out _));
2323
public bool IsString => Value is string;
2424
public int AsInt => IsList ? 0 : Convert.ToInt32(Value);
25-
public ArrayList AsList => Value is ArrayList list ? list : new ArrayList { Value };
25+
public ArrayList AsList => Value as ArrayList ?? new ArrayList { Value };
2626

2727
public override bool Equals(object? obj)
2828
{

0 commit comments

Comments
 (0)