Skip to content

Commit

Permalink
SAVEPOINT
Browse files Browse the repository at this point in the history
  • Loading branch information
dennisdoomen committed Aug 26, 2024
1 parent c91cc96 commit 268b68a
Show file tree
Hide file tree
Showing 44 changed files with 146 additions and 145 deletions.
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -331,6 +331,10 @@ resharper_parentheses_redundancy_style = remove_if_not_clarifies_precedence

dotnet_analyzer_diagnostic.category-roslynator.severity = error

# Purpose: Remove trailing white-space
# Reason: It also complains about this when pressing enter to start a new empty line.
dotnet_diagnostic.RCS1037.severity = none

# Remove suffix 'Async' from non-asynchronous method name. Disabled because we like that suffix for now.
dotnet_diagnostic.RCS1047.severity = none

Expand Down
5 changes: 4 additions & 1 deletion Build/_build.csproj.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpAttributeForSingleLineMethodUpgrade/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
Expand All @@ -21,4 +23,5 @@
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EAddAccessorOwnerDeclarationBracesMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>
25 changes: 14 additions & 11 deletions FluentAssertions.sln.DotSettings
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,8 @@
<s:String x:Key="/Default/CodeStyle/CSharpVarKeywordUsage/ForSimpleTypes/@EntryValue">UseExplicitType</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateStaticFields/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=4a98fdf6_002D7d98_002D4f5a_002Dafeb_002Dea44ad98c70c/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Instance" AccessRightKinds="Private" Description="Instance fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;Kind Name="READONLY_FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/UserRules/=f9fce829_002De6f4_002D4cb2_002D80f1_002D5497c44f51df/@EntryIndexedValue">&lt;Policy&gt;&lt;Descriptor Staticness="Static" AccessRightKinds="Private" Description="Static fields (private)"&gt;&lt;ElementKinds&gt;&lt;Kind Name="FIELD" /&gt;&lt;/ElementKinds&gt;&lt;/Descriptor&gt;&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;&lt;/Policy&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FCONSTANT/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FBLOCK_005FSCOPE_005FVARIABLE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/JavaScriptNaming/UserRules/=JS_005FCONSTRUCTOR/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
Expand Down Expand Up @@ -141,7 +143,7 @@
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=NAMESPACE_005FALIAS/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=XAML_005FFIELD/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>
<s:String x:Key="/Default/CodeStyle/Naming/XamlNaming/UserRules/=XAML_005FRESOURCE/@EntryIndexedValue">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /&gt;</s:String>

