Skip to content

Commit 55193b8

Browse files
committed
fix: make source generator snapshot build configuration invariant
1 parent 6415600 commit 55193b8

13 files changed

Lines changed: 208 additions & 277 deletions

File tree

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/BaseClass_WithMultipleAdditionalInterfaces_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/ComprehensiveAbstractClass_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/ComprehensiveDelegate_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/ComprehensiveInterface_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/HttpClient_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns an empty <see cref="global::System.Net.Http.HttpResponseMessage">HttpResponseMessage</see> with the specified
7877
/// <paramref name="statusCode" />.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private sealed class HttpResponseMessageFactory(global::System.Net.HttpStatusCode statusCode) : IDefaultValueFactory
8381
{
@@ -93,7 +91,6 @@ public bool IsMatch(global::System.Type type)
9391
/// <summary>
9492
/// Provides default values for common types used in mocking scenarios.
9593
/// </summary>
96-
[global::System.Diagnostics.DebuggerNonUserCode]
9794
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
9895
private class DefaultValueGenerator : IDefaultValueGenerator
9996
{
@@ -140,7 +137,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
140137
value = null;
141138
return false;
142139

143-
[global::System.Diagnostics.DebuggerNonUserCode]
144140
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
145141
=> f.IsMatch(type);
146142
}
@@ -158,7 +154,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
158154
return false;
159155
}
160156

