Skip to content

Commit 21275ad

Browse files
committed
Compute TypeMinimallyQualified lazily
1 parent 228fd83 commit 21275ad

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

src/Thinktecture.Runtime.Extensions.SourceGenerator/CodeAnalysis/SmartEnums/EnumSourceGeneratorState.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ public sealed class EnumSourceGeneratorState :
1414
public string? Namespace { get; }
1515
public string TypeFullyQualified { get; }
1616
public string TypeFullyQualifiedNullAnnotated { get; }
17-
public string TypeMinimallyQualified { get; }
17+
18+
private string? _typeMinimallyQualified;
19+
public string TypeMinimallyQualified => _typeMinimallyQualified ??= _enumType.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
1820

1921
public IMemberState KeyProperty { get; }
2022

@@ -26,7 +28,7 @@ public sealed class EnumSourceGeneratorState :
2628
public bool HasKeyComparerImplementation { get; }
2729
public bool IsReferenceType { get; }
2830
public bool IsAbstract { get; }
29-
public string Name { get; }
31+
public string Name => _enumType.Name;
3032
public EnumSettings Settings { get; }
3133

3234
public IReadOnlyList<string> ItemNames { get; }
@@ -49,8 +51,6 @@ public EnumSourceGeneratorState(
4951
Namespace = type.ContainingNamespace?.IsGlobalNamespace == true ? null : type.ContainingNamespace?.ToString();
5052
TypeFullyQualified = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
5153
TypeFullyQualifiedNullAnnotated = type.IsReferenceType ? $"{TypeFullyQualified}?" : TypeFullyQualified;
52-
TypeMinimallyQualified = type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
53-
Name = type.Name;
5454

5555
IsReferenceType = type.IsReferenceType;
5656
IsAbstract = type.IsAbstract;

src/Thinktecture.Runtime.Extensions.SourceGenerator/CodeAnalysis/TypedMemberState.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ public class TypedMemberState : IEquatable<TypedMemberState>, ITypedMemberState
1515
public string TypeFullyQualifiedNullable { get; }
1616
public string TypeFullyQualifiedNullAnnotated => _type.IsReferenceType ? TypeFullyQualifiedNullable : TypeFullyQualified;
1717
public string TypeFullyQualifiedWithNullability => _type is { IsReferenceType: true, NullableAnnotation: NullableAnnotation.Annotated } ? TypeFullyQualifiedNullAnnotated : TypeFullyQualified;
18-
public string TypeMinimallyQualified { get; }
18+
19+
private string? _typeMinimallyQualified;
20+
public string TypeMinimallyQualified => _typeMinimallyQualified ??= _type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
1921

2022
public NullableAnnotation NullableAnnotation => _type.NullableAnnotation;
2123
public SpecialType SpecialType => _type.SpecialType;
@@ -37,7 +39,6 @@ private TypedMemberState(ITypeSymbol type)
3739

3840
TypeFullyQualified = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
3941
TypeFullyQualifiedNullable = $"{TypeFullyQualified}?";
40-
TypeMinimallyQualified = type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
4142

4243
foreach (var @interface in type.AllInterfaces)
4344
{

src/Thinktecture.Runtime.Extensions.SourceGenerator/CodeAnalysis/ValueObjects/ValueObjectSourceGeneratorState.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ public sealed class ValueObjectSourceGeneratorState :
1313
public string TypeFullyQualified { get; }
1414
public string TypeFullyQualifiedNullable { get; }
1515
public string TypeFullyQualifiedNullAnnotated { get; }
16-
public string TypeMinimallyQualified { get; }
16+
17+
private string? _typeMinimallyQualified;
18+
public string TypeMinimallyQualified => _typeMinimallyQualified ??= _type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
1719

1820
public string? Namespace { get; }
1921
public string Name => _type.Name;
@@ -45,7 +47,6 @@ public ValueObjectSourceGeneratorState(
4547
TypeFullyQualified = type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat);
4648
TypeFullyQualifiedNullable = $"{TypeFullyQualified}?";
4749
TypeFullyQualifiedNullAnnotated = type.IsReferenceType ? TypeFullyQualifiedNullable : TypeFullyQualified;
48-
TypeMinimallyQualified = type.ToDisplayString(SymbolDisplayFormat.MinimallyQualifiedFormat);
4950

5051
AssignableInstanceFieldsAndProperties = _type.GetAssignableFieldsAndPropertiesAndCheckForReadOnly(true, cancellationToken).ToList();
5152
EqualityMembers = GetEqualityMembers();

0 commit comments

Comments
 (0)