<s:String x:Key="/Default/Environment/Editor/MatchingBraceHighlighting/Style/@EntryValue">OUTLINE</s:String>
<s:String x:Key="/Default/Environment/Hierarchy/PsiConfigurationSettingsKey/LocationType/@EntryValue">SOLUTION_FOLDER</s:String>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EFeature_002EServices_002EDaemon_002ESettings_002EMigration_002ESwaWarningsModeSettingsMigrate/@EntryIndexedValue">True</s:Boolean>
Expand All @@ -154,6 +156,7 @@
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002ECSharpPlaceAttributeOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateThisQualifierSettings/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EPredefinedNamingRulesToUserRulesUpgrade/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/Environment/UnitTesting/MsTestProvider/RunConfigurationFilename/@EntryValue">D:\Workspaces\FluentAssertions\Default.testsettings</s:String>
<s:Int64 x:Key="/Default/Environment/UnitTesting/ParallelProcessesCount/@EntryValue">4</s:Int64>
<s:Boolean x:Key="/Default/Environment/UnitTesting/ShadowCopy/@EntryValue">False</s:Boolean>
Expand All @@ -164,16 +167,16 @@
<s:Int64 x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Field/=scenario/Order/@EntryValue">0</s:Int64>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Shortcut/@EntryValue">aaa</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Description/@EntryValue">Arrange-Act-Assert</s:String>
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Text/@EntryValue">[TestMethod]&#xD;
public void When_$scenario$_it_should_$behavior$()&#xD;
{&#xD;
// Arrange&#xD;
$END$&#xD;
&#xD;
// Act&#xD;
&#xD;
&#xD;
// Assert&#xD;
<s:String x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Text/@EntryValue">[Fact]
public void $END$()
{
// Arrange


// Act


// Assert
}</s:String>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/Reformat/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/PatternsAndTemplates/LiveTemplates/Template/=012E3B0572DEF2448B0B5D9AA88E6210/ShortenQualifiedReferences/@EntryValue">True</s:Boolean>
Expand Down
8 changes: 4 additions & 4 deletions Src/FluentAssertions/AndConstraint.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
namespace FluentAssertions;

[DebuggerNonUserCode]
public class AndConstraint<T>
public class AndConstraint<TParent>
{
public T And { get; }
public TParent And { get; }

/// <summary>
/// Initializes a new instance of the <see cref="AndConstraint{T}"/> class.
/// </summary>
public AndConstraint(T parentConstraint)
public AndConstraint(TParent parent)
{
And = parentConstraint;
And = parent;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,7 @@ public AndConstraint<TAssertions> BeEquivalentTo<TExpectation>(IEnumerable<TExpe
CompileTimeType = typeof(IEnumerable<TExpectation>),
};

new EquivalencyValidator().AssertEquality(comparands, context);
new ValidateChildNodeEquivalency().AssertEquality(comparands, context);

return new AndConstraint<TAssertions>((TAssertions)this);
}
Expand Down Expand Up @@ -913,7 +913,7 @@ public AndWhichConstraint<TAssertions, T> ContainEquivalentOf<TExpectation>(TExp
CompileTimeType = typeof(TExpectation),
};

new EquivalencyValidator().AssertEquality(comparands, context);
new ValidateChildNodeEquivalency().AssertEquality(comparands, context);

string[] failures = scope.Discard();

Expand Down Expand Up @@ -2416,7 +2416,7 @@ public AndConstraint<TAssertions> NotContainEquivalentOf<TExpectation>(TExpectat
CompileTimeType = typeof(TExpectation),
};

new EquivalencyValidator().AssertEquality(comparands, context);
new ValidateChildNodeEquivalency().AssertEquality(comparands, context);

string[] failures = scope.Discard();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ public AndConstraint<TAssertions> BeEquivalentTo<TExpectation>(TExpectation expe
CompileTimeType = typeof(TExpectation),
};

new EquivalencyValidator().AssertEquality(comparands, context);
new ValidateChildNodeEquivalency().AssertEquality(comparands, context);

return new AndConstraint<TAssertions>((TAssertions)this);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public AndConstraint<TAssertions> BeEquivalentTo(IEnumerable<string> expectation
CompileTimeType = typeof(IEnumerable<string>),
};

new EquivalencyValidator().AssertEquality(comparands, context);
new ValidateChildNodeEquivalency().AssertEquality(comparands, context);

return new AndConstraint<TAssertions>((TAssertions)this);
}
Expand Down
2 changes: 1 addition & 1 deletion Src/FluentAssertions/Equivalency/EquivalencyResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ namespace FluentAssertions.Equivalency;
public enum EquivalencyResult
{
ContinueWithNext,
AssertionCompleted
EquivalencyProven
}
6 changes: 3 additions & 3 deletions Src/FluentAssertions/Equivalency/EquivalencyStep.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,19 +6,19 @@
public abstract class EquivalencyStep<T> : IEquivalencyStep
{
public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator)
IValidateChildNodeEquivalency valueChildNodes)
{
if (!typeof(T).IsAssignableFrom(comparands.GetExpectedType(context.Options)))
{
return EquivalencyResult.ContinueWithNext;
}

return OnHandle(comparands, context, nestedValidator);
return OnHandle(comparands, context, valueChildNodes);
}

/// <summary>
/// Implements <see cref="IEquivalencyStep.Handle"/>, but only gets called when the expected type matches <typeparamref name="T"/>.
/// </summary>
protected abstract EquivalencyResult OnHandle(Comparands comparands, IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator);
IValidateChildNodeEquivalency nested);
}
2 changes: 1 addition & 1 deletion Src/FluentAssertions/Equivalency/Field.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace FluentAssertions.Equivalency;
/// <summary>
/// A specialized type of <see cref="INode "/> that represents a field of an object in a structural equivalency assertion.
/// </summary>
public class Field : Node, IMember
internal class Field : Node, IMember
{
private readonly FieldInfo fieldInfo;
private bool? isBrowsable;
Expand Down
4 changes: 2 additions & 2 deletions Src/FluentAssertions/Equivalency/IEquivalencyStep.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@ public interface IEquivalencyStep
/// Executes an operation such as an equivalency assertion on the provided <paramref name="comparands"/>.
/// </summary>
/// <value>
/// Should return <see cref="EquivalencyResult.AssertionCompleted"/> if the subject matches the expectation or if no additional assertions
/// Should return <see cref="EquivalencyResult.EquivalencyProven"/> if the subject matches the expectation or if no additional assertions
/// have to be executed. Should return <see cref="EquivalencyResult.ContinueWithNext"/> otherwise.
/// </value>
/// <remarks>
/// May throw when preconditions are not met or if it detects mismatching data.
/// </remarks>
EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context, IEquivalencyValidator nestedValidator);
EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context, IValidateChildNodeEquivalency valueChildNodes);
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
namespace FluentAssertions.Equivalency;