161-
[global::System.Diagnostics.DebuggerNonUserCode]
162157
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
163158
private sealed class CancellableTaskFactory : IDefaultValueFactory
164159
{
@@ -178,7 +173,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
178173
}
179174
}
180175
#if NET8_0_OR_GREATER
181-
[global::System.Diagnostics.DebuggerNonUserCode]
182176
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
183177
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
184178
{
@@ -204,7 +198,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
204198
/// <summary>
205199
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
206200
/// </summary>
207-
[global::System.Diagnostics.DebuggerNonUserCode]
208201
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
209202
internal static class DefaultValueGeneratorExtensions
210203
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/KeywordEdgeCases_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/RefStructConsumer_CanBeCreated/MockBehaviorExtensions.g.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public interface IDefaultValueFactory
6161
/// A <see cref="IDefaultValueFactory">IDefaultValueFactory</see> that returns a specified <paramref name="value" /> for the given type
6262
/// parameter <typeparamref name="T" />.
6363
/// </summary>
64-
[global::System.Diagnostics.DebuggerNonUserCode]
6564
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
6665
internal class TypedDefaultValueFactory<T>(T value) : IDefaultValueFactory
6766
{
@@ -77,7 +76,6 @@ public bool IsMatch(global::System.Type type)
7776
/// <summary>
7877
/// Provides default values for common types used in mocking scenarios.
7978
/// </summary>
80-
[global::System.Diagnostics.DebuggerNonUserCode]
8179
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
8280
private class DefaultValueGenerator : IDefaultValueGenerator
8381
{
@@ -123,7 +121,6 @@ protected virtual bool TryGenerate(global::System.Type type, object?[] parameter
123121
value = null;
124122
return false;
125123

126-
[global::System.Diagnostics.DebuggerNonUserCode]
127124
bool Predicate(global::Mockolate.Mock.IDefaultValueFactory f)
128125
=> f.IsMatch(type);
129126
}
@@ -141,7 +138,6 @@ private static bool HasCanceledCancellationToken(object?[] parameters, out globa
141138
return false;
142139
}
143140

144-
[global::System.Diagnostics.DebuggerNonUserCode]
145141
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
146142
private sealed class CancellableTaskFactory : IDefaultValueFactory
147143
{
@@ -161,7 +157,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
161157
}
162158
}
163159
#if NET8_0_OR_GREATER
164-
[global::System.Diagnostics.DebuggerNonUserCode]
165160
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
166161
private sealed class CancellableValueTaskFactory : IDefaultValueFactory
167162
{
@@ -187,7 +182,6 @@ public object Create(global::System.Type type, IDefaultValueGenerator defaultVal
187182
/// <summary>
188183
/// Extensions on <see cref="IDefaultValueGenerator">IDefaultValueGenerator</see>
189184
/// </summary>
190-
[global::System.Diagnostics.DebuggerNonUserCode]
191185
[global::System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage]
192186
internal static class DefaultValueGeneratorExtensions
193187
{

Tests/Mockolate.SourceGenerators.Tests/Snapshot/Expected/RefStructConsumer_CanBeCreated/RefStructMethodSetups.g.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ public interface IRefStructVoidMethodSetup<T1, T2, T3, T4, T5> : IMethodSetup
3333
/// Concrete ref-struct-compatible void setup for arity 5. See <see cref="global::Mockolate.Setup.RefStructVoidMethodSetup{T}">RefStructVoidMethodSetup&lt;T&gt;</see>.
3434
/// </summary>
3535
#if !DEBUG
36-
[global::System.Diagnostics.DebuggerNonUserCode]
3736
#endif
3837
public sealed class RefStructVoidMethodSetup<T1, T2, T3, T4, T5> : global::Mockolate.Setup.MethodSetup, global::Mockolate.Setup.IRefStructVoidMethodSetup<T1, T2, T3, T4, T5>
3938
where T1 : allows ref struct
@@ -147,7 +146,6 @@ public interface IRefStructIndexerGetterSetup<TValue, T1, T2, T3, T4, T5> : IMet
147146
/// Concrete ref-struct-compatible indexer getter setup for arity 5. See <see cref="global::Mockolate.Setup.RefStructIndexerGetterSetup{TValue, T}">RefStructIndexerGetterSetup&lt;TValue, T&gt;</see>.
148147
/// </summary>
149148
#if !DEBUG
150-
[global::System.Diagnostics.DebuggerNonUserCode]
151149
#endif
152150
public sealed class RefStructIndexerGetterSetup<TValue, T1, T2, T3, T4, T5> : global::Mockolate.Setup.MethodSetup, global::Mockolate.Setup.IRefStructIndexerGetterSetup<TValue, T1, T2, T3, T4, T5>
153151
where T1 : allows ref struct
@@ -373,7 +371,6 @@ public interface IRefStructIndexerSetterSetup<TValue, T1, T2, T3, T4, T5> : IMet
373371
/// Concrete ref-struct-compatible indexer setter setup for arity 5. See <see cref="global::Mockolate.Setup.RefStructIndexerSetterSetup{TValue, T}">RefStructIndexerSetterSetup&lt;TValue, T&gt;</see>.
374372
/// </summary>
375373
#if !DEBUG
376-
[global::System.Diagnostics.DebuggerNonUserCode]
377374
#endif
378375
public sealed class RefStructIndexerSetterSetup<TValue, T1, T2, T3, T4, T5> : global::Mockolate.Setup.MethodSetup, global::Mockolate.Setup.IRefStructIndexerSetterSetup<TValue, T1, T2, T3, T4, T5>
379376
where T1 : allows ref struct
@@ -493,7 +490,6 @@ public interface IRefStructIndexerSetup<TValue, T1, T2, T3, T4, T5> : IMethodSet
493490
/// Concrete ref-struct-compatible combined indexer setup for arity 5. See <see cref="global::Mockolate.Setup.RefStructIndexerSetup{TValue, T}">RefStructIndexerSetup&lt;TValue, T&gt;</see>.
494491
/// </summary>
495492
#if !DEBUG
496-
[global::System.Diagnostics.DebuggerNonUserCode]
497493
#endif
498494
public sealed class RefStructIndexerSetup<TValue, T1, T2, T3, T4, T5> : global::Mockolate.Setup.MethodSetup, global::Mockolate.Setup.IRefStructIndexerSetup<TValue, T1, T2, T3, T4, T5>
499495
where T1 : allows ref struct

0 commit comments

Comments
 (0)