From e6bb1cb1aa9c9b20d94bb4ffe739e1bc8a67d866 Mon Sep 17 00:00:00 2001
From: Timovzl <655426+Timovzl@users.noreply.github.com>
Date: Sun, 12 Jan 2025 13:59:33 +0100
Subject: [PATCH 1/2] 3.0.3: Upgraded package versions.
---
.../DomainModeling.Generator.csproj | 4 +-
.../TypeSymbolExtensions.cs | 9 +--
.../TypeSyntaxExtensions.cs | 58 +++++++++----------
.../DomainModeling.Tests.csproj | 10 ++--
DomainModeling/DomainModeling.csproj | 6 +-
5 files changed, 44 insertions(+), 43 deletions(-)
diff --git a/DomainModeling.Generator/DomainModeling.Generator.csproj b/DomainModeling.Generator/DomainModeling.Generator.csproj
index 612a86e..8c90020 100644
--- a/DomainModeling.Generator/DomainModeling.Generator.csproj
+++ b/DomainModeling.Generator/DomainModeling.Generator.csproj
@@ -22,11 +22,11 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
-
+
diff --git a/DomainModeling.Generator/TypeSymbolExtensions.cs b/DomainModeling.Generator/TypeSymbolExtensions.cs
index c0784df..ab255e8 100644
--- a/DomainModeling.Generator/TypeSymbolExtensions.cs
+++ b/DomainModeling.Generator/TypeSymbolExtensions.cs
@@ -10,10 +10,7 @@ internal static class TypeSymbolExtensions
{
private const string ComparisonsNamespace = "Architect.DomainModeling.Comparisons";
- private static IReadOnlyCollection ConversionOperatorNames { get; } = new[]
- {
- "op_Implicit", "op_Explicit",
- };
+ private static IReadOnlyCollection ConversionOperatorNames { get; } = ["op_Implicit", "op_Explicit",];
///
/// Returns whether the is of type .
@@ -391,7 +388,7 @@ public static ITypeSymbol ExtractNonArrayElementType(this IArrayTypeSymbol array
///
/// Returns whether the or a base type has an override of more specific than 's implementation.
///
- public static bool HasEqualsOverride(this ITypeSymbol typeSymbol, bool falseForStructs = false)
+ public static bool HasEqualsOverride(this ITypeSymbol typeSymbol)
{
// Technically this could match an overridden "new" Equals defined by a base type, but that is a nonsense scenario
var result = typeSymbol.GetMembers(nameof(Object.Equals)).OfType().Any(method => method.IsOverride && !method.IsStatic &&
@@ -623,7 +620,7 @@ public static string CreateComparisonExpression(this ITypeSymbol typeSymbol, str
/// The name of the member/parameter/... to instantiate an instance for. May be used as the dummy string value if applicable.
public static string CreateDummyInstantiationExpression(this ITypeSymbol typeSymbol, string symbolName)
{
- return typeSymbol.CreateDummyInstantiationExpression(symbolName, Array.Empty(), _ => null!);
+ return typeSymbol.CreateDummyInstantiationExpression(symbolName, [], _ => null!);
}
///
diff --git a/DomainModeling.Generator/TypeSyntaxExtensions.cs b/DomainModeling.Generator/TypeSyntaxExtensions.cs
index b7a5c72..e284b81 100644
--- a/DomainModeling.Generator/TypeSyntaxExtensions.cs
+++ b/DomainModeling.Generator/TypeSyntaxExtensions.cs
@@ -1,50 +1,50 @@
-using Microsoft.CodeAnalysis.CSharp.Syntax;
-
-namespace Architect.DomainModeling.Generator;
-
-///
-/// Provides extensions on .
-///
-internal static class TypeSyntaxExtensions
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+
+namespace Architect.DomainModeling.Generator;
+
+///
+/// Provides extensions on .
+///
+internal static class TypeSyntaxExtensions
{
///
/// Returns whether the given has the given arity (type parameter count) and (unqualified) name.
///
/// Pass null to accept any arity.
- public static bool HasArityAndName(this TypeSyntax typeSyntax, int? arity, string unqualifiedName)
+ public static bool HasArityAndName(this TypeSyntax typeSyntax, int? arity, string unqualifiedName)
{
return TryGetArityAndUnqualifiedName(typeSyntax, out var actualArity, out var actualUnqualifiedName) &&
(arity is null || actualArity == arity) &&
- actualUnqualifiedName == unqualifiedName;
+ actualUnqualifiedName == unqualifiedName;
}
///
/// Returns whether the given has the given arity (type parameter count) and (unqualified) name suffix.
///
/// Pass null to accept any arity.
- public static bool HasArityAndNameSuffix(this TypeSyntax typeSyntax, int? arity, string unqualifiedName)
+ public static bool HasArityAndNameSuffix(this TypeSyntax typeSyntax, int? arity, string unqualifiedName)
{
return TryGetArityAndUnqualifiedName(typeSyntax, out var actualArity, out var actualUnqualifiedName) &&
(arity is null || actualArity == arity) &&
- actualUnqualifiedName.EndsWith(unqualifiedName);
+ actualUnqualifiedName.EndsWith(unqualifiedName);
}
private static bool TryGetArityAndUnqualifiedName(TypeSyntax typeSyntax, out int arity, out string unqualifiedName)
- {
- if (typeSyntax is SimpleNameSyntax simpleName)
- {
- arity = simpleName.Arity;
- unqualifiedName = simpleName.Identifier.ValueText;
- }
- else if (typeSyntax is QualifiedNameSyntax qualifiedName)
- {
- arity = qualifiedName.Arity;
- unqualifiedName = qualifiedName.Right.Identifier.ValueText;
- }
- else if (typeSyntax is AliasQualifiedNameSyntax aliasQualifiedName)
- {
- arity = aliasQualifiedName.Arity;
- unqualifiedName = aliasQualifiedName.Name.Identifier.ValueText;
+ {
+ if (typeSyntax is SimpleNameSyntax simpleName)
+ {
+ arity = simpleName.Arity;
+ unqualifiedName = simpleName.Identifier.ValueText;
+ }
+ else if (typeSyntax is QualifiedNameSyntax qualifiedName)
+ {
+ arity = qualifiedName.Arity;
+ unqualifiedName = qualifiedName.Right.Identifier.ValueText;
+ }
+ else if (typeSyntax is AliasQualifiedNameSyntax aliasQualifiedName)
+ {
+ arity = aliasQualifiedName.Arity;
+ unqualifiedName = aliasQualifiedName.Name.Identifier.ValueText;
}
else
{
@@ -68,5 +68,5 @@ private static bool TryGetArityAndUnqualifiedName(TypeSyntax typeSyntax, out int
AliasQualifiedNameSyntax aliasQualifiedName => aliasQualifiedName.Name.Identifier.ValueText,
_ => null,
};
- }
-}
+ }
+}
diff --git a/DomainModeling.Tests/DomainModeling.Tests.csproj b/DomainModeling.Tests/DomainModeling.Tests.csproj
index fc9e542..12ff044 100644
--- a/DomainModeling.Tests/DomainModeling.Tests.csproj
+++ b/DomainModeling.Tests/DomainModeling.Tests.csproj
@@ -22,11 +22,11 @@
-
-
-
-
-
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/DomainModeling/DomainModeling.csproj b/DomainModeling/DomainModeling.csproj
index 76bf847..ebf8110 100644
--- a/DomainModeling/DomainModeling.csproj
+++ b/DomainModeling/DomainModeling.csproj
@@ -17,7 +17,7 @@
- 3.0.2
+ 3.0.3
A complete Domain-Driven Design (DDD) toolset for implementing domain models, including base types and source generators.
@@ -25,6 +25,10 @@ https://github.com/TheArchitectDev/Architect.DomainModeling
Release notes:
+3.0.3:
+
+- Enhancement: Upgraded package versions.
+
3.0.2:
- Bug fix.
From bd0d6c99299eed01668dc678423e7a3c3304c986 Mon Sep 17 00:00:00 2001
From: Timovzl <655426+Timovzl@users.noreply.github.com>
Date: Sun, 12 Jan 2025 15:00:07 +0100
Subject: [PATCH 2/2] Minor performance enhancement:
IDomainEventConfigurator.Args members are now readonly, to avoid defensive
copies.
---
DomainModeling/Configuration/IDomainEventConfigurator.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/DomainModeling/Configuration/IDomainEventConfigurator.cs b/DomainModeling/Configuration/IDomainEventConfigurator.cs
index 3a64771..a54a783 100644
--- a/DomainModeling/Configuration/IDomainEventConfigurator.cs
+++ b/DomainModeling/Configuration/IDomainEventConfigurator.cs
@@ -18,6 +18,6 @@ void ConfigureDomainEvent<
public readonly struct Args
{
- public bool HasDefaultConstructor { get; init; }
+ public readonly bool HasDefaultConstructor { get; init; }
}
}