diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c5437bc..dcd132f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,15 +2,11 @@ name: Release env: NUGET_API_KEY: ${{secrets.NUGET_API_KEY}} - - + on: push: tags: - - '*' - branches: - - '*' - pull_request: + - '*' jobs: build: @@ -29,7 +25,7 @@ jobs: - name: Build run: dotnet build --configuration Release --no-restore - name: Test - run: dotnet test --no-restore --verbosity normal + run: dotnet test --no-restore --verbosity normal -f net6.0 - name: Set Version if: startsWith(github.ref, 'refs/tags') run: | @@ -39,8 +35,8 @@ jobs: - name: Pack if: startsWith(github.ref, 'refs/tags') run: | - dotnet pack Generator.Equals/Generator.Equals.csproj /p:PackageVersion=$VERSION /p:Version=$VERSION -c Release -o ./publish dotnet pack Generator.Equals.Runtime/Generator.Equals.Runtime.csproj /p:PackageVersion=$VERSION /p:Version=$VERSION -c Release -o ./publish + dotnet pack Generator.Equals/Generator.Equals.csproj /p:PackageVersion=$VERSION /p:Version=$VERSION -c Release -o ./publish - name: Publish if: startsWith(github.ref, 'refs/tags') - run: dotnet nuget push './publish/**/*.nupkg' -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate + run: dotnet nuget push './publish/**/*.nupkg' -s https://api.nuget.org/v3/index.json -k $NUGET_API_KEY --skip-duplicate \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..7e48016 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,23 @@ +name: Test + +on: + push: + branches: + - '*' + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup .NET Core + uses: actions/setup-dotnet@v1 + with: + dotnet-version: '6.0.x' + - name: Install dependencies + run: dotnet restore + - name: Build + run: dotnet build --configuration Release --no-restore + - name: Test + run: dotnet test --no-restore --verbosity normal -f net6.0 \ No newline at end of file diff --git a/Generator.Equals.Runtime/Attributes.cs b/Generator.Equals.Runtime/Attributes.cs index c8e6cbd..ad5f1cf 100644 --- a/Generator.Equals.Runtime/Attributes.cs +++ b/Generator.Equals.Runtime/Attributes.cs @@ -1,8 +1,10 @@ using System; +using System.CodeDom.Compiler; using System.Diagnostics; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class EquatableAttribute : Attribute @@ -18,45 +20,52 @@ public class EquatableAttribute : Attribute public bool IgnoreInheritedMembers { get; set; } } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class DefaultEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class OrderedEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class IgnoreEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class UnorderedEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class ReferenceEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] public class SetEqualityAttribute : Attribute { } + [GeneratedCode("Generator.Equals", "1.0.0.0")] [Conditional("GENERATOR_EQUALS")] [AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)] - public class CustomEqualityAttribute: Attribute + public class CustomEqualityAttribute : Attribute { public Type EqualityType { get; } public string FieldOrPropertyName { get; } @@ -67,4 +76,4 @@ public CustomEqualityAttribute(Type equalityType, string fieldOrPropertyName = " FieldOrPropertyName = fieldOrPropertyName; } } -} +} \ No newline at end of file diff --git a/Generator.Equals.Runtime/DefaultEqualityComparer.cs b/Generator.Equals.Runtime/DefaultEqualityComparer.cs index 206f636..da0259f 100644 --- a/Generator.Equals.Runtime/DefaultEqualityComparer.cs +++ b/Generator.Equals.Runtime/DefaultEqualityComparer.cs @@ -1,7 +1,10 @@ +#nullable enable +using System.CodeDom.Compiler; using System.Collections.Generic; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class DefaultEqualityComparer : IEqualityComparer { public static DefaultEqualityComparer Default { get; } = new DefaultEqualityComparer(); @@ -16,13 +19,23 @@ static DefaultEqualityComparer() _underlying = new ObjectEqualityComparer(); } - public bool Equals(T x, T y) => _underlying.Equals(x, y); + public bool Equals(T? x, T? y) + { + return _underlying.Equals(x!, y!); + } - public int GetHashCode(T obj) => _underlying.GetHashCode(obj); + public int GetHashCode(T obj) + { + return _underlying.GetHashCode(obj!); + } + [GeneratedCode("Generator.Equals", "1.0.0.0")] class ObjectEqualityComparer : IEqualityComparer { - public bool Equals(T x, T y) => object.Equals(x, y); + public bool Equals(T? x, T? y) + { + return object.Equals(x!, y!); + } public int GetHashCode(T obj) => obj?.GetHashCode() ?? 0; } diff --git a/Generator.Equals.Runtime/DictionaryEqualityComparer.cs b/Generator.Equals.Runtime/DictionaryEqualityComparer.cs index c4482bc..dac774c 100644 --- a/Generator.Equals.Runtime/DictionaryEqualityComparer.cs +++ b/Generator.Equals.Runtime/DictionaryEqualityComparer.cs @@ -1,10 +1,14 @@ -using System; +#nullable enable +using System; +using System.CodeDom.Compiler; using System.Collections.Generic; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class DictionaryEqualityComparer : IEqualityComparer> { + [GeneratedCode("Generator.Equals", "1.0.0.0")] class KeyPairEqualityComparer : IEqualityComparer> { readonly IEqualityComparer _keyEqualityComparer; @@ -20,20 +24,20 @@ public KeyPairEqualityComparer( public bool Equals(KeyValuePair x, KeyValuePair y) { - return _keyEqualityComparer.Equals(x.Key, y.Key) && - _valueEqualityComparer.Equals(x.Value, y.Value); + return _keyEqualityComparer.Equals(x.Key!, y.Key!) && + _valueEqualityComparer.Equals(x.Value!, y.Value!); } public int GetHashCode(KeyValuePair obj) { return HashCode.Combine( - _keyEqualityComparer.GetHashCode(obj.Key), - _valueEqualityComparer.GetHashCode(obj.Value) + _keyEqualityComparer.GetHashCode(obj.Key!), + _valueEqualityComparer.GetHashCode(obj.Value!) ); } } - + public static DictionaryEqualityComparer Default { get; } = new DictionaryEqualityComparer(); @@ -41,11 +45,13 @@ public int GetHashCode(KeyValuePair obj) public IEqualityComparer KeyEqualityComparer { get; } public IEqualityComparer ValueEqualityComparer { get; } - public DictionaryEqualityComparer() : this(DefaultEqualityComparer.Default, DefaultEqualityComparer.Default) + public DictionaryEqualityComparer() : this(DefaultEqualityComparer.Default, + DefaultEqualityComparer.Default) { } - public DictionaryEqualityComparer(IEqualityComparer keyEqualityComparer, IEqualityComparer valueEqualityComparer) + public DictionaryEqualityComparer(IEqualityComparer keyEqualityComparer, + IEqualityComparer valueEqualityComparer) { _keyPairEqualityComparer = new KeyPairEqualityComparer(keyEqualityComparer, valueEqualityComparer); KeyEqualityComparer = keyEqualityComparer; @@ -71,7 +77,7 @@ public bool Equals(IDictionary? x, IDictionary? y) if (!y.TryGetValue(pair.Key, out var yValue)) return false; - if (!ValueEqualityComparer.Equals(pair.Value, yValue)) + if (!ValueEqualityComparer.Equals(pair.Value!, yValue!)) return false; } diff --git a/Generator.Equals.Runtime/Generator.Equals.Runtime.csproj b/Generator.Equals.Runtime/Generator.Equals.Runtime.csproj index 9fa1aa2..b2b1595 100644 --- a/Generator.Equals.Runtime/Generator.Equals.Runtime.csproj +++ b/Generator.Equals.Runtime/Generator.Equals.Runtime.csproj @@ -1,10 +1,10 @@ - + netstandard2.0 + 9.0 + enable Generator.Equals - true - 8.0 diff --git a/Generator.Equals.Runtime/OrderedEqualityComparer.cs b/Generator.Equals.Runtime/OrderedEqualityComparer.cs index 7cf6361..6f9177e 100644 --- a/Generator.Equals.Runtime/OrderedEqualityComparer.cs +++ b/Generator.Equals.Runtime/OrderedEqualityComparer.cs @@ -1,9 +1,12 @@ -using System; +#nullable enable +using System; +using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class OrderedEqualityComparer : IEqualityComparer> { public static OrderedEqualityComparer Default { get; } = new OrderedEqualityComparer(); diff --git a/Generator.Equals.Runtime/ReferenceEqualityComparer.cs b/Generator.Equals.Runtime/ReferenceEqualityComparer.cs index 83d69bc..c2d840e 100644 --- a/Generator.Equals.Runtime/ReferenceEqualityComparer.cs +++ b/Generator.Equals.Runtime/ReferenceEqualityComparer.cs @@ -1,8 +1,10 @@ +using System.CodeDom.Compiler; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class ReferenceEqualityComparer : IEqualityComparer where T : class { public static ReferenceEqualityComparer Default { get; } = new ReferenceEqualityComparer(); diff --git a/Generator.Equals.Runtime/SetEqualityComparer.cs b/Generator.Equals.Runtime/SetEqualityComparer.cs index e96d02a..bc21309 100644 --- a/Generator.Equals.Runtime/SetEqualityComparer.cs +++ b/Generator.Equals.Runtime/SetEqualityComparer.cs @@ -1,11 +1,14 @@ -using System.Collections.Generic; +#nullable enable +using System.CodeDom.Compiler; +using System.Collections.Generic; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class SetEqualityComparer : IEqualityComparer> { public static SetEqualityComparer Default { get; } = new SetEqualityComparer(); - + public IEqualityComparer EqualityComparer { get; } public SetEqualityComparer() : this(DefaultEqualityComparer.Default) @@ -24,12 +27,12 @@ public bool Equals(IEnumerable? x, IEnumerable? y) if (x == null || y == null) return false; - + // If either of the underlying collections is a set, then we want to respect whatever // is the equality comparer tha was specified. if (x is ISet xSet) return xSet.SetEquals(y); - + if (y is ISet ySet) return ySet.SetEquals(x); diff --git a/Generator.Equals.Runtime/UnorderedEqualityComparer.cs b/Generator.Equals.Runtime/UnorderedEqualityComparer.cs index 2f780b6..2bef0e5 100644 --- a/Generator.Equals.Runtime/UnorderedEqualityComparer.cs +++ b/Generator.Equals.Runtime/UnorderedEqualityComparer.cs @@ -1,8 +1,10 @@ -using System.Collections.Generic; +using System.CodeDom.Compiler; +using System.Collections.Generic; using System.Linq; namespace Generator.Equals { + [GeneratedCode("Generator.Equals", "1.0.0.0")] public class UnorderedEqualityComparer : IEqualityComparer> { public static IEqualityComparer> Default { get; } = new UnorderedEqualityComparer(); @@ -12,7 +14,7 @@ public class UnorderedEqualityComparer : IEqualityComparer> public UnorderedEqualityComparer() : this(DefaultEqualityComparer.Default) { } - + public UnorderedEqualityComparer(IEqualityComparer equalityComparer) { EqualityComparer = equalityComparer; @@ -30,8 +32,10 @@ public bool Equals(IEnumerable? x, IEnumerable? y) y is ICollection yCollection && xCollection.Count != yCollection.Count) return false; +#pragma warning disable CS8714 var cnt = new Dictionary(EqualityComparer); - +#pragma warning restore CS8714 + foreach (var s in x) cnt[s] = (cnt.TryGetValue(s, out var v) ? v : 0) + 1; diff --git a/Generator.Equals.SnapshotTests/Classes/BaseEquality.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/BaseEquality.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs index f0ac210..98366db 100644 --- a/Generator.Equals.SnapshotTests/Classes/BaseEquality.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.BaseEquality.Person) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.BaseEquality.Person) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Department!, other.Department!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/BaseEquality.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/BaseEquality.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs index 9a9d72a..522a0f7 100644 --- a/Generator.Equals.SnapshotTests/Classes/BaseEquality.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/BaseEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/BaseEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs index f0ac210..98366db 100644 --- a/Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Manager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.BaseEquality.Person) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.BaseEquality.Person) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Department!, other.Department!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs index 9a9d72a..522a0f7 100644 --- a/Generator.Equals.SnapshotTests/Classes/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48#Generator.Equals.Tests.Classes.BaseEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.BaseEquality.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/CustomEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/CustomEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/BaseEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/CustomEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/CustomEquality.Net60#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs similarity index 84% rename from Generator.Equals.SnapshotTests/Classes/CustomEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/CustomEquality.Net60#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs index da9f007..7621ddd 100644 --- a/Generator.Equals.SnapshotTests/Classes/CustomEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/CustomEquality.Net60#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.Tests.Classes.CustomEquality.Comparer1.Default.Equals(this.Name1!, other.Name1!) && global::Generator.Equals.Tests.Classes.CustomEquality.Comparer2.Instance.Equals(this.Name2!, other.Name2!) && new global::Generator.Equals.Tests.Classes.CustomEquality.LengthEqualityComparer().Equals(this.Name3!, other.Name3!) diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/CustomEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/CustomEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/CustomEquality.NetFramework48#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/CustomEquality.NetFramework48#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..7621ddd --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/CustomEquality.NetFramework48#Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,80 @@ +//HintName: Generator.Equals.Tests.Classes.CustomEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class CustomEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.CustomEquality.Sample? left, + global::Generator.Equals.Tests.Classes.CustomEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? left, global::Generator.Equals.Tests.Classes.CustomEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.CustomEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.CustomEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.Tests.Classes.CustomEquality.Comparer1.Default.Equals(this.Name1!, other.Name1!) + && global::Generator.Equals.Tests.Classes.CustomEquality.Comparer2.Instance.Equals(this.Name2!, other.Name2!) + && new global::Generator.Equals.Tests.Classes.CustomEquality.LengthEqualityComparer().Equals(this.Name3!, other.Name3!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name1!, + global::Generator.Equals.Tests.Classes.CustomEquality.Comparer1.Default); + hashCode.Add( + this.Name2!, + global::Generator.Equals.Tests.Classes.CustomEquality.Comparer2.Instance); + hashCode.Add( + this.Name3!, + new global::Generator.Equals.Tests.Classes.CustomEquality.LengthEqualityComparer()); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/DefaultBehavior.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/CustomEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/DefaultBehavior.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/CustomEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs index 090c1de..d5ae703 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.DeepEquality.Person) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.DeepEquality.Person) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Department!, other.Department!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs index f3a0812..04c2268 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs similarity index 82% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs index 31156ac..7ceb14e 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Person!, other.Person!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs index 090c1de..d5ae703 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Manager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.DeepEquality.Person) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.DeepEquality.Person) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Department!, other.Department!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs index f3a0812..04c2268 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.01Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs similarity index 82% rename from Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs index 31156ac..7ceb14e 100644 --- a/Generator.Equals.SnapshotTests/Classes/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48#Generator.Equals.Tests.Classes.DeepEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DeepEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Person!, other.Person!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/ExplicitMode.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/ExplicitMode.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DeepEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/FieldEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DefaultBehavior.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/FieldEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DefaultBehavior.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DefaultBehavior.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DefaultBehavior.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Net60#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/DictionaryEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Net60#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs index 9bc89f3..4012bdd 100644 --- a/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Net60#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DictionaryEqualityComparer.Default.Equals(this.Properties!, other.Properties!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DictionaryEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..4012bdd --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.DictionaryEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class DictionaryEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? left, + global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? left, global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.DictionaryEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DictionaryEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Properties!, + global::Generator.Equals.DictionaryEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/DictionaryEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/DictionaryEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ExplicitMode.verified.cs b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.Net60#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/ExplicitMode.verified.cs rename to Generator.Equals.SnapshotTests/Classes/ExplicitMode.Net60#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs index 48eca62..02f3590 100644 --- a/Generator.Equals.SnapshotTests/Classes/ExplicitMode.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.Net60#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ExplicitMode.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ExplicitMode.NetFramework48#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.NetFramework48#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..02f3590 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.NetFramework48#Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.ExplicitMode.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class ExplicitMode + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? left, + global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? left, global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.ExplicitMode.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ExplicitMode.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ExplicitMode.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ExplicitMode.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/FieldEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/FieldEquality.Net60#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/FieldEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/FieldEquality.Net60#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs index d4c6cea..651fe87 100644 --- a/Generator.Equals.SnapshotTests/Classes/FieldEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/FieldEquality.Net60#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this._addresses!, other._addresses!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/NullableEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/FieldEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/NullableEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/FieldEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/FieldEquality.NetFramework48#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/FieldEquality.NetFramework48#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..651fe87 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/FieldEquality.NetFramework48#Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.FieldEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class FieldEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.FieldEquality.Sample? left, + global::Generator.Equals.Tests.Classes.FieldEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? left, global::Generator.Equals.Tests.Classes.FieldEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.FieldEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.FieldEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this._addresses!, other._addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this._addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/FieldEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/FieldEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Net60#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs similarity index 82% rename from Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Net60#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs index a115001..bc79053 100644 --- a/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Net60#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? other) + bool global::System.IEquatable>.Equals(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..bc79053 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -0,0 +1,76 @@ +//HintName: Generator.Equals.Tests.Classes.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class GenericParameterEquality + { + partial class Sample : global::System.IEquatable> + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? left, + global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer?>.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? left, global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable>.Equals(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.GenericParameterEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/OrderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/OrderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Net60#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/IgnoreEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Net60#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs index e866913..d4cf50e 100644 --- a/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Net60#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/OverridingEquals.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/IgnoreEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..d4cf50e --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.IgnoreEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class IgnoreEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? left, + global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? left, global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.IgnoreEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/IgnoreEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/IgnoreEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.verified.cs b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.verified.cs rename to Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs index 9b634a5..4a1f41f 100644 --- a/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..4a1f41f --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class IgnoreInheritedMembers + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? left, + global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? left, global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.IgnoreInheritedMembers.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Classes/SetEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/SetEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/IgnoreInheritedMembers.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs similarity index 83% rename from Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs index 4bf7ba0..1b73444 100644 --- a/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.FirstName!, other.FirstName!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.LastName!, other.LastName!) diff --git a/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..1b73444 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,80 @@ +//HintName: Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class MultiplePartialsEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? left, + global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? left, global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.MultiplePartialsEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.FirstName!, other.FirstName!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.LastName!, other.LastName!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + hashCode.Add( + this.FirstName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.LastName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.verified.cs b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Net60#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.verified.cs rename to Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Net60#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs index 0af04d0..6665ee1 100644 --- a/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Net60#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..6665ee1 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.NonSupportedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class NonSupportedMembers + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? left, + global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? left, global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.NonSupportedMembers.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/NullableEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/NullableEquality.Net60#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/NullableEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/NullableEquality.Net60#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs index 5e779c7..04b121a 100644 --- a/Generator.Equals.SnapshotTests/Classes/NullableEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/NullableEquality.Net60#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/NullableEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/NullableEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/NullableEquality.NetFramework48#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/NullableEquality.NetFramework48#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..04b121a --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/NullableEquality.NetFramework48#Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.NullableEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class NullableEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.NullableEquality.Sample? left, + global::Generator.Equals.Tests.Classes.NullableEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? left, global::Generator.Equals.Tests.Classes.NullableEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.NullableEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.NullableEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/NullableEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/NullableEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.verified.cs b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Net60#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/ObsoleteClass.verified.cs rename to Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Net60#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs index 51774a4..8f0b4b1 100644 --- a/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Net60#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Something!, other.Something!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ObsoleteClass.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..8f0b4b1 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.ObsoleteClass.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class ObsoleteClass + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? left, + global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? left, global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteClass.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Something!, other.Something!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Something!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ObsoleteClass.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ObsoleteClass.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.verified.cs b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Net60#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs similarity index 83% rename from Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.verified.cs rename to Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Net60#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs index e4680f5..2485ffd 100644 --- a/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Net60#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.NoComment!, other.NoComment!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Comment!, other.Comment!) ; diff --git a/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2485ffd --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,76 @@ +//HintName: Generator.Equals.Tests.Classes.ObsoleteMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class ObsoleteMembers + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? left, + global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? left, global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ObsoleteMembers.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.NoComment!, other.NoComment!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Comment!, other.Comment!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.NoComment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Comment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/OrderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.Net60#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/OrderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/OrderedEquality.Net60#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs index 1b69db6..afb8ccd 100644 --- a/Generator.Equals.SnapshotTests/Classes/OrderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.Net60#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/OrderedEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/OrderedEquality.NetFramework48#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.NetFramework48#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..afb8ccd --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.NetFramework48#Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.OrderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class OrderedEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? left, + global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? left, global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.OrderedEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OrderedEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/OrderedEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/OrderedEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/OverridingEquals.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs index 2714849..2009252 100644 --- a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/OverridingEquals.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs index ef5067e..0b83e68 100644 --- a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.OverridingEquals.Manager) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.OverridingEquals.Manager) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Shares!, other.Shares!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs index 2714849..2009252 100644 --- a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.Person? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; } diff --git a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs similarity index 80% rename from Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs index ef5067e..0b83e68 100644 --- a/Generator.Equals.SnapshotTests/Classes/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48#Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.OverridingEquals.SeniorManager? other) { - return - base.Equals(other as global::Generator.Equals.Tests.Classes.OverridingEquals.Manager) + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return base.Equals(other as global::Generator.Equals.Tests.Classes.OverridingEquals.Manager) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Shares!, other.Shares!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/OverridingEquals.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Net60#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs similarity index 82% rename from Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Net60#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs index 8f71236..2f1a96c 100644 --- a/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Net60#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; diff --git a/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2f1a96c --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,76 @@ +//HintName: Generator.Equals.Tests.Classes.PrimitiveEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class PrimitiveEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? left, + global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? left, global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.PrimitiveEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Net60#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/ReferenceEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Net60#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs index e5872fd..3f844ae 100644 --- a/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Net60#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.ReferenceEqualityComparer.Default.Equals(this.Name!, other.Name!) ; } diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ReferenceEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..3f844ae --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.ReferenceEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class ReferenceEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? left, + global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? left, global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.ReferenceEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.ReferenceEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Name!, + global::Generator.Equals.ReferenceEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/ReferenceEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/ReferenceEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/SealedClass.Net60#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/SealedClass.Net60#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..dae9e6c --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/SealedClass.Net60#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class SealedClass + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.SealedClass.Sample? left, + global::Generator.Equals.Tests.Classes.SealedClass.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.SealedClass.Sample? left, global::Generator.Equals.Tests.Classes.SealedClass.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.SealedClass.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.SealedClass.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + private bool Equals(global::Generator.Equals.Tests.Classes.SealedClass.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/SealedClass.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/SealedClass.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/SealedClass.NetFramework48#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/SealedClass.NetFramework48#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..dae9e6c --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/SealedClass.NetFramework48#Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.SealedClass.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class SealedClass + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.SealedClass.Sample? left, + global::Generator.Equals.Tests.Classes.SealedClass.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.SealedClass.Sample? left, global::Generator.Equals.Tests.Classes.SealedClass.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.SealedClass.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.SealedClass.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + private bool Equals(global::Generator.Equals.Tests.Classes.SealedClass.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/SealedClass.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/BaseEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/SealedClass.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/SetEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/SetEquality.Net60#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/SetEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/SetEquality.Net60#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs index c9de058..2d68364 100644 --- a/Generator.Equals.SnapshotTests/Classes/SetEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/SetEquality.Net60#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.SetEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.SetEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.SetEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.SetEqualityComparer.Default.Equals(this.Properties!, other.Properties!) ; } diff --git a/Generator.Equals.SnapshotTests/Records/CustomEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/SetEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/CustomEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/SetEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/SetEquality.NetFramework48#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/SetEquality.NetFramework48#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2d68364 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/SetEquality.NetFramework48#Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.SetEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class SetEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.SetEquality.Sample? left, + global::Generator.Equals.Tests.Classes.SetEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.SetEquality.Sample? left, global::Generator.Equals.Tests.Classes.SetEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.SetEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.SetEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.SetEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.SetEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Properties!, + global::Generator.Equals.SetEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/SetEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/SetEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Net60#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 81% rename from Generator.Equals.SnapshotTests/Classes/UnorderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Net60#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs index 2a33376..d12e48c 100644 --- a/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Net60#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Classes { @@ -39,10 +40,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? other) + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.UnorderedEqualityComparer.Default.Equals(this.Properties!, other.Properties!) ; } diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/UnorderedEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..d12e48c --- /dev/null +++ b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Classes.UnorderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Classes +{ + partial class UnorderedEquality + { + partial class Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? left, + global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? left, global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + Equals(obj as global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + bool global::System.IEquatable.Equals(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::Generator.Equals.Tests.Classes.UnorderedEquality.Sample? other) + { + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() + && global::Generator.Equals.UnorderedEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.GetType()); + hashCode.Add( + this.Properties!, + global::Generator.Equals.UnorderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Classes/UnorderedEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/Classes/UnorderedEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/GeneratedSourceTests.cs b/Generator.Equals.SnapshotTests/GeneratedSourceTests.cs index d93ca37..1141e75 100644 --- a/Generator.Equals.SnapshotTests/GeneratedSourceTests.cs +++ b/Generator.Equals.SnapshotTests/GeneratedSourceTests.cs @@ -1,4 +1,6 @@ -using System.Runtime.CompilerServices; +using System.Collections.Immutable; +using System.Reflection; +using System.Runtime.CompilerServices; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.Testing; @@ -6,7 +8,7 @@ namespace Generator.Equals.SnapshotTests { [UsesVerify] - public class GeneratedSourceTests + public class GeneratedSourceTests : SnapshotTestBase { static IEnumerable FindSampleFiles([CallerFilePath] string? path = null) { @@ -15,53 +17,29 @@ static IEnumerable FindSampleFiles([CallerFilePath] string? path = nul var testProjectPath = Path.GetFullPath(Path.Combine(path, "../../Generator.Equals.Tests")); var files = Directory.EnumerateFiles(testProjectPath, "*.Sample.cs", SearchOption.AllDirectories); - return files.Select(f => + return Enum.GetValues().SelectMany(framework => { - var relativePath = Path.GetRelativePath(testProjectPath, f); - return new object[] + return files.Select(f => { - Path.GetDirectoryName(relativePath)!, - Path.GetFileName(relativePath).Replace(".Sample.cs", ""), - f - }; + return new object[] + { + Path.Combine(Path.GetDirectoryName(path)!, Directory.GetParent(f)!.Name), + Path.GetFileName(f).Replace(".Sample.cs", ""), + f, + framework + }; + }); }); } public static IEnumerable SampleFiles => FindSampleFiles(); - internal static async Task VerifyGeneratedSource(string directory, string fileName, string source, OutputKind outputKind = OutputKind.DynamicallyLinkedLibrary, - CancellationToken ct = default) - { - var referenceAssemblies = ReferenceAssemblies.Net.Net60; - var references = await referenceAssemblies.ResolveAsync(null, ct); - var compilation = (Compilation)CSharpCompilation.Create( - assemblyName: "MyAssembly", - syntaxTrees: new[] - { - CSharpSyntaxTree.ParseText(source, options: new CSharpParseOptions(), cancellationToken: ct), - }, - references: references - .Add(MetadataReference.CreateFromFile(typeof(CustomEqualityAttribute).Assembly.Location)), - options: new CSharpCompilationOptions(outputKind, nullableContextOptions: NullableContextOptions.Enable)); - - var driver = CSharpGeneratorDriver - .Create(new EqualsGenerator()) - .RunGeneratorsAndUpdateCompilation(compilation, out compilation, out _, ct); - - var diagnostics = compilation.GetDiagnostics(ct); - - await Task.WhenAll( - Verify(diagnostics).UseDirectory(directory).UseFileName($"{fileName}.Diagnostics"), - Verify(driver).UseDirectory(directory).UseFileName(fileName) - ); - } - [Theory] [MemberData(nameof(SampleFiles))] - public async Task Check(string directory, string fileName, string filePath) + public async Task Check(string directory, string fileName, string filePath, TargetFramework targetFramework) { - var sample = await File.ReadAllTextAsync(filePath); - await VerifyGeneratedSource(directory, fileName, sample); + var sample = File.ReadAllText(filePath); + await VerifyGeneratedSource(directory, fileName, sample, targetFramework: targetFramework); } } } \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Generator.Equals.SnapshotTests.csproj b/Generator.Equals.SnapshotTests/Generator.Equals.SnapshotTests.csproj index a6a0a7d..44d22f2 100644 --- a/Generator.Equals.SnapshotTests/Generator.Equals.SnapshotTests.csproj +++ b/Generator.Equals.SnapshotTests/Generator.Equals.SnapshotTests.csproj @@ -4,30 +4,30 @@ net6.0 false enable + enable - - - - - - + + + + + + - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - - + \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/ModuleInitializer.cs b/Generator.Equals.SnapshotTests/ModuleInitializer.cs deleted file mode 100644 index 8d267f1..0000000 --- a/Generator.Equals.SnapshotTests/ModuleInitializer.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Runtime.CompilerServices; -using DiffEngine; - -namespace Generator.Equals.SnapshotTests -{ - public static class ModuleInitializer - { - [ModuleInitializer] - public static void Init() - { - DiffTools.UseOrder(DiffTool.VisualStudioCode); - VerifySourceGenerators.Enable(); - ClipboardAccept.Enable(); - } - } -} \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Net60#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Net60#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs index 6be9427..4f2fc6d 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Net60#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..4f2fc6d --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,44 @@ +//HintName: Generator.Equals.Tests.RecordStructs.CustomEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class CustomEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.CustomEquality.Sample other) + { + return true + && global::Generator.Equals.Tests.RecordStructs.CustomEquality.Comparer1.Default.Equals(this.Name1!, other.Name1!) + && global::Generator.Equals.Tests.RecordStructs.CustomEquality.Comparer2.Instance.Equals(this.Name2!, other.Name2!) + && new global::Generator.Equals.Tests.RecordStructs.CustomEquality.LengthEqualityComparer().Equals(this.Name3!, other.Name3!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name1!, + global::Generator.Equals.Tests.RecordStructs.CustomEquality.Comparer1.Default); + hashCode.Add( + this.Name2!, + global::Generator.Equals.Tests.RecordStructs.CustomEquality.Comparer2.Instance); + hashCode.Add( + this.Name3!, + new global::Generator.Equals.Tests.RecordStructs.CustomEquality.LengthEqualityComparer()); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/DictionaryEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/CustomEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/ExplicitMode.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/ExplicitMode.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/FieldEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/FieldEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.DistinctRecordStructs.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/IgnoreEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithArray.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DefaultBehavior.RecordStructsWithPrimitives.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Net60#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Net60#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs index 608e200..ce04618 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Net60#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..ce04618 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class DictionaryEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.DictionaryEquality.Sample other) + { + return true + && global::Generator.Equals.DictionaryEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.DictionaryEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/NullableEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/NullableEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/DictionaryEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Net60#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Net60#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs index fe7a08c..45f1b9c 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Net60#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.NetFramework48#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.NetFramework48#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..45f1b9c --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.NetFramework48#Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class ExplicitMode + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.ExplicitMode.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ExplicitMode.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Net60#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Net60#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs index baee95d..b1952b4 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Net60#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordsStructs { diff --git a/Generator.Equals.SnapshotTests/Records/OrderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/OrderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.NetFramework48#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.NetFramework48#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..b1952b4 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.NetFramework48#Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordsStructs +{ + partial class FieldEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordsStructs.FieldEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this._addresses!, other._addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this._addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/OverridingEquals.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/FieldEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Net60#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Net60#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs index 95ab7b8..2a02386 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Net60#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2a02386 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -0,0 +1,40 @@ +//HintName: Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class GenericParameterEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.GenericParameterEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/ReferenceEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Net60#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Net60#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs index 2113da7..9bd2018 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Net60#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Records/SetEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/SetEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..9bd2018 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class IgnoreEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.IgnoreEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Records/UnorderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/IgnoreEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Net60#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Net60#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs index e774bf5..2368ade 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Net60#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/CustomEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/CustomEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2368ade --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class NonSupportedMembers + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.NonSupportedMembers.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/DefaultBehavior.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Net60#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Net60#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs index 1ed4a7c..3ae9eb6 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Net60#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..3ae9eb6 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.NullableEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class NullableEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.NullableEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/ExplicitMode.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/NullableEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs index 4537de8..9d4d8de 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/FieldEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/FieldEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..9d4d8de --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,40 @@ +//HintName: Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class ObsoleteMembers + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.ObsoleteMembers.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.NoComment!, other.NoComment!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Comment!, other.Comment!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.NoComment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Comment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs index ca1c054..3d21e80 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Net60#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..3d21e80 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class ObsoleteRecord + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.ObsoleteRecord.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ObsoleteRecord.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Net60#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Net60#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs index e7593f2..751d705 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Net60#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..751d705 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class OrderedEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.OrderedEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/NullableEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/NullableEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/OrderedEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Net60#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Net60#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs index 600a0b5..f1eaa40 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Net60#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..f1eaa40 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,40 @@ +//HintName: Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class PrimitiveEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.PrimitiveEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Net60#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Net60#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs index 42da245..767c0c6 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Net60#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/OrderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..767c0c6 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class ReferenceEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.ReferenceEquality.Sample other) + { + return true + && global::Generator.Equals.ReferenceEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.ReferenceEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/ReferenceEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Net60#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/SetEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Net60#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs index 1c2ba90..9cd2ac2 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Net60#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/SetEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..9cd2ac2 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.SetEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class SetEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.SetEquality.Sample other) + { + return true + && global::Generator.Equals.SetEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.SetEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/SetEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/SetEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/SetEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/SetEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Net60#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Net60#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs index 701d3d7..9d0b955 100644 --- a/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Net60#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.RecordStructs { diff --git a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Net60.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.Net60.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..9d0b955 --- /dev/null +++ b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,36 @@ +//HintName: Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.RecordStructs +{ + partial class UnorderedEquality + { + partial record struct Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.RecordStructs.UnorderedEquality.Sample other) + { + return true + && global::Generator.Equals.UnorderedEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.UnorderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.NetFramework48.Diagnostics.verified.txt similarity index 100% rename from Generator.Equals.SnapshotTests/TopLevel/Program.cs.Diagnostics.verified.txt rename to Generator.Equals.SnapshotTests/RecordStructs/UnorderedEquality.NetFramework48.Diagnostics.verified.txt diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs index 748431a..9d799c8 100644 --- a/Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs index 61193db..7cf76eb 100644 --- a/Generator.Equals.SnapshotTests/Records/BaseEquality.DotNet6_0.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/BaseEquality.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs index 748431a..9d799c8 100644 --- a/Generator.Equals.SnapshotTests/Records/BaseEquality.00Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/BaseEquality.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs index 61193db..7cf76eb 100644 --- a/Generator.Equals.SnapshotTests/Records/BaseEquality.01Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48#Generator.Equals.Tests.Records.BaseEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/BaseEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/CustomEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/CustomEquality.Net60#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/Records/CustomEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/CustomEquality.Net60#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs index aaea912..e4a8677 100644 --- a/Generator.Equals.SnapshotTests/Records/CustomEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/CustomEquality.Net60#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/CustomEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/CustomEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/CustomEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..e4a8677 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48#Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,46 @@ +//HintName: Generator.Equals.Tests.Records.CustomEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class CustomEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.CustomEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.Tests.Records.CustomEquality.Comparer1.Default.Equals(this.Name1!, other.Name1!) + && global::Generator.Equals.Tests.Records.CustomEquality.Comparer2.Instance.Equals(this.Name2!, other.Name2!) + && new global::Generator.Equals.Tests.Records.CustomEquality.LengthEqualityComparer().Equals(this.Name3!, other.Name3!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name1!, + global::Generator.Equals.Tests.Records.CustomEquality.Comparer1.Default); + hashCode.Add( + this.Name2!, + global::Generator.Equals.Tests.Records.CustomEquality.Comparer2.Instance); + hashCode.Add( + this.Name3!, + new global::Generator.Equals.Tests.Records.CustomEquality.LengthEqualityComparer()); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/CustomEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs index 7d2285e..6182a88 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs index 67f7d77..e894d47 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs index b14c866..9c82d44 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs index 7d2285e..6182a88 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.00Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Manager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs index 67f7d77..e894d47 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.01Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs index b14c866..9c82d44 100644 --- a/Generator.Equals.SnapshotTests/Records/DeepEquality.DotNet6_0.02Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48#Generator.Equals.Tests.Records.DeepEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DeepEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.DistinctRecords.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithArray.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DefaultBehavior.RecordsWithPrimitives.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/DictionaryEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs index 981ef58..5b07294 100644 --- a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..5b07294 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.DictionaryEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class DictionaryEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.DictionaryEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DictionaryEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Properties!, + global::Generator.Equals.DictionaryEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/DictionaryEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ExplicitMode.verified.cs b/Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/ExplicitMode.verified.cs rename to Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs index 3e3fe1d..c87aeb3 100644 --- a/Generator.Equals.SnapshotTests/Records/ExplicitMode.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ExplicitMode.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..c87aeb3 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48#Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.ExplicitMode.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class ExplicitMode + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.ExplicitMode.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ExplicitMode.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/FieldEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/FieldEquality.Net60#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/FieldEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/FieldEquality.Net60#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs index ba85d6d..bab573e 100644 --- a/Generator.Equals.SnapshotTests/Records/FieldEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/FieldEquality.Net60#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/FieldEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/FieldEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/FieldEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..bab573e --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48#Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.FieldEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class FieldEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.FieldEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this._addresses!, other._addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this._addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/FieldEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/Records/GenericParameterEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs index 0c251aa..ff21855 100644 --- a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..ff21855 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -0,0 +1,42 @@ +//HintName: Generator.Equals.Tests.Records.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class GenericParameterEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.GenericParameterEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/IgnoreEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs index 6341836..1ccce48 100644 --- a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..1ccce48 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.IgnoreEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class IgnoreEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.IgnoreEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.verified.cs b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.verified.cs rename to Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs index 0afd005..05aecbd 100644 --- a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..05aecbd --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48#Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class IgnoreInheritedMembers + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.IgnoreInheritedMembers.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/IgnoreInheritedMembers.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs index e8e0eda..85f2b80 100644 --- a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..85f2b80 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,46 @@ +//HintName: Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class MultiplePartialsEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.MultiplePartialsEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.FirstName!, other.FirstName!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.LastName!, other.LastName!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + hashCode.Add( + this.FirstName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.LastName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.verified.cs b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/NonSupportedMembers.verified.cs rename to Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs index 503fe51..883b761 100644 --- a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..883b761 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.NonSupportedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class NonSupportedMembers + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.NonSupportedMembers.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/NullableEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/NullableEquality.Net60#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/NullableEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/NullableEquality.Net60#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs index 06f0c71..5a315d2 100644 --- a/Generator.Equals.SnapshotTests/Records/NullableEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/NullableEquality.Net60#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/NullableEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/NullableEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NullableEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..5a315d2 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48#Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.NullableEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class NullableEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.NullableEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/NullableEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.verified.cs b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/Records/ObsoleteMembers.verified.cs rename to Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs index ec50277..8d02072 100644 --- a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..8d02072 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,42 @@ +//HintName: Generator.Equals.Tests.Records.ObsoleteMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class ObsoleteMembers + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.ObsoleteMembers.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.NoComment!, other.NoComment!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Comment!, other.Comment!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.NoComment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Comment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.verified.cs b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/ObsoleteRecord.verified.cs rename to Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs index 0e8ef51..e4993a7 100644 --- a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..e4993a7 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48#Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.ObsoleteRecord.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class ObsoleteRecord + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.ObsoleteRecord.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ObsoleteRecord.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/OrderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/OrderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs index dc3a5e0..5cc064e 100644 --- a/Generator.Equals.SnapshotTests/Records/OrderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/OrderedEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..5cc064e --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48#Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.OrderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class OrderedEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.OrderedEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/OrderedEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/OverridingEquals.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs index 1f90599..d619743 100644 --- a/Generator.Equals.SnapshotTests/Records/OverridingEquals.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/OverridingEquals.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs index 2ffae8f..4186629 100644 --- a/Generator.Equals.SnapshotTests/Records/OverridingEquals.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs index 1f90599..d619743 100644 --- a/Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.00Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.Person.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs index 2ffae8f..4186629 100644 --- a/Generator.Equals.SnapshotTests/Records/OverridingEquals.DotNet6_0.01Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48#Generator.Equals.Tests.Records.OverridingEquals.SeniorManager.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/OverridingEquals.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/Records/PrimitiveEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs index 94d885d..8f84d02 100644 --- a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..8f84d02 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,42 @@ +//HintName: Generator.Equals.Tests.Records.PrimitiveEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class PrimitiveEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.PrimitiveEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/ReferenceEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs index 46997c1..a19fc38 100644 --- a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..a19fc38 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.ReferenceEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class ReferenceEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.ReferenceEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.ReferenceEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Name!, + global::Generator.Equals.ReferenceEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/ReferenceEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..89f1aac --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class SealedRecord + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Records.SealedRecord.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SealedRecord.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..89f1aac --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48#Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.SealedRecord.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class SealedRecord + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Records.SealedRecord.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SealedRecord.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/SetEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/SetEquality.Net60#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/SetEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/SetEquality.Net60#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs index 0637515..62d256e 100644 --- a/Generator.Equals.SnapshotTests/Records/SetEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/SetEquality.Net60#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/SetEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/SetEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SetEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..62d256e --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48#Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.SetEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class SetEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.SetEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.SetEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Properties!, + global::Generator.Equals.SetEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/SetEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/Records/UnorderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs index 7d3e8ca..28ed5a7 100644 --- a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Records { diff --git a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..28ed5a7 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,38 @@ +//HintName: Generator.Equals.Tests.Records.UnorderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Records +{ + partial class UnorderedEquality + { + partial record Sample + { + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public virtual bool Equals(global::Generator.Equals.Tests.Records.UnorderedEquality.Sample? other) + { + return + !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract + && global::Generator.Equals.UnorderedEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add(this.EqualityContract); + hashCode.Add( + this.Properties!, + global::Generator.Equals.UnorderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Records/UnorderedEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/SnapshotTestBase.cs b/Generator.Equals.SnapshotTests/SnapshotTestBase.cs new file mode 100644 index 0000000..5e73328 --- /dev/null +++ b/Generator.Equals.SnapshotTests/SnapshotTestBase.cs @@ -0,0 +1,83 @@ +using System.Collections.Immutable; +using DiffEngine; +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.Testing; + +namespace Generator.Equals.SnapshotTests +{ + public abstract class SnapshotTestBase + { + static readonly Lazy Init = new(DoInit, LazyThreadSafetyMode.ExecutionAndPublication); + + static bool DoInit() + { + DiffTools.UseOrder(DiffTool.VisualStudioCode); + VerifySourceGenerators.Enable(); + VerifySourceGeneratorsPatch.Patch(); + ClipboardAccept.Enable(); + return true; + } + + protected SnapshotTestBase() + { + if (!Init.Value) + throw new InvalidOperationException(); + } + + public enum TargetFramework + { + Net60, + NetFramework48 + } + + protected async Task VerifyGeneratedSource( + string directory, + string fileName, + string source, + OutputKind outputKind = OutputKind.DynamicallyLinkedLibrary, + TargetFramework targetFramework = TargetFramework.Net60, + CancellationToken ct = default) + { + var parseOptions = new CSharpParseOptions(LanguageVersion.CSharp9); + ReferenceAssemblies? referenceAssemblies; + switch (targetFramework) + { + case TargetFramework.Net60: + referenceAssemblies = ReferenceAssemblies.Net.Net60; + break; + case TargetFramework.NetFramework48: + referenceAssemblies = ReferenceAssemblies.NetFramework.Net48.Default; + referenceAssemblies = referenceAssemblies.AddPackages(ImmutableArray.Empty.Add(new PackageIdentity("Microsoft.Bcl.HashCode", "1.1.1"))); + break; + default: + throw new ArgumentOutOfRangeException(nameof(targetFramework), targetFramework, null); + } + + var references = await referenceAssemblies.ResolveAsync(null, ct); + + var compilation = (Compilation)CSharpCompilation.Create( + assemblyName: "MyAssembly", + syntaxTrees: new[] + { + CSharpSyntaxTree.ParseText( + source, + options: parseOptions, + cancellationToken: ct), + }, + references: references, + options: new CSharpCompilationOptions(outputKind, nullableContextOptions: NullableContextOptions.Enable)); + + var driver = CSharpGeneratorDriver + .Create(new[] { new EqualsGenerator().AsSourceGenerator() }, parseOptions: parseOptions) + .RunGeneratorsAndUpdateCompilation(compilation, out _, out var diagnostics, ct); + + var targetFileName = $"{fileName}.{targetFramework}"; + + await Task.WhenAll( + Verify(diagnostics).UseDirectory(directory).UseFileName($"{targetFileName}.Diagnostics"), + Verify(driver).UseDirectory(directory).UseFileName(targetFileName) + ); + } + } +} \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/CustomEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/CustomEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs index 40bbed5..6ac69d7 100644 --- a/Generator.Equals.SnapshotTests/Structs/CustomEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/CustomEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..6ac69d7 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48#Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Structs.CustomEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class CustomEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.CustomEquality.Sample left, + global::Generator.Equals.Tests.Structs.CustomEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.CustomEquality.Sample left, global::Generator.Equals.Tests.Structs.CustomEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.CustomEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.CustomEquality.Sample other) + { + return true + && global::Generator.Equals.Tests.Structs.CustomEquality.Comparer1.Default.Equals(this.Name1!, other.Name1!) + && global::Generator.Equals.Tests.Structs.CustomEquality.Comparer2.Instance.Equals(this.Name2!, other.Name2!) + && new global::Generator.Equals.Tests.Structs.CustomEquality.LengthEqualityComparer().Equals(this.Name3!, other.Name3!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name1!, + global::Generator.Equals.Tests.Structs.CustomEquality.Comparer1.Default); + hashCode.Add( + this.Name2!, + global::Generator.Equals.Tests.Structs.CustomEquality.Comparer2.Instance); + hashCode.Add( + this.Name3!, + new global::Generator.Equals.Tests.Structs.CustomEquality.LengthEqualityComparer()); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/CustomEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/DefaultBehavior.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/DictionaryEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs index 337fae1..17ee148 100644 --- a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..17ee148 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48#Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.DictionaryEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class DictionaryEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample left, + global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample left, global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.DictionaryEquality.Sample other) + { + return true + && global::Generator.Equals.DictionaryEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.DictionaryEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/DictionaryEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.verified.cs b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/ExplicitMode.verified.cs rename to Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs index 98d46ca..9018d70 100644 --- a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..9018d70 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48#Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.ExplicitMode.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class ExplicitMode + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.ExplicitMode.Sample left, + global::Generator.Equals.Tests.Structs.ExplicitMode.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.ExplicitMode.Sample left, global::Generator.Equals.Tests.Structs.ExplicitMode.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.ExplicitMode.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.ExplicitMode.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ExplicitMode.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/FieldEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/FieldEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs index 6e07b4c..1a87e04 100644 --- a/Generator.Equals.SnapshotTests/Structs/FieldEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/FieldEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..1a87e04 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48#Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.FieldEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class FieldEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.FieldEquality.Sample left, + global::Generator.Equals.Tests.Structs.FieldEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.FieldEquality.Sample left, global::Generator.Equals.Tests.Structs.FieldEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.FieldEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.FieldEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this._addresses!, other._addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this._addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/FieldEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs index 9775ab8..2d09061 100644 --- a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..2d09061 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48#Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.verified.cs @@ -0,0 +1,68 @@ +//HintName: Generator.Equals.Tests.Structs.GenericParameterEquality.Sample_TName_ TAge_.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class GenericParameterEquality + { + partial struct Sample : global::System.IEquatable> + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample left, + global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer>.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample left, global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.GenericParameterEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/GenericParameterEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/IgnoreEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs index 0c081dd..e95b2a5 100644 --- a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..e95b2a5 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48#Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.IgnoreEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class IgnoreEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample left, + global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample left, global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.IgnoreEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/IgnoreEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs index 51b3d1d..93a21d0 100644 --- a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..93a21d0 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48#Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,72 @@ +//HintName: Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class MultiplePartialsEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample left, + global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample left, global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.MultiplePartialsEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.FirstName!, other.FirstName!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.LastName!, other.LastName!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + hashCode.Add( + this.FirstName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.LastName!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/MultiplePartialsEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.verified.cs b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.verified.cs rename to Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs index 661a5e0..a55caf4 100644 --- a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..a55caf4 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48#Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.NonSupportedMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class NonSupportedMembers + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample left, + global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample left, global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.NonSupportedMembers.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NonSupportedMembers.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/NullableEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/NullableEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs index 3e1e5ae..4b50b53 100644 --- a/Generator.Equals.SnapshotTests/Structs/NullableEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NullableEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..4b50b53 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48#Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.NullableEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class NullableEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.NullableEquality.Sample left, + global::Generator.Equals.Tests.Structs.NullableEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.NullableEquality.Sample left, global::Generator.Equals.Tests.Structs.NullableEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.NullableEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.NullableEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/NullableEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.verified.cs b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.verified.cs rename to Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs index d813318..a4240a3 100644 --- a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..a4240a3 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,68 @@ +//HintName: Generator.Equals.Tests.Structs.ObsoleteMembers.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class ObsoleteMembers + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample left, + global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample left, global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.ObsoleteMembers.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.NoComment!, other.NoComment!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Comment!, other.Comment!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.NoComment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Comment!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteMembers.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.verified.cs b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.verified.cs rename to Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs index c7310f0..0b2b006 100644 --- a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.received.cs new file mode 100644 index 0000000..0b2b006 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.received.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class ObsoleteStruct + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample left, + global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample left, global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Something!, other.Something!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Something!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..0b2b006 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48#Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.ObsoleteStruct.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class ObsoleteStruct + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample left, + global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample left, global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.ObsoleteStruct.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Something!, other.Something!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Something!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ObsoleteStruct.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/OrderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs index 796a7cb..b5ee12e 100644 --- a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..b5ee12e --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48#Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.OrderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class OrderedEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.OrderedEquality.Sample left, + global::Generator.Equals.Tests.Structs.OrderedEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.OrderedEquality.Sample left, global::Generator.Equals.Tests.Structs.OrderedEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.OrderedEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.OrderedEquality.Sample other) + { + return true + && global::Generator.Equals.OrderedEqualityComparer.Default.Equals(this.Addresses!, other.Addresses!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Addresses!, + global::Generator.Equals.OrderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/OrderedEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs index 3171e4c..fbe917d 100644 --- a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..fbe917d --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48#Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,68 @@ +//HintName: Generator.Equals.Tests.Structs.PrimitiveEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class PrimitiveEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample left, + global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample left, global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.PrimitiveEquality.Sample other) + { + return true + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) + && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.DefaultEqualityComparer.Default); + hashCode.Add( + this.Age!, + global::Generator.Equals.DefaultEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/PrimitiveEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/ReferenceEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs index f88f46a..ab592f0 100644 --- a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..ab592f0 --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48#Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.ReferenceEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class ReferenceEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample left, + global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample left, global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.ReferenceEquality.Sample other) + { + return true + && global::Generator.Equals.ReferenceEqualityComparer.Default.Equals(this.Name!, other.Name!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Name!, + global::Generator.Equals.ReferenceEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/ReferenceEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/SetEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/SetEquality.Net60#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/SetEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/SetEquality.Net60#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs index 3063077..23061cf 100644 --- a/Generator.Equals.SnapshotTests/Structs/SetEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/SetEquality.Net60#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/SetEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/SetEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/SetEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..23061cf --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48#Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.SetEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class SetEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.SetEquality.Sample left, + global::Generator.Equals.Tests.Structs.SetEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.SetEquality.Sample left, global::Generator.Equals.Tests.Structs.SetEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.SetEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.SetEquality.Sample other) + { + return true + && global::Generator.Equals.SetEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.SetEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/SetEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.verified.cs b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs similarity index 99% rename from Generator.Equals.SnapshotTests/Structs/UnorderedEquality.verified.cs rename to Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs index f868bca..5cb04fe 100644 --- a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.verified.cs +++ b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 namespace Generator.Equals.Tests.Structs { diff --git a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs new file mode 100644 index 0000000..5cb04fe --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48#Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.verified.cs @@ -0,0 +1,64 @@ +//HintName: Generator.Equals.Tests.Structs.UnorderedEquality.Sample.Generator.Equals.g.cs + +#nullable enable +#pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 + +namespace Generator.Equals.Tests.Structs +{ + partial class UnorderedEquality + { + partial struct Sample : global::System.IEquatable + { + /// + /// Indicates whether the object on the left is equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator ==( + global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample left, + global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample right) => + global::Generator.Equals.DefaultEqualityComparer.Default + .Equals(left, right); + + /// + /// Indicates whether the object on the left is not equal to the object on the right. + /// + /// The left object + /// The right object + /// true if the objects are not equal; otherwise, false. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public static bool operator !=(global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample left, global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample right) => + !(left == right); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override bool Equals(object? obj) => + obj is global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample o && Equals(o); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public bool Equals(global::Generator.Equals.Tests.Structs.UnorderedEquality.Sample other) + { + return true + && global::Generator.Equals.UnorderedEqualityComparer.Default.Equals(this.Properties!, other.Properties!) + ; + } + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + public override int GetHashCode() + { + var hashCode = new global::System.HashCode(); + + hashCode.Add( + this.Properties!, + global::Generator.Equals.UnorderedEqualityComparer.Default); + + return hashCode.ToHashCode(); + } + } + } +} diff --git a/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/Structs/UnorderedEquality.NetFramework48.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.00Animal.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.00Animal.Generator.Equals.g.verified.cs deleted file mode 100644 index 9160174..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.00Animal.Generator.Equals.g.verified.cs +++ /dev/null @@ -1,35 +0,0 @@ -//HintName: Animal.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial record Animal -{ - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public virtual bool Equals(global::Animal? other) - { - return - !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.EqualityContract); - hashCode.Add( - this.Name!, - global::System.Collections.Generic.EqualityComparer.Default); - hashCode.Add( - this.Age!, - global::System.Collections.Generic.EqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01Person.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01Person.Generator.Equals.g.verified.cs deleted file mode 100644 index 14d3263..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01Person.Generator.Equals.g.verified.cs +++ /dev/null @@ -1,63 +0,0 @@ -//HintName: Person.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial class Person : global::System.IEquatable -{ - /// - /// Indicates whether the object on the left is equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator ==( - global::Person? left, - global::Person? right) => - global::System.Collections.Generic.EqualityComparer.Default - .Equals(left, right); - - /// - /// Indicates whether the object on the left is not equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are not equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator !=(global::Person? left, global::Person? right) => - !(left == right); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override bool Equals(object? obj) => - Equals(obj as global::Person); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Person? other) - { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.GetType()); - hashCode.Add( - this.Name!, - global::System.Collections.Generic.EqualityComparer.Default); - hashCode.Add( - this.Age!, - global::System.Collections.Generic.EqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01RecordSample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01RecordSample.Generator.Equals.g.verified.cs deleted file mode 100644 index 2ce61c5..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.01RecordSample.Generator.Equals.g.verified.cs +++ /dev/null @@ -1,35 +0,0 @@ -//HintName: RecordSample.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial record RecordSample -{ - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public virtual bool Equals(global::RecordSample? other) - { - return - !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.EqualityContract); - hashCode.Add( - this.Name!, - global::Generator.Equals.DefaultEqualityComparer.Default); - hashCode.Add( - this.Age!, - global::Generator.Equals.DefaultEqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.03StructSample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.03StructSample.Generator.Equals.g.verified.cs deleted file mode 100644 index c7cb137..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.03StructSample.Generator.Equals.g.verified.cs +++ /dev/null @@ -1,61 +0,0 @@ -//HintName: StructSample.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial struct StructSample : global::System.IEquatable -{ - /// - /// Indicates whether the object on the left is equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator ==( - global::StructSample left, - global::StructSample right) => - global::Generator.Equals.DefaultEqualityComparer.Default - .Equals(left, right); - - /// - /// Indicates whether the object on the left is not equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are not equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator !=(global::StructSample left, global::StructSample right) => - !(left == right); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override bool Equals(object? obj) => - obj is global::StructSample o && Equals(o); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::StructSample other) - { - return true - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add( - this.Name!, - global::Generator.Equals.DefaultEqualityComparer.Default); - hashCode.Add( - this.Age!, - global::Generator.Equals.DefaultEqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00Animal.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00Animal.Generator.Equals.g.received.cs deleted file mode 100644 index 9160174..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00Animal.Generator.Equals.g.received.cs +++ /dev/null @@ -1,35 +0,0 @@ -//HintName: Animal.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial record Animal -{ - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public virtual bool Equals(global::Animal? other) - { - return - !ReferenceEquals(other, null) && EqualityContract == other.EqualityContract - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.EqualityContract); - hashCode.Add( - this.Name!, - global::System.Collections.Generic.EqualityComparer.Default); - hashCode.Add( - this.Age!, - global::System.Collections.Generic.EqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00ClassSample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00ClassSample.Generator.Equals.g.received.cs deleted file mode 100644 index 426427c..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.00ClassSample.Generator.Equals.g.received.cs +++ /dev/null @@ -1,63 +0,0 @@ -//HintName: ClassSample.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial class ClassSample : global::System.IEquatable -{ - /// - /// Indicates whether the object on the left is equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator ==( - global::ClassSample? left, - global::ClassSample? right) => - global::Generator.Equals.DefaultEqualityComparer.Default - .Equals(left, right); - - /// - /// Indicates whether the object on the left is not equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are not equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator !=(global::ClassSample? left, global::ClassSample? right) => - !(left == right); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override bool Equals(object? obj) => - Equals(obj as global::ClassSample); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::ClassSample? other) - { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.GetType()); - hashCode.Add( - this.Name!, - global::Generator.Equals.DefaultEqualityComparer.Default); - hashCode.Add( - this.Age!, - global::Generator.Equals.DefaultEqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01Person.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01Person.Generator.Equals.g.received.cs deleted file mode 100644 index 14d3263..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01Person.Generator.Equals.g.received.cs +++ /dev/null @@ -1,63 +0,0 @@ -//HintName: Person.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial class Person : global::System.IEquatable -{ - /// - /// Indicates whether the object on the left is equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator ==( - global::Person? left, - global::Person? right) => - global::System.Collections.Generic.EqualityComparer.Default - .Equals(left, right); - - /// - /// Indicates whether the object on the left is not equal to the object on the right. - /// - /// The left object - /// The right object - /// true if the objects are not equal; otherwise, false. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public static bool operator !=(global::Person? left, global::Person? right) => - !(left == right); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override bool Equals(object? obj) => - Equals(obj as global::Person); - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::Person? other) - { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::System.Collections.Generic.EqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add(this.GetType()); - hashCode.Add( - this.Name!, - global::System.Collections.Generic.EqualityComparer.Default); - hashCode.Add( - this.Age!, - global::System.Collections.Generic.EqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.02RecordStructSample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.02RecordStructSample.Generator.Equals.g.received.cs deleted file mode 100644 index adcf4f1..0000000 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.02RecordStructSample.Generator.Equals.g.received.cs +++ /dev/null @@ -1,33 +0,0 @@ -//HintName: RecordStructSample.Generator.Equals.g.cs - -#nullable enable -#pragma warning disable CS0612,CS0618 - -partial record struct RecordStructSample -{ - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::RecordStructSample other) - { - return true - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) - && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) - ; - } - - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public override int GetHashCode() - { - var hashCode = new global::System.HashCode(); - - hashCode.Add( - this.Name!, - global::Generator.Equals.DefaultEqualityComparer.Default); - hashCode.Add( - this.Age!, - global::Generator.Equals.DefaultEqualityComparer.Default); - - return hashCode.ToHashCode(); - } -} diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.00ClassSample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#ClassSample.Generator.Equals.g.verified.cs similarity index 83% rename from Generator.Equals.SnapshotTests/TopLevel/Program.cs.00ClassSample.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#ClassSample.Generator.Equals.g.verified.cs index 426427c..26d7b58 100644 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.00ClassSample.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#ClassSample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 partial class ClassSample : global::System.IEquatable { @@ -35,10 +36,16 @@ public override bool Equals(object? obj) => /// [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] - public bool Equals(global::ClassSample? other) + bool global::System.IEquatable.Equals(global::ClassSample? obj) => Equals((object?) obj); + + /// + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Generator.Equals", "1.0.0.0")] + protected bool Equals(global::ClassSample? other) { - return - !ReferenceEquals(other, null) && this.GetType() == other.GetType() + if (ReferenceEquals(null, other)) return false; + if (ReferenceEquals(this, other)) return true; + + return other.GetType() == this.GetType() && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Name!, other.Name!) && global::Generator.Equals.DefaultEqualityComparer.Default.Equals(this.Age!, other.Age!) ; diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01RecordSample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordSample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01RecordSample.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordSample.Generator.Equals.g.verified.cs index 2ce61c5..61eb4fe 100644 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.01RecordSample.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordSample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 partial record RecordSample { diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.02RecordStructSample.Generator.Equals.g.verified.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordStructSample.Generator.Equals.g.verified.cs similarity index 97% rename from Generator.Equals.SnapshotTests/TopLevel/Program.cs.02RecordStructSample.Generator.Equals.g.verified.cs rename to Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordStructSample.Generator.Equals.g.verified.cs index adcf4f1..0952254 100644 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.02RecordStructSample.Generator.Equals.g.verified.cs +++ b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#RecordStructSample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 partial record struct RecordStructSample { diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.03StructSample.Generator.Equals.g.received.cs b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#StructSample.Generator.Equals.g.verified.cs similarity index 98% rename from Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.03StructSample.Generator.Equals.g.received.cs rename to Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#StructSample.Generator.Equals.g.verified.cs index c7cb137..49449a0 100644 --- a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.DotNet6_0.03StructSample.Generator.Equals.g.received.cs +++ b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60#StructSample.Generator.Equals.g.verified.cs @@ -2,6 +2,7 @@ #nullable enable #pragma warning disable CS0612,CS0618 +#pragma warning disable CS0436 partial struct StructSample : global::System.IEquatable { diff --git a/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60.Diagnostics.verified.txt b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60.Diagnostics.verified.txt new file mode 100644 index 0000000..ad47dbb --- /dev/null +++ b/Generator.Equals.SnapshotTests/TopLevel/Program.cs.Net60.Diagnostics.verified.txt @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/Generator.Equals.SnapshotTests/TopLevelSourceTests.cs b/Generator.Equals.SnapshotTests/TopLevelSourceTests.cs index 094edfb..6bb6daa 100644 --- a/Generator.Equals.SnapshotTests/TopLevelSourceTests.cs +++ b/Generator.Equals.SnapshotTests/TopLevelSourceTests.cs @@ -4,7 +4,7 @@ namespace Generator.Equals.SnapshotTests { [UsesVerify] - public class TopLevelSourceTests + public class TopLevelSourceTests : SnapshotTestBase { static string ThisPath([CallerFilePath] string path = null!) => path; @@ -17,9 +17,9 @@ public async Task Check() "../../Generator.Equals.Tests.TopLevel/Program.cs") ); - var topLevelSource = await File.ReadAllTextAsync(topLevelProgramPath); + var topLevelSource = File.ReadAllText(topLevelProgramPath); - await GeneratedSourceTests.VerifyGeneratedSource( + await VerifyGeneratedSource( Path.Combine(Path.GetDirectoryName(ThisPath())!, "TopLevel")!, Path.GetFileName(topLevelProgramPath), topLevelSource, diff --git a/Generator.Equals.SnapshotTests/VerifySourceGeneratorsPatch.cs b/Generator.Equals.SnapshotTests/VerifySourceGeneratorsPatch.cs new file mode 100644 index 0000000..1eac541 --- /dev/null +++ b/Generator.Equals.SnapshotTests/VerifySourceGeneratorsPatch.cs @@ -0,0 +1,73 @@ +using System.Collections; +using System.Reflection; +using Microsoft.CodeAnalysis; + +namespace Generator.Equals.SnapshotTests; + +public static class VerifySourceGeneratorsPatch +{ + public static void Patch() + { + var list = (IList)typeof(VerifierSettings) + .GetField("typedConverters", BindingFlags.Static | BindingFlags.NonPublic)! + .GetValue(null)!; + + list.RemoveAt(list.Count - 1); + list.RemoveAt(list.Count - 1); + + VerifierSettings.RegisterFileConverter(Convert); + VerifierSettings.RegisterFileConverter(Convert); + } + + static ConversionResult Convert(GeneratorDriverRunResult target, IReadOnlyDictionary context) + { + var exceptions = new List(); + var targets = new List(); + foreach (var result in target.Results) + { + if (result.Exception != null) + { + exceptions.Add(result.Exception); + } + + var collection = result.GeneratedSources + .Where(x => !x.HintName.StartsWith("Generator.Equals.Runtime")) + .OrderBy(x => x.HintName) + .Select(SourceToTarget); + targets.AddRange(collection); + } + + if (exceptions.Count == 1) + { + throw exceptions.First(); + } + + if (exceptions.Count > 1) + { + throw new AggregateException(exceptions); + } + + if (target.Diagnostics.Any()) + { + var info = new + { + target.Diagnostics + }; + return new(info, targets); + } + + return new(null, targets); + } + + static Target SourceToTarget(GeneratedSourceResult source) + { + var data = $""" + //HintName: {source.HintName} + {source.SourceText} + """; + return new("cs", data, Path.GetFileNameWithoutExtension(source.HintName)); + } + + static ConversionResult Convert(GeneratorDriver target, IReadOnlyDictionary context) => + Convert(target.GetRunResult(), context); +} \ No newline at end of file diff --git a/Generator.Equals.Tests/Classes/SealedClass.Sample.cs b/Generator.Equals.Tests/Classes/SealedClass.Sample.cs new file mode 100644 index 0000000..9e68b70 --- /dev/null +++ b/Generator.Equals.Tests/Classes/SealedClass.Sample.cs @@ -0,0 +1,16 @@ +namespace Generator.Equals.Tests.Classes +{ + public partial class SealedClass + { + [Equatable] + public sealed partial class Sample + { + public Sample(string[] addresses) + { + Addresses = addresses; + } + + [OrderedEquality] public string[] Addresses { get; } + } + } +} \ No newline at end of file diff --git a/Generator.Equals.Tests/Classes/SealedClass.cs b/Generator.Equals.Tests/Classes/SealedClass.cs new file mode 100644 index 0000000..8a0bf9f --- /dev/null +++ b/Generator.Equals.Tests/Classes/SealedClass.cs @@ -0,0 +1,21 @@ +namespace Generator.Equals.Tests.Classes +{ + public partial class SealedClass + { + public class EqualsTest : EqualityTestCase + { + public override object Factory1() => new Sample(new[] {"10 Downing St"}); + public override bool EqualsOperator(object value1, object value2) => (Sample) value1 == (Sample) value2; + public override bool NotEqualsOperator(object value1, object value2) => (Sample) value1 != (Sample) value2; + } + + public class NotEqualsTest : EqualityTestCase + { + public override bool Expected => false; + public override object Factory1() => new Sample(new[] {"10 Downing St"}); + public override object Factory2() => new Sample(new[] {"Bricklane"}); + public override bool EqualsOperator(object value1, object value2) => (Sample) value1 == (Sample) value2; + public override bool NotEqualsOperator(object value1, object value2) => (Sample) value1 != (Sample) value2; + } + } +} \ No newline at end of file diff --git a/Generator.Equals.Tests/EqualityTestCase.cs b/Generator.Equals.Tests/EqualityTestCase.cs index 21df29d..979a3ef 100644 --- a/Generator.Equals.Tests/EqualityTestCase.cs +++ b/Generator.Equals.Tests/EqualityTestCase.cs @@ -49,13 +49,12 @@ public virtual void TestHashCode() } } - public abstract class EqualityTestCase : EqualityTestCase where T : IEquatable + public abstract class EqualityTestCase : EqualityTestCase { - [Fact(Skip = "Re-enable in 3.0")] public void TestEqualsEquatable() { - var value1 = (T)Factory1(); - var value2 = (T)Factory2(); + var value1 = (IEquatable)Factory1(); + var value2 = (IEquatable)Factory2(); var result = value1.Equals(value2); result.Should().Be(Expected); } diff --git a/Generator.Equals.Tests/Generator.Equals.Tests.csproj b/Generator.Equals.Tests/Generator.Equals.Tests.csproj index efaef43..b8165e9 100644 --- a/Generator.Equals.Tests/Generator.Equals.Tests.csproj +++ b/Generator.Equals.Tests/Generator.Equals.Tests.csproj @@ -1,21 +1,24 @@ - net6.0 + net6.0;net48 false disable NU1701 + enable - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all @@ -26,4 +29,4 @@ - + \ No newline at end of file diff --git a/Generator.Equals.Tests/IsExternalInit.cs b/Generator.Equals.Tests/IsExternalInit.cs new file mode 100644 index 0000000..2b27f5b --- /dev/null +++ b/Generator.Equals.Tests/IsExternalInit.cs @@ -0,0 +1,17 @@ +using System.ComponentModel; + +// ReSharper disable once CheckNamespace +namespace System.Runtime.CompilerServices; + +#if NETFRAMEWORK + +/// +/// Reserved to be used by the compiler for tracking metadata. +/// This class should not be used by developers in source code. +/// +[EditorBrowsable(EditorBrowsableState.Never)] +static class IsExternalInit +{ +} + +#endif \ No newline at end of file diff --git a/Generator.Equals.Tests/Records/SealedRecord.Sample.cs b/Generator.Equals.Tests/Records/SealedRecord.Sample.cs new file mode 100644 index 0000000..b4d586f --- /dev/null +++ b/Generator.Equals.Tests/Records/SealedRecord.Sample.cs @@ -0,0 +1,8 @@ +namespace Generator.Equals.Tests.Records +{ + public partial class SealedRecord + { + [Equatable] + public sealed partial record Sample([property: OrderedEquality] string[] Addresses); + } +} \ No newline at end of file diff --git a/Generator.Equals.Tests/Records/SealedRecord.cs b/Generator.Equals.Tests/Records/SealedRecord.cs new file mode 100644 index 0000000..fba6b37 --- /dev/null +++ b/Generator.Equals.Tests/Records/SealedRecord.cs @@ -0,0 +1,21 @@ +namespace Generator.Equals.Tests.Records +{ + public partial class SealedRecord + { + public class EqualsTest : EqualityTestCase + { + public override object Factory1() => new Sample(new[] {"10 Downing St"}); + public override bool EqualsOperator(object value1, object value2) => (Sample) value1 == (Sample) value2; + public override bool NotEqualsOperator(object value1, object value2) => (Sample) value1 != (Sample) value2; + } + + public class NotEqualsTest : EqualityTestCase + { + public override bool Expected => false; + public override object Factory1() => new Sample(new[] {"10 Downing St"}); + public override object Factory2() => new Sample(new[] {"Bricklane"}); + public override bool EqualsOperator(object value1, object value2) => (Sample) value1 == (Sample) value2; + public override bool NotEqualsOperator(object value1, object value2) => (Sample) value1 != (Sample) value2; + } + } +} \ No newline at end of file diff --git a/Generator.Equals.Tests/Runtime/DefaultEqualityComparerTests.cs b/Generator.Equals.Tests/Runtime/DefaultEqualityComparerTests.cs index 7284dbc..8530ba2 100644 --- a/Generator.Equals.Tests/Runtime/DefaultEqualityComparerTests.cs +++ b/Generator.Equals.Tests/Runtime/DefaultEqualityComparerTests.cs @@ -19,13 +19,13 @@ partial class NonSealedClass [Fact] public void GetHashCode_SealedClass_NullValueShouldReturnZero() { - DefaultEqualityComparer.Default.GetHashCode(null).Should().Be(0); + DefaultEqualityComparer.Default.GetHashCode(null!).Should().Be(0); } [Fact] public void GetHashCode_NonSealedClass_NullValueShouldReturnZero() { - DefaultEqualityComparer.Default.GetHashCode(null).Should().Be(0); + DefaultEqualityComparer.Default.GetHashCode(null!).Should().Be(0); } } \ No newline at end of file diff --git a/Generator.Equals.sln b/Generator.Equals.sln index d647acf..4a7b213 100644 --- a/Generator.Equals.sln +++ b/Generator.Equals.sln @@ -7,12 +7,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Generator.Equals", "Generat EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Generator.Equals.Tests", "Generator.Equals.Tests\Generator.Equals.Tests.csproj", "{37C6B07B-F2E7-4CCD-9D2C-59C2238EDD9D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Generator.Equals.Runtime", "Generator.Equals.Runtime\Generator.Equals.Runtime.csproj", "{3BDD3055-0529-467B-8E8B-A22B5E068743}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Generator.Equals.SnapshotTests", "Generator.Equals.SnapshotTests\Generator.Equals.SnapshotTests.csproj", "{F11B4229-E761-4135-B758-E61AC4FF5303}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator.Equals.Tests.TopLevel", "Generator.Equals.Tests.TopLevel\Generator.Equals.Tests.TopLevel.csproj", "{9A48A8A6-4213-4CBB-B184-FE1E50F3721E}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Generator.Equals.Runtime", "Generator.Equals.Runtime\Generator.Equals.Runtime.csproj", "{2AD99F42-5E2C-451A-97EE-59C64EC8B270}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -27,10 +27,6 @@ Global {37C6B07B-F2E7-4CCD-9D2C-59C2238EDD9D}.Debug|Any CPU.Build.0 = Debug|Any CPU {37C6B07B-F2E7-4CCD-9D2C-59C2238EDD9D}.Release|Any CPU.ActiveCfg = Release|Any CPU {37C6B07B-F2E7-4CCD-9D2C-59C2238EDD9D}.Release|Any CPU.Build.0 = Release|Any CPU - {3BDD3055-0529-467B-8E8B-A22B5E068743}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BDD3055-0529-467B-8E8B-A22B5E068743}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BDD3055-0529-467B-8E8B-A22B5E068743}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BDD3055-0529-467B-8E8B-A22B5E068743}.Release|Any CPU.Build.0 = Release|Any CPU {F11B4229-E761-4135-B758-E61AC4FF5303}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F11B4229-E761-4135-B758-E61AC4FF5303}.Debug|Any CPU.Build.0 = Debug|Any CPU {F11B4229-E761-4135-B758-E61AC4FF5303}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -39,6 +35,10 @@ Global {9A48A8A6-4213-4CBB-B184-FE1E50F3721E}.Debug|Any CPU.Build.0 = Debug|Any CPU {9A48A8A6-4213-4CBB-B184-FE1E50F3721E}.Release|Any CPU.ActiveCfg = Release|Any CPU {9A48A8A6-4213-4CBB-B184-FE1E50F3721E}.Release|Any CPU.Build.0 = Release|Any CPU + {2AD99F42-5E2C-451A-97EE-59C64EC8B270}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2AD99F42-5E2C-451A-97EE-59C64EC8B270}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2AD99F42-5E2C-451A-97EE-59C64EC8B270}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2AD99F42-5E2C-451A-97EE-59C64EC8B270}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Generator.Equals/ClassEqualityGenerator.cs b/Generator.Equals/ClassEqualityGenerator.cs index 028cf13..4a410fa 100644 --- a/Generator.Equals/ClassEqualityGenerator.cs +++ b/Generator.Equals/ClassEqualityGenerator.cs @@ -14,6 +14,7 @@ static void BuildEquals( { var symbolName = symbol.ToFQF(); var baseTypeName = symbol.BaseType?.ToFQF(); + var isRootClass = baseTypeName == "object"; writer.WriteLines(EqualsOperatorCodeComment); writer.WriteLine(GeneratedCodeAttributeDeclaration); @@ -35,21 +36,32 @@ static void BuildEquals( writer.WriteLine("public override bool Equals(object? obj) =>"); writer.WriteLine(1, $"Equals(obj as {symbolName});"); writer.WriteLine(); + + writer.WriteLine(InheritDocComment); + writer.WriteLine(GeneratedCodeAttributeDeclaration); + writer.WriteLine($"bool global::System.IEquatable<{symbolName}>.Equals({symbolName}? obj) => Equals((object?) obj);"); + writer.WriteLine(); writer.WriteLine(InheritDocComment); writer.WriteLine(GeneratedCodeAttributeDeclaration); - writer.WriteLine($"public bool Equals({symbolName}? other)"); + writer.WriteLine($"{(symbol.IsSealed ? "private" : "protected")} bool Equals({symbolName}? other)"); writer.AppendOpenBracket(); - writer.WriteLine("return"); - + writer.WriteLine("if (ReferenceEquals(null, other)) return false;"); + writer.WriteLine("if (ReferenceEquals(this, other)) return true;"); + writer.WriteLine(); + + if (isRootClass || ignoreInheritedMembers) + { + writer.WriteLine("return other.GetType() == this.GetType()"); + } + else + { + writer.WriteLine($"return base.Equals(other as {baseTypeName})"); + } + writer.Indent++; - writer.WriteLine(baseTypeName == "object" || ignoreInheritedMembers - ? "!ReferenceEquals(other, null) && this.GetType() == other.GetType()" - : $"base.Equals(other as {baseTypeName})"); - BuildMembersEquality(symbol, attributesMetadata, writer, explicitMode); - writer.WriteLine(";"); writer.Indent--; diff --git a/Generator.Equals/ContainingTypesBuilder.cs b/Generator.Equals/ContainingTypesBuilder.cs index 46ae72e..fd820a2 100644 --- a/Generator.Equals/ContainingTypesBuilder.cs +++ b/Generator.Equals/ContainingTypesBuilder.cs @@ -54,6 +54,7 @@ public static string Build(ISymbol symbol, Action content, b writer.WriteLine(); writer.WriteLine(EqualityGeneratorBase.EnableNullableContext); writer.WriteLine(EqualityGeneratorBase.SuppressObsoleteWarningsPragma); + writer.WriteLine(EqualityGeneratorBase.SuppressTypeConflictsWarningsPragma); writer.WriteLine(); var namespaceName = s.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat.WithGlobalNamespaceStyle(SymbolDisplayGlobalNamespaceStyle.Omitted)); diff --git a/Generator.Equals/EqualityGeneratorBase.cs b/Generator.Equals/EqualityGeneratorBase.cs index f8bce91..868ac7a 100644 --- a/Generator.Equals/EqualityGeneratorBase.cs +++ b/Generator.Equals/EqualityGeneratorBase.cs @@ -14,6 +14,7 @@ class EqualityGeneratorBase // CS0612: Obsolete with no comment // CS0618: obsolete with comment internal const string SuppressObsoleteWarningsPragma = "#pragma warning disable CS0612,CS0618"; + internal const string SuppressTypeConflictsWarningsPragma = "#pragma warning disable CS0436"; protected static readonly string[] EqualsOperatorCodeComment = @" /// diff --git a/Generator.Equals/EqualsGenerator.cs b/Generator.Equals/EqualsGenerator.cs index 727dbdc..d5a5fdd 100644 --- a/Generator.Equals/EqualsGenerator.cs +++ b/Generator.Equals/EqualsGenerator.cs @@ -1,48 +1,65 @@ using System; using System.Collections.Generic; -using System.Diagnostics; +using System.Collections.Immutable; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; [assembly: InternalsVisibleTo("Generator.Equals.SnapshotTests")] namespace Generator.Equals { - [Generator] - class EqualsGenerator : ISourceGenerator + [Generator(LanguageNames.CSharp)] + public class EqualsGenerator : IIncrementalGenerator { - public void Initialize(GeneratorInitializationContext context) + public void Initialize(IncrementalGeneratorInitializationContext context) { -#if DEBUG - Debugger.Launch(); -#endif - context.RegisterForSyntaxNotifications(() => new SyntaxReceiver()); + var provider = context.SyntaxProvider + .ForAttributeWithMetadataName( + "Generator.Equals.EquatableAttribute", + (syntaxNode, _) => + { + return syntaxNode switch + { + ClassDeclarationSyntax => true, + RecordDeclarationSyntax => true, + StructDeclarationSyntax => true, + _ => false + }; + }, + (syntaxContext, ct) => syntaxContext); + + var combined = context.CompilationProvider.Combine(provider.Collect()); + + context.RegisterSourceOutput(combined, (spc, pair) => Execute(spc, pair.Left, pair.Right)); } - public void Execute(GeneratorExecutionContext context) - { - if (!(context.SyntaxReceiver is SyntaxReceiver s)) return; + void Execute(SourceProductionContext productionContext, Compilation compilation, + ImmutableArray syntaxArr) + { var attributesMetadata = new AttributesMetadata( - context.Compilation.GetTypeByMetadataName("Generator.Equals.EquatableAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.DefaultEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.OrderedEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.IgnoreEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.UnorderedEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.ReferenceEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.SetEqualityAttribute")!, - context.Compilation.GetTypeByMetadataName("Generator.Equals.CustomEqualityAttribute")! + compilation.GetTypeByMetadataName("Generator.Equals.EquatableAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.DefaultEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.OrderedEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.IgnoreEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.UnorderedEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.ReferenceEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.SetEqualityAttribute")!, + compilation.GetTypeByMetadataName("Generator.Equals.CustomEqualityAttribute")! ); var handledSymbols = new HashSet(); - foreach (var node in s.CandidateSyntaxes) + foreach (var item in syntaxArr) { - var model = context.Compilation.GetSemanticModel(node.SyntaxTree); - var symbol = model.GetDeclaredSymbol(node, context.CancellationToken) as ITypeSymbol; + var node = item.TargetNode; + var model = item.SemanticModel; + + var symbol = model.GetDeclaredSymbol(node, productionContext.CancellationToken) as ITypeSymbol; var equatableAttributeData = symbol?.GetAttributes().FirstOrDefault(x => x.AttributeClass?.Equals(attributesMetadata.Equatable, SymbolEqualityComparer.Default) == @@ -59,41 +76,33 @@ public void Execute(GeneratorExecutionContext context) handledSymbols.Add(symbolDisplayString); var explicitMode = equatableAttributeData.NamedArguments - .FirstOrDefault(pair => pair.Key == nameof(EquatableAttribute.Explicit)) + .FirstOrDefault(pair => pair.Key == "Explicit") .Value.Value is true; + var ignoreInheritedMembers = equatableAttributeData.NamedArguments - .FirstOrDefault(pair => pair.Key == nameof(EquatableAttribute.IgnoreInheritedMembers)) + .FirstOrDefault(pair => pair.Key == "IgnoreInheritedMembers") .Value.Value is true; + var source = node switch { - StructDeclarationSyntax _ => StructEqualityGenerator.Generate(symbol!, attributesMetadata, explicitMode), - RecordDeclarationSyntax _ when node.RawKind == 9068 => RecordStructEqualityGenerator.Generate(symbol!, attributesMetadata, explicitMode), - RecordDeclarationSyntax _ => RecordEqualityGenerator.Generate(symbol!, attributesMetadata, explicitMode, ignoreInheritedMembers), - ClassDeclarationSyntax _ => ClassEqualityGenerator.Generate(symbol!, attributesMetadata, explicitMode, ignoreInheritedMembers), + StructDeclarationSyntax _ => StructEqualityGenerator.Generate(symbol!, attributesMetadata, + explicitMode), + RecordDeclarationSyntax _ when node.IsKind(SyntaxKind.RecordStructDeclaration) => + RecordStructEqualityGenerator.Generate(symbol!, attributesMetadata, explicitMode), + RecordDeclarationSyntax _ => RecordEqualityGenerator.Generate(symbol!, attributesMetadata, + explicitMode, ignoreInheritedMembers), + ClassDeclarationSyntax _ => ClassEqualityGenerator.Generate(symbol!, attributesMetadata, + explicitMode, ignoreInheritedMembers), _ => throw new Exception("should not have gotten here.") }; var fileName = $"{EscapeFileName(symbolDisplayString)}.Generator.Equals.g.cs"!; - context.AddSource(fileName, source); + + productionContext.AddSource(fileName, source); } static string EscapeFileName(string fileName) => new[] { '<', '>', ',' } .Aggregate(new StringBuilder(fileName), (s, c) => s.Replace(c, '_')).ToString(); } - - class SyntaxReceiver : ISyntaxReceiver - { - readonly List _candidateSyntaxes = new List(); - - public IReadOnlyList CandidateSyntaxes => _candidateSyntaxes; - - public void OnVisitSyntaxNode(SyntaxNode syntaxNode) - { - if (!(syntaxNode is ClassDeclarationSyntax c) && !(syntaxNode is RecordDeclarationSyntax) && !(syntaxNode is StructDeclarationSyntax)) - return; - - _candidateSyntaxes.Add(syntaxNode); - } - } } } \ No newline at end of file diff --git a/Generator.Equals/Generator.Equals.csproj b/Generator.Equals/Generator.Equals.csproj index 345b444..4ccff58 100644 --- a/Generator.Equals/Generator.Equals.csproj +++ b/Generator.Equals/Generator.Equals.csproj @@ -7,21 +7,24 @@ true false - 8.0 + 9.0 + enable - - + + - - + + + + \ No newline at end of file diff --git a/README.md b/README.md index 83591e1..c2bedf0 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,21 @@ A source code generator for automatically implementing IEquatable<T> using ## Requirements In order to use this library, you must: -* Use a target framework that supports .NET Standard >= 2.0 (eg. .NET Core 3.1 or .NET 5.0); -* Set your project's C# ```LangVersion``` property to 8.0 or higher. +* Use a target framework that supports .NET Standard >= 2.0 +* Set your project's C# ```LangVersion``` property to 9.0 or higher. + +## Installation + +Simply add the package `Generator.Equals` to your project. Keep reading to learn how to add the attributes to your types. + +## Migrating from version 2 + +Migrating to version 3 is very straightforward. + +1. Ensure projects are targeting C# 9.0 or latter using the MSBuild property `LangVersion`. +2. Be aware that `IEquatable` for classes is now implemented explicitly in order to support deep equality. As a result, the method `Equals(T)` method is no longer marked as public. Most code should still work, requiring only to be recompiled as the ABI has changed. + +If you have an existing project using `Generator.Equals` and don't need any of the new features, you can still use version 2.x. The differences are minimal between both major versions. ## Usage @@ -201,4 +214,4 @@ partial class Doctor : Person public string Id { get; set; } public string Specialization { get; set; } } -``` \ No newline at end of file +```