public interface IEquivalencyValidator
public interface IValidateChildNodeEquivalency
{
/// <summary>
/// Runs a deep recursive equivalency assertion on the provided <paramref name="comparands"/>.
/// </summary>
void RecursivelyAssertEquality(Comparands comparands, IEquivalencyValidationContext context);
void AssertEquivalencyOf(Comparands comparands, IEquivalencyValidationContext context);
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace FluentAssertions.Equivalency;
internal class MultiDimensionalArrayEquivalencyStep : IEquivalencyStep
{
public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator)
IValidateChildNodeEquivalency valueChildNodes)
{
if (comparands.Expectation is not Array expectationAsArray || expectationAsArray.Rank == 1)
{
Expand All @@ -22,7 +22,7 @@ public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationCon
{
if (expectationAsArray.Length == 0)
{
return EquivalencyResult.AssertionCompleted;
return EquivalencyResult.EquivalencyProven;
}

Digit digit = BuildDigitsRepresentingAllIndices(expectationAsArray);
Expand All @@ -36,12 +36,12 @@ public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationCon

IEquivalencyValidationContext itemContext = context.AsCollectionItem<object>(listOfIndices);

nestedValidator.RecursivelyAssertEquality(new Comparands(subject, expectation, typeof(object)), itemContext);
valueChildNodes.AssertEquivalencyOf(new Comparands(subject, expectation, typeof(object)), itemContext);
}
while (digit.Increment());
}

return EquivalencyResult.AssertionCompleted;
return EquivalencyResult.EquivalencyProven;
}

private static Digit BuildDigitsRepresentingAllIndices(Array subjectAsArray)
Expand Down
2 changes: 1 addition & 1 deletion Src/FluentAssertions/Equivalency/Node.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

namespace FluentAssertions.Equivalency;

public class Node : INode
internal class Node : INode
{
private static readonly Regex MatchFirstIndex = new(@"^\[[0-9]+\]$");

Expand Down
2 changes: 1 addition & 1 deletion Src/FluentAssertions/Equivalency/Property.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace FluentAssertions.Equivalency;
/// A specialized type of <see cref="INode "/> that represents a property of an object in a structural equivalency assertion.
/// </summary>
#pragma warning disable CA1716
public class Property : Node, IMember
internal class Property : Node, IMember
{
private readonly PropertyInfo propertyInfo;
private bool? isBrowsable;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public void AddSet(object key, string[] failures)
/// The closest match is the set that contains the least amount of failures, or no failures at all, and preferably
/// the set that is identified by the <paramref name="key"/>.
/// </remarks>
public string[] SelectClosestMatchFor(object key = null)
public string[] GetTheFailuresForTheSetWithTheFewestFailures(object key = null)
{
if (ContainsSuccessfulSet())
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ public AssertionRuleEquivalencyStep(
}

public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator)
IValidateChildNodeEquivalency valueChildNodes)
{
bool success = false;

Expand All @@ -41,7 +41,7 @@ public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationCon
{
// Convert into a child context
context = context.Clone();
converter.Handle(comparands, context, nestedValidator);
converter.Handle(comparands, context, valueChildNodes);
converted = true;
}

Expand All @@ -59,7 +59,7 @@ public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationCon
}
}

return success ? EquivalencyResult.AssertionCompleted : EquivalencyResult.ContinueWithNext;
return success ? EquivalencyResult.EquivalencyProven : EquivalencyResult.ContinueWithNext;
}

private bool AppliesTo(Comparands comparands, INode currentNode) => predicate(new ObjectInfo(comparands, currentNode));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ namespace FluentAssertions.Equivalency.Steps;
public class AutoConversionStep : IEquivalencyStep
{
public EquivalencyResult Handle(Comparands comparands, IEquivalencyValidationContext context,
IEquivalencyValidator nestedValidator)
IValidateChildNodeEquivalency valueChildNodes)
{
if (!context.Options.ConversionSelector.RequiresConversion(comparands, context.CurrentNode))
{
Expand Down
Loading

0 comments on commit 268b68a

Please sign in to comment.