Skip to content

Commit 4088f50

Browse files
committed
[Analyzer] compiler warnings and errors are pointing to user code
1 parent 379de2e commit 4088f50

18 files changed

Lines changed: 524 additions & 210 deletions

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<Copyright>(c) $([System.DateTime]::Now.Year), Pawel Gerr. All rights reserved.</Copyright>
5-
<VersionPrefix>9.6.5</VersionPrefix>
5+
<VersionPrefix>9.6.6</VersionPrefix>
66
<Authors>Pawel Gerr</Authors>
77
<GenerateDocumentationFile>true</GenerateDocumentationFile>
88
<PackageProjectUrl>https://github.com/PawelGerr/Thinktecture.Runtime.Extensions</PackageProjectUrl>

src/Thinktecture.Runtime.Extensions.SourceGenerator/CodeAnalysis/Diagnostics/ThinktectureRuntimeExtensionsAnalyzer.cs

Lines changed: 193 additions & 175 deletions
Large diffs are not rendered by default.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,10 +166,10 @@ private static bool IsDisallowingDefaultValue(ITypeSymbol type)
166166
public Location? GetIdentifierLocation(CancellationToken cancellationToken)
167167
{
168168
if (_symbol.Field is not null)
169-
return _symbol.Field.GetIdentifier(cancellationToken)?.GetLocation() ?? Location.None;
169+
return _symbol.Field.GetFieldLocation(cancellationToken);
170170

171171
if (_symbol.Property is not null)
172-
return _symbol.Property.GetIdentifier(cancellationToken)?.GetLocation() ?? Location.None;
172+
return _symbol.Property.GetPropertyLocation(PropertyDeclarationSyntaxKind.All, cancellationToken);
173173

174174
return null;
175175
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ protected JsonKeyedSerializerCodeGeneratorFactoryBase(
1717
public bool MustGenerateCode(KeyedSerializerGeneratorState state)
1818
{
1919
if (state.AttributeInfo.HasJsonConverterAttribute
20-
|| !state.SerializationFrameworks.HasFlag(SerializationFrameworks.SystemTextJson))
20+
|| !state.SerializationFrameworks.HasSerializationFramework(SerializationFrameworks.SystemTextJson))
2121
return false;
2222

23-
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.Has(SerializationFrameworks.SystemTextJson));
23+
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.SystemTextJson));
2424

2525
if (_isForObjectFactories)
2626
return hasObjectFactory;

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public override void Generate(CancellationToken cancellationToken)
2020
{
2121
var customFactory = _state.AttributeInfo
2222
.ObjectFactories
23-
.FirstOrDefault(f => f.UseForSerialization.Has(SerializationFrameworks.SystemTextJson));
23+
.FirstOrDefault(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.SystemTextJson));
2424
var keyType = customFactory?.TypeFullyQualified ?? _state.KeyMember?.TypeFullyQualified;
2525
var isString = customFactory is null
2626
? _state.KeyMember?.SpecialType == SpecialType.System_String

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public override void Generate(CancellationToken cancellationToken)
2020
{
2121
var customFactory = _state.AttributeInfo
2222
.ObjectFactories
23-
.FirstOrDefault(f => f.UseForSerialization.Has(SerializationFrameworks.MessagePack));
23+
.FirstOrDefault(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.MessagePack));
2424
var keyType = customFactory?.TypeFullyQualified ?? _state.KeyMember?.TypeFullyQualified;
2525

2626
_sb.Append(GENERATED_CODE_PREFIX).Append(@"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public override void Generate(CancellationToken cancellationToken)
2020
{
2121
var customFactory = _state.AttributeInfo
2222
.ObjectFactories
23-
.FirstOrDefault(f => f.UseForSerialization.Has(SerializationFrameworks.NewtonsoftJson));
23+
.FirstOrDefault(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.NewtonsoftJson));
2424
var keyType = customFactory?.TypeFullyQualified ?? _state.KeyMember?.TypeFullyQualified;
2525

2626
_sb.Append(GENERATED_CODE_PREFIX).Append(@"

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ protected MessagePackKeyedSerializerCodeGeneratorFactoryBase(
1616
public bool MustGenerateCode(KeyedSerializerGeneratorState state)
1717
{
1818
if (state.AttributeInfo.HasMessagePackFormatterAttribute
19-
|| !state.SerializationFrameworks.HasFlag(SerializationFrameworks.MessagePack))
19+
|| !state.SerializationFrameworks.HasSerializationFramework(SerializationFrameworks.MessagePack))
2020
return false;
2121

22-
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.Has(SerializationFrameworks.MessagePack));
22+
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.MessagePack));
2323

2424
if (_isForObjectFactories)
2525
return hasObjectFactory;

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ protected NewtonsoftJsonKeyedSerializerCodeGeneratorFactoryBase(
1717
public bool MustGenerateCode(KeyedSerializerGeneratorState state)
1818
{
1919
if (state.AttributeInfo.HasNewtonsoftJsonConverterAttribute
20-
|| !state.SerializationFrameworks.HasFlag(SerializationFrameworks.NewtonsoftJson))
20+
|| !state.SerializationFrameworks.HasSerializationFramework(SerializationFrameworks.NewtonsoftJson))
2121
return false;
2222

23-
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.Has(SerializationFrameworks.NewtonsoftJson));
23+
var hasObjectFactory = state.AttributeInfo.ObjectFactories.Any(f => f.UseForSerialization.HasSerializationFramework(SerializationFrameworks.NewtonsoftJson));
2424

2525
if (_isForObjectFactories)
2626
return hasObjectFactory;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace Thinktecture.CodeAnalysis;
2+
3+
[Flags]
4+
public enum PropertyDeclarationSyntaxKind
5+
{
6+
Implementation = 1 << 0,
7+
DeclarationOnly = 1 << 1,
8+
9+
All = Implementation | DeclarationOnly
10+
}

0 commit comments

Comments
 (0)