diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index fe8de6f..b247c77 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -30,6 +30,8 @@ jobs:
5.0.x
6.0.x
7.0.x
+ 8.0.x
+ 9.0.x
include-prerelease: true
- name: Restore dependencies
run: dotnet restore
diff --git a/FastGenericNew.sln b/FastGenericNew.sln
index 95c847e..43c6dd1 100644
--- a/FastGenericNew.sln
+++ b/FastGenericNew.sln
@@ -14,14 +14,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Root", "Root", "{F142034C-8
Benchmark_ReferenceType.png = Benchmark_ReferenceType.png
Benchmark_ValueType.png = Benchmark_ValueType.png
FastGenericNew.Shared.props = FastGenericNew.Shared.props
+ .github\workflows\publish.yml = .github\workflows\publish.yml
README.md = README.md
+ .github\workflows\tests.yml = .github\workflows\tests.yml
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGenericNew.Tests", "src\FastGenericNew.Tests\FastGenericNew.Tests.csproj", "{7A750C15-4CF3-4F5B-BFA8-AFBB98827770}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGenericNew.Benchmarks", "src\FastGenericNew.Benchmarks\FastGenericNew.Benchmarks.csproj", "{24108B29-8FAD-4080-90B4-0A6A19CE06BE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FastGenericNew.SourceGenerator.InternalGenerator", "src\FastGenericNew.SourceGenerator.InternalGenerator\FastGenericNew.SourceGenerator.InternalGenerator.csproj", "{33032C07-28EF-4AD6-BE00-32303BB9DA7B}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FastGenericNew.SourceGenerator.InternalGenerator", "src\FastGenericNew.SourceGenerator.InternalGenerator\FastGenericNew.SourceGenerator.InternalGenerator.csproj", "{33032C07-28EF-4AD6-BE00-32303BB9DA7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
diff --git a/src/FastGenericNew.Benchmarks/FastGenericNew.Benchmarks.csproj b/src/FastGenericNew.Benchmarks/FastGenericNew.Benchmarks.csproj
index 03ea0d5..d5bd769 100644
--- a/src/FastGenericNew.Benchmarks/FastGenericNew.Benchmarks.csproj
+++ b/src/FastGenericNew.Benchmarks/FastGenericNew.Benchmarks.csproj
@@ -2,8 +2,8 @@
Exe
- net6.0;net8.0
- $(TargetFrameworks);net461;net48
+ net6.0;net8.0;net9.0
+ $(TargetFrameworks);net462;net481
enable
enable
10
@@ -25,6 +25,7 @@
+
diff --git a/src/FastGenericNew.Benchmarks/Program.cs b/src/FastGenericNew.Benchmarks/Program.cs
index 432e489..d8cc053 100644
--- a/src/FastGenericNew.Benchmarks/Program.cs
+++ b/src/FastGenericNew.Benchmarks/Program.cs
@@ -5,9 +5,8 @@
ManualConfig config = ManualConfig.Create(DefaultConfig.Instance);
config.AddJob(
- Job.Default.WithRuntime(ClrRuntime.Net461),
- Job.Default.WithRuntime(ClrRuntime.Net48),
- Job.Default.WithRuntime(CoreRuntime.Core31),
+ Job.Default.WithRuntime(ClrRuntime.Net462),
+ Job.Default.WithRuntime(ClrRuntime.Net481),
Job.Default.WithRuntime(CoreRuntime.Core60),
Job.Default.WithRuntime(CoreRuntime.Core80),
Job.Default.WithRuntime(CoreRuntime.Core90)
diff --git a/src/FastGenericNew.Shared.props b/src/FastGenericNew.Shared.props
index baf696d..9c74b00 100644
--- a/src/FastGenericNew.Shared.props
+++ b/src/FastGenericNew.Shared.props
@@ -1,7 +1,7 @@
- 3.2.0-preview1
- 3.2.0
+ 3.3.0
+ 3.3.0
@@ -32,7 +32,7 @@ C# 10 Parameterless struct constructors Support (Both invokes or not)
https://github.com/Nyrest/FastGenericNew
git
https://github.com/Nyrest/FastGenericNew
- Performance, Fast, Generic, New, Expression, Optimization, CreateInstance, Activator, $(PackageTagsPostfix)
+ Performance, Fast, Generic, New, Expression, Optimization, CreateInstance, Activator, DynamicMethod, $(PackageTagsPostfix)
README.md
Logo.png
true
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastCreateInstanceGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastCreateInstanceGenerator.cs
index 48315b3..c6d9f28 100644
--- a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastCreateInstanceGenerator.cs
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastCreateInstanceGenerator.cs
@@ -13,15 +13,14 @@ public override CodeGenerationResult Generate(in GeneratorOptions options)
builder.WriteFileHeader();
builder.StartNamespace();
builder.Indent(1);
- builder.AppendKeyword("public static partial class");
+ builder.AppendKeyword("static partial class");
builder.Append(ClassName);
builder.StartBlock(1);
-
builder.AppendLine($@"
///
/// Create an instance of
/// Returns () if is a (struct)
- /// This CAN call the Parameterless Constructor of the (struct)
+ /// This CAN call the Parameterless Constructor for (struct)
///
/// The type to create.
/// A new instance of
@@ -39,7 +38,7 @@ public static T CreateInstance<
return {options.GlobalNSDot()}{FastNewCoreGenerator.ClassName}.{FastNewCoreGenerator.CompiledDelegateName}();
#else
return typeof(T).IsValueType
- ? System.Activator.CreateInstance() // This will be optimized by JIT
+ ? System.Activator.CreateInstance() // Value Types will be optimized by JIT in CoreCLR
#if {ClrAllocatorGenerator.ppEnabled}
: ({options.GlobalNSDot()}{ClrAllocatorGenerator.ClassName}.IsSupported
@@ -54,7 +53,7 @@ public static T CreateInstance<
///
/// Create an instance of
/// Returns () if is a (struct)
- /// This WILL NOT call the Parameterless Constructor of the (struct)
+ /// This WILL NOT call the Parameterless Constructor for (struct)
///
/// The type to create.
/// A new instance of
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewDelegateGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewDelegateGenerator.cs
index cdcc900..cfc148b 100644
--- a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewDelegateGenerator.cs
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewDelegateGenerator.cs
@@ -17,7 +17,7 @@ public override CodeGenerationResult Generate(in GeneratorOptions options)
builder.WriteFileHeader();
builder.StartNamespace();
builder.Indent(1);
- builder.AppendKeyword("public static partial class");
+ builder.AppendKeyword("static partial class");
builder.Append(ClassName);
builder.StartBlock(1);
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewVisibilityGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewVisibilityGenerator.cs
new file mode 100644
index 0000000..98ed4dc
--- /dev/null
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastNewVisibilityGenerator.cs
@@ -0,0 +1,30 @@
+namespace FastGenericNew.SourceGenerator.CodeGenerators;
+
+public class FastNewVisibilityGenerator : CodeGenerator
+{
+ public override string Filename => "FastNewVisibility.g.cs";
+
+ internal const string ClassName = "FastNew";
+
+ public override CodeGenerationResult Generate(in GeneratorOptions options)
+ {
+ CodeBuilder builder = new(1024, in options);
+ builder.WriteFileHeader();
+ builder.StartNamespace();
+ builder.Indent(1);
+
+ builder.AppendKeyword(options.PublicFastNew ? "public" : "internal");
+
+ builder.AppendKeyword("static partial class");
+ builder.Append(ClassName);
+ builder.StartBlock(1);
+ builder.EndBlock(1);
+ builder.EndNamespace();
+
+ return builder.BuildAndDispose(this);
+ }
+
+ public override bool ShouldUpdate(in GeneratorOptions oldValue, in GeneratorOptions newValue) =>
+ base.ShouldUpdate(oldValue, newValue)
+ || oldValue.PublicFastNew != newValue.PublicFastNew;
+}
\ No newline at end of file
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastTryCreateInstanceGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastTryCreateInstanceGenerator.cs
index a6e50ff..2f710e5 100644
--- a/src/FastGenericNew.SourceGenerator/CodeGenerators/FastTryCreateInstanceGenerator.cs
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/FastTryCreateInstanceGenerator.cs
@@ -13,7 +13,7 @@ public override CodeGenerationResult Generate(in GeneratorOptions options)
builder.WriteFileHeader();
builder.StartNamespace();
builder.Indent(1);
- builder.AppendKeyword("public static partial class");
+ builder.AppendKeyword("static partial class");
builder.Append(ClassName);
builder.StartBlock(1);
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/ThrowHelperGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/ThrowHelperGenerator.cs
index db23eed..c96cf4d 100644
--- a/src/FastGenericNew.SourceGenerator/CodeGenerators/ThrowHelperGenerator.cs
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/ThrowHelperGenerator.cs
@@ -4,7 +4,7 @@ public class ThrowHelperGenerator : CodeGenerator
{
public override string Filename => "ThrowHelper.g.cs";
- internal const string ClassName = "ThrowHelper";
+ internal const string ClassName = "FastNewThrowHelper";
internal const string SmartThrowName = "SmartThrowImpl";
@@ -15,7 +15,7 @@ public override CodeGenerationResult Generate(in GeneratorOptions options)
builder.StartNamespace();
builder.AppendLine(@$"
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
- internal static partial class ThrowHelper
+ internal static partial class {ClassName}
{{
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
#if NET5_0_OR_GREATER
@@ -23,7 +23,7 @@ internal static partial class ThrowHelper
#endif
");
builder.AppendLine(@$"
- public static global::System.Reflection.MethodInfo GetSmartThrow() => typeof({options.GlobalNSDot()}ThrowHelper).GetMethod(""SmartThrowImpl"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)!.MakeGenericMethod(typeof(T));
+ public static global::System.Reflection.MethodInfo GetSmartThrow() => typeof({options.GlobalNSDot()}{ClassName}).GetMethod(""SmartThrowImpl"", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)!.MakeGenericMethod(typeof(T));
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public static T SmartThrowImpl()
diff --git a/src/FastGenericNew.SourceGenerator/CodeGenerators/TypeNewGenerator.cs b/src/FastGenericNew.SourceGenerator/CodeGenerators/TypeNewGenerator.cs
index ed68e6c..42174c0 100644
--- a/src/FastGenericNew.SourceGenerator/CodeGenerators/TypeNewGenerator.cs
+++ b/src/FastGenericNew.SourceGenerator/CodeGenerators/TypeNewGenerator.cs
@@ -12,7 +12,7 @@ public override CodeGenerationResult Generate(in GeneratorOptions options)
builder.WriteFileHeader();
builder.StartNamespace();
- builder.AppendKeyword("public static partial class");
+ builder.AppendKeyword("static partial class");
builder.Append(ClassName);
builder.StartBlock(1);
diff --git a/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.csproj b/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.csproj
index 1b2d805..d4b22c0 100644
--- a/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.csproj
+++ b/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.csproj
@@ -1,9 +1,9 @@
-
+
netstandard2.0
- preview
+ 11.0
enable
enable
true
diff --git a/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.props b/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.props
index 68acade..6b9db9c 100644
--- a/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.props
+++ b/src/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.props
@@ -16,5 +16,6 @@
+
\ No newline at end of file
diff --git a/src/FastGenericNew.SourceGenerator/GeneratorOptions.cs b/src/FastGenericNew.SourceGenerator/GeneratorOptions.cs
index 5b48d5d..5435cfc 100644
--- a/src/FastGenericNew.SourceGenerator/GeneratorOptions.cs
+++ b/src/FastGenericNew.SourceGenerator/GeneratorOptions.cs
@@ -29,7 +29,7 @@ public readonly partial record struct GeneratorOptions
[GeneratorOption(true)]
public bool AlertGeneratedFile { get; }
- [GeneratorOption(false)]
+ [GeneratorOption(true)]
public bool DisableGeneratorCache { get; }
[GeneratorOption(false)]
@@ -44,6 +44,9 @@ public readonly partial record struct GeneratorOptions
[GeneratorOption(false, PresentPreProcessor = true)]
public bool AllowUnsafeImplementation { get; }
+ [GeneratorOption(false)]
+ public bool PublicFastNew { get; }
+
// ctor will be generated by InternalGenerator
//public GeneratorOptions(AnalyzerConfigOptionsProvider? provider)
diff --git a/src/FastGenericNew.SourceGenerator/_generated/FastGenericNew.SourceGenerator.InternalGenerator/FastGenericNew.SourceGenerator.InternalGenerator.Generator/GeneratorOptions.ctor.g.cs b/src/FastGenericNew.SourceGenerator/_generated/FastGenericNew.SourceGenerator.InternalGenerator/FastGenericNew.SourceGenerator.InternalGenerator.Generator/GeneratorOptions.ctor.g.cs
index 6c906ae..bd9dec8 100644
--- a/src/FastGenericNew.SourceGenerator/_generated/FastGenericNew.SourceGenerator.InternalGenerator/FastGenericNew.SourceGenerator.InternalGenerator.Generator/GeneratorOptions.ctor.g.cs
+++ b/src/FastGenericNew.SourceGenerator/_generated/FastGenericNew.SourceGenerator.InternalGenerator/FastGenericNew.SourceGenerator.InternalGenerator.Generator/GeneratorOptions.ctor.g.cs
@@ -16,10 +16,11 @@ public GeneratorOptions(AnalyzerConfigOptionsProvider? provider)
Namespace = options.GetOrDefault(nameof(Namespace), "FastGenericNew");
ForceFastNewDelegate = options.GetOrDefault(nameof(ForceFastNewDelegate), false);
AlertGeneratedFile = options.GetOrDefault(nameof(AlertGeneratedFile), true);
- DisableGeneratorCache = options.GetOrDefault(nameof(DisableGeneratorCache), false);
+ DisableGeneratorCache = options.GetOrDefault(nameof(DisableGeneratorCache), true);
PrettyOutput = options.GetOrDefault(nameof(PrettyOutput), false);
MultiThreadedGeneration = options.GetOrDefault(nameof(MultiThreadedGeneration), true);
OutputGenerationInfo = options.GetOrDefault(nameof(OutputGenerationInfo), false);
AllowUnsafeImplementation = options.GetOrDefault(nameof(AllowUnsafeImplementation), false);
+ PublicFastNew = options.GetOrDefault(nameof(PublicFastNew), false);
}
}
\ No newline at end of file
diff --git a/src/FastGenericNew.Tests/FastGenericNew.Tests.csproj b/src/FastGenericNew.Tests/FastGenericNew.Tests.csproj
index c4867f1..1ffcb1a 100644
--- a/src/FastGenericNew.Tests/FastGenericNew.Tests.csproj
+++ b/src/FastGenericNew.Tests/FastGenericNew.Tests.csproj
@@ -1,7 +1,7 @@
-
+
- net6.0;net8.0
+ net6.0;net8.0;net9.0
$(TargetFrameworks);net48
10
enable
diff --git a/src/FastGenericNew.Tests/TestData.cs b/src/FastGenericNew.Tests/TestData.cs
index 3196e31..10fc9ce 100644
--- a/src/FastGenericNew.Tests/TestData.cs
+++ b/src/FastGenericNew.Tests/TestData.cs
@@ -1,6 +1,9 @@
using System;
using System.Collections.Generic;
+using System.Data.SqlTypes;
+using System.Diagnostics.CodeAnalysis;
using System.Linq;
+using System.Numerics;
using System.Text;
using System.Threading.Tasks;
@@ -35,6 +38,11 @@ public static class TestData
typeof(nint),
typeof(nuint),
+#if NET8_0_OR_GREATER
+ typeof(Int128),
+ typeof(UInt128),
+#endif
+
#endregion
typeof(DateTime),
diff --git a/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ExceptionsTest.cs b/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ExceptionsTest.cs
index 71ee87b..f85ca51 100644
--- a/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ExceptionsTest.cs
+++ b/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ExceptionsTest.cs
@@ -6,12 +6,13 @@ public class ExceptionsTest
[Test()]
public void ExceptionInterface()
{
+ if (!ClrAllocator.IsSupported) Assert.Ignore("Unsupported");
try
{
ClrAllocator.CreateInstance();
Assert.Fail("The expected exception is not thrown.");
}
- catch (MissingMethodException e)
+ catch (Exception e)
{
Assert.IsTrue(e.Message.StartsWith("Cannot create an instance of an interface"));
}
@@ -20,6 +21,7 @@ public void ExceptionInterface()
[Test()]
public void ExceptionAbstract()
{
+ if (!ClrAllocator.IsSupported) Assert.Ignore("Unsupported");
try
{
ClrAllocator.CreateInstance();
@@ -34,6 +36,7 @@ public void ExceptionAbstract()
[Test()]
public void ExceptionPLString()
{
+ if (!ClrAllocator.IsSupported) Assert.Ignore("Unsupported");
try
{
ClrAllocator.CreateInstance();
@@ -49,6 +52,7 @@ public void ExceptionPLString()
[Test()]
public void ExceptionNotFoundNoParameter()
{
+ if (!ClrAllocator.IsSupported) Assert.Ignore("Unsupported");
try
{
ClrAllocator.CreateInstance();
diff --git a/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ReferenceTypes.cs b/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ReferenceTypes.cs
index e6ad16f..aeb2180 100644
--- a/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ReferenceTypes.cs
+++ b/src/FastGenericNew.Tests/Units/ClrAllocatorTests/ReferenceTypes.cs
@@ -8,6 +8,7 @@ public class ReferenceTypes
[Test]
public void Object()
{
+ if (!ClrAllocator
@@ -26,12 +27,12 @@
true
true
true
+ true
FastGenericNew
- Pre-Compiled FastGenericNew
Generated
True
README.md
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ClrAllocator.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ClrAllocator.g.cs
index b72a29c..90e5298 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ClrAllocator.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ClrAllocator.g.cs
@@ -54,7 +54,7 @@ public static void CtorNoopStub(object _) { }
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public static object ThrowNotSupported(void* _) => throw new global::System.NotSupportedException();
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
- public static object SmartThrow(void* _) => (object)global::@FastGenericNew.ThrowHelper.SmartThrowImpl()!;
+ public static object SmartThrow(void* _) => (object)global::@FastGenericNew.FastNewThrowHelper.SmartThrowImpl()!;
}
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.CreateInstance.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.CreateInstance.g.cs
index c4c3076..64fadbc 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.CreateInstance.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.CreateInstance.g.cs
@@ -15,12 +15,12 @@
namespace @FastGenericNew
{
- public static partial class FastNew {
+ static partial class FastNew {
///
/// Create an instance of
/// Returns () if is a (struct)
- /// This CAN call the Parameterless Constructor of the (struct)
+ /// This CAN call the Parameterless Constructor for (struct)
///
/// The type to create.
/// A new instance of
@@ -38,7 +38,7 @@ public static T CreateInstance<
return global::@FastGenericNew.FastNew.CompiledDelegate();
#else
return typeof(T).IsValueType
- ? System.Activator.CreateInstance() // This will be optimized by JIT
+ ? System.Activator.CreateInstance() // Value Types will be optimized by JIT in CoreCLR
#if NET6_0_OR_GREATER && FastNewPX_AllowUnsafeImplementation
: (global::@FastGenericNew.ClrAllocator.IsSupported
@@ -53,7 +53,7 @@ public static T CreateInstance<
///
/// Create an instance of
/// Returns () if is a (struct)
- /// This WILL NOT call the Parameterless Constructor of the (struct)
+ /// This WILL NOT call the Parameterless Constructor for (struct)
///
/// The type to create.
/// A new instance of
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.TryCreateInstance.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.TryCreateInstance.g.cs
index 430a2c3..76a9f53 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.TryCreateInstance.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew.TryCreateInstance.g.cs
@@ -15,7 +15,7 @@
namespace @FastGenericNew
{
- public static partial class FastNew {
+ static partial class FastNew {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static bool TryCreateInstance<
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewDelegate.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewDelegate.g.cs
index 7e52d00..c477237 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewDelegate.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewDelegate.g.cs
@@ -15,7 +15,7 @@
namespace @FastGenericNew
{
- public static partial class FastNew {
+ static partial class FastNew {
public delegate T FastNewDelegate<
#if NET5_0_OR_GREATER
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)]
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewVisibility.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewVisibility.g.cs
new file mode 100644
index 0000000..7e3158a
--- /dev/null
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNewVisibility.g.cs
@@ -0,0 +1,20 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by FastGenericNew.SourceGenerator
+// Please do not modify this file directly
+//
+//------------------------------------------------------------------------------
+#nullable enable
+using System;
+using System.Collections.Generic;
+using System.Runtime.CompilerServices;
+using System.Diagnostics.CodeAnalysis;
+using System.Reflection;
+using System.Reflection.Emit;
+using System.ComponentModel;
+
+namespace @FastGenericNew
+{
+ public static partial class FastNew {
+ }
+}
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew{T}.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew{T}.g.cs
index 319d3dc..707c4c8 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew{T}.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/FastNew{T}.g.cs
@@ -39,7 +39,7 @@ static partial class FastNew<
: (global::System.Linq.Expressions.Expression)global::System.Linq.Expressions.Expression.New(typeof(T)))
: ((global::@FastGenericNew.FastNew.CachedConstructor != null && !typeof(T).IsAbstract)
? (global::System.Linq.Expressions.Expression)global::System.Linq.Expressions.Expression.New(global::@FastGenericNew.FastNew.CachedConstructor)
- : (global::System.Linq.Expressions.Expression)global::System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow()))
+ : (global::System.Linq.Expressions.Expression)global::System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow()))
, Array.Empty()).Compile();
public static readonly bool IsValid = typeof(T).IsValueType || (global::@FastGenericNew.FastNew.CachedConstructor != null && !typeof(T).IsAbstract);
@@ -84,7 +84,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -116,7 +116,7 @@ static FastNew()
var p0 = System.Linq.Expressions.Expression.Parameter(typeof(TArg0));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0) }, restrictedSkipVisibility: true);
@@ -128,7 +128,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -162,7 +162,7 @@ static FastNew()
var p1 = System.Linq.Expressions.Expression.Parameter(typeof(TArg1));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1) }, restrictedSkipVisibility: true);
@@ -175,7 +175,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -211,7 +211,7 @@ static FastNew()
var p2 = System.Linq.Expressions.Expression.Parameter(typeof(TArg2));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2) }, restrictedSkipVisibility: true);
@@ -225,7 +225,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -263,7 +263,7 @@ static FastNew()
var p3 = System.Linq.Expressions.Expression.Parameter(typeof(TArg3));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3) }, restrictedSkipVisibility: true);
@@ -278,7 +278,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -318,7 +318,7 @@ static FastNew()
var p4 = System.Linq.Expressions.Expression.Parameter(typeof(TArg4));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4) }, restrictedSkipVisibility: true);
@@ -334,7 +334,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -376,7 +376,7 @@ static FastNew()
var p5 = System.Linq.Expressions.Expression.Parameter(typeof(TArg5));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5) }, restrictedSkipVisibility: true);
@@ -393,7 +393,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -437,7 +437,7 @@ static FastNew()
var p6 = System.Linq.Expressions.Expression.Parameter(typeof(TArg6));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6) }, restrictedSkipVisibility: true);
@@ -455,7 +455,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -501,7 +501,7 @@ static FastNew()
var p7 = System.Linq.Expressions.Expression.Parameter(typeof(TArg7));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7) }, restrictedSkipVisibility: true);
@@ -520,7 +520,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -568,7 +568,7 @@ static FastNew()
var p8 = System.Linq.Expressions.Expression.Parameter(typeof(TArg8));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8) }, restrictedSkipVisibility: true);
@@ -588,7 +588,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -638,7 +638,7 @@ static FastNew()
var p9 = System.Linq.Expressions.Expression.Parameter(typeof(TArg9));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9) }, restrictedSkipVisibility: true);
@@ -659,7 +659,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -711,7 +711,7 @@ static FastNew()
var p10 = System.Linq.Expressions.Expression.Parameter(typeof(TArg10));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10) }, restrictedSkipVisibility: true);
@@ -733,7 +733,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -787,7 +787,7 @@ static FastNew()
var p11 = System.Linq.Expressions.Expression.Parameter(typeof(TArg11));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11) }, restrictedSkipVisibility: true);
@@ -810,7 +810,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -866,7 +866,7 @@ static FastNew()
var p12 = System.Linq.Expressions.Expression.Parameter(typeof(TArg12));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12) }, restrictedSkipVisibility: true);
@@ -890,7 +890,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -948,7 +948,7 @@ static FastNew()
var p13 = System.Linq.Expressions.Expression.Parameter(typeof(TArg13));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12), typeof(TArg13) }, restrictedSkipVisibility: true);
@@ -973,7 +973,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -1033,7 +1033,7 @@ static FastNew()
var p14 = System.Linq.Expressions.Expression.Parameter(typeof(TArg14));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12), typeof(TArg13), typeof(TArg14) }, restrictedSkipVisibility: true);
@@ -1059,7 +1059,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -1121,7 +1121,7 @@ static FastNew()
var p15 = System.Linq.Expressions.Expression.Parameter(typeof(TArg15));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12), typeof(TArg13), typeof(TArg14), typeof(TArg15) }, restrictedSkipVisibility: true);
@@ -1148,7 +1148,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (Func)dm.CreateDelegate(typeof(Func), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -1212,7 +1212,7 @@ static FastNew()
var p16 = System.Linq.Expressions.Expression.Parameter(typeof(TArg16));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12), typeof(TArg13), typeof(TArg14), typeof(TArg15), typeof(TArg16) }, restrictedSkipVisibility: true);
@@ -1240,7 +1240,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (global::@FastGenericNew.FastNew.FastNewDelegate)dm.CreateDelegate(typeof(global::@FastGenericNew.FastNew.FastNewDelegate), global::@FastGenericNew._FastNewDynMetClosure.Instance);
@@ -1306,7 +1306,7 @@ static FastNew()
var p17 = System.Linq.Expressions.Expression.Parameter(typeof(TArg17));
CompiledDelegate = (System.Linq.Expressions.Expression.Lambda>(IsValid
? (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.New(CachedConstructor!, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17)
- : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.ThrowHelper.GetSmartThrow())
+ : (System.Linq.Expressions.Expression)System.Linq.Expressions.Expression.Call(global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow())
, new System.Linq.Expressions.ParameterExpression[] { p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17 })).Compile();
#else
var dm = new DynamicMethod("", typeof(T), new Type[] { typeof(global::@FastGenericNew._FastNewDynMetClosure), typeof(TArg0), typeof(TArg1), typeof(TArg2), typeof(TArg3), typeof(TArg4), typeof(TArg5), typeof(TArg6), typeof(TArg7), typeof(TArg8), typeof(TArg9), typeof(TArg10), typeof(TArg11), typeof(TArg12), typeof(TArg13), typeof(TArg14), typeof(TArg15), typeof(TArg16), typeof(TArg17) }, restrictedSkipVisibility: true);
@@ -1335,7 +1335,7 @@ static FastNew()
}
else
{
- il.Emit(OpCodes.Call, global::@FastGenericNew.ThrowHelper.GetSmartThrow());
+ il.Emit(OpCodes.Call, global::@FastGenericNew.FastNewThrowHelper.GetSmartThrow());
}
il.Emit(OpCodes.Ret);
CompiledDelegate = (global::@FastGenericNew.FastNew.FastNewDelegate)dm.CreateDelegate(typeof(global::@FastGenericNew.FastNew.FastNewDelegate), global::@FastGenericNew._FastNewDynMetClosure.Instance);
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ThrowHelper.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ThrowHelper.g.cs
index c0a4b1e..ffba759 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ThrowHelper.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/ThrowHelper.g.cs
@@ -4,7 +4,6 @@
// Please do not modify this file directly
//
//------------------------------------------------------------------------------
-#define FastNewPX_AllowUnsafeImplementation
#nullable enable
using System;
using System.Collections.Generic;
@@ -18,15 +17,15 @@ namespace @FastGenericNew
{
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
- internal static partial class ThrowHelper
+ internal static partial class FastNewThrowHelper
{
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
#if NET5_0_OR_GREATER
- [global::System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute("SmartThrowImpl``1()", typeof(global::@FastGenericNew.ThrowHelper))]
+ [global::System.Diagnostics.CodeAnalysis.DynamicDependencyAttribute("SmartThrowImpl``1()", typeof(global::@FastGenericNew.FastNewThrowHelper))]
#endif
- public static global::System.Reflection.MethodInfo GetSmartThrow() => typeof(global::@FastGenericNew.ThrowHelper).GetMethod("SmartThrowImpl", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)!.MakeGenericMethod(typeof(T));
+ public static global::System.Reflection.MethodInfo GetSmartThrow() => typeof(global::@FastGenericNew.FastNewThrowHelper).GetMethod("SmartThrowImpl", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static)!.MakeGenericMethod(typeof(T));
[global::System.Runtime.CompilerServices.MethodImpl(global::System.Runtime.CompilerServices.MethodImplOptions.NoInlining | global::System.Runtime.CompilerServices.MethodImplOptions.NoOptimization)]
public static T SmartThrowImpl()
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/TypeNew.CreateInstance.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/TypeNew.CreateInstance.g.cs
index ea1b6ad..0379d63 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/TypeNew.CreateInstance.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/TypeNew.CreateInstance.g.cs
@@ -15,7 +15,7 @@
namespace @FastGenericNew
{
-public static partial class FastNew {
+static partial class FastNew {
public static Func GetCreateInstance<
#if NET5_0_OR_GREATER
[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor | DynamicallyAccessedMemberTypes.NonPublicConstructors)]
diff --git a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/_GenerationInfo.g.cs b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/_GenerationInfo.g.cs
index 86d418b..add7e3e 100644
--- a/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/_GenerationInfo.g.cs
+++ b/src/FastGenericNew/_generated/FastGenericNew.SourceGenerator/FastGenericNew.SourceGenerator.Generator/_GenerationInfo.g.cs
@@ -2,7 +2,7 @@
Environment:
- Version = 3.2.0.0
+ Version = 3.3.0.0
KeyValues:
@@ -16,11 +16,12 @@
Namespace = FastGenericNew
ForceFastNewDelegate = False
AlertGeneratedFile = True
- DisableGeneratorCache = False
+ DisableGeneratorCache = True
PrettyOutput = True (default: False)
MultiThreadedGeneration = True
OutputGenerationInfo = True (default: False)
AllowUnsafeImplementation = False
+ PublicFastNew = True (default: False)
MSBuild Properties:
@@ -34,10 +35,11 @@
FastGenericNew
False
True
- False
+ True
True
True
True
False
+ True
*/
\ No newline at end of file