Skip to content

Commit 362c2c7

Browse files
committed
Fix warnings.
1 parent 279a100 commit 362c2c7

2 files changed

Lines changed: 18 additions & 22 deletions

File tree

IDisposableAnalyzers.Test/DocumentationTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,12 @@ public static void ConfigSeverity(DescriptorInfo descriptorInfo)
115115
var actual = GetConfigSeverity(descriptorInfo.DocumentationFile.AllText);
116116
CodeAssert.AreEqual(expected, actual);
117117

118-
string GetConfigSeverity(string doc)
118+
static string GetConfigSeverity(string doc)
119119
{
120120
return GetSection(doc, "<!-- start generated config severity -->", "<!-- end generated config severity -->");
121121
}
122122

123-
string GetSection(string doc, string startToken, string endToken)
123+
static string GetSection(string doc, string startToken, string endToken)
124124
{
125125
var start = doc.IndexOf(startToken, StringComparison.Ordinal);
126126
var end = doc.IndexOf(endToken, StringComparison.Ordinal) + endToken.Length;

IDisposableAnalyzers/Helpers/DisposeCall.cs

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,26 @@ internal static bool TryGetDisposedRootMember(InvocationExpressionSyntax dispose
2121
if (MemberPath.TryFindRoot(disposeCall, out var rootIdentifier) &&
2222
(disposedMember = rootIdentifier.Parent as IdentifierNameSyntax) is { })
2323
{
24-
var property = semanticModel.GetSymbolSafe(disposedMember, cancellationToken) as IPropertySymbol;
25-
if (property == null ||
26-
property.IsAutoProperty())
24+
switch (semanticModel.GetSymbolSafe(disposedMember, cancellationToken))
2725
{
28-
return true;
29-
}
26+
case IPropertySymbol { GetMethod: null }:
27+
return false;
28+
case IPropertySymbol { GetMethod: { DeclaringSyntaxReferences: { Length: 1 } } getMethod }
29+
when getMethod.TrySingleDeclaration(cancellationToken, out SyntaxNode? getterOrExpressionBody):
30+
{
31+
using var pooled = ReturnValueWalker.Borrow(getterOrExpressionBody, ReturnValueSearch.TopLevel, semanticModel, cancellationToken);
32+
if (pooled.Count == 0)
33+
{
34+
return true;
35+
}
3036

31-
if (property.GetMethod == null)
32-
{
33-
return false;
34-
}
37+
return pooled.TrySingle(out var expression) &&
38+
MemberPath.TryFindRoot(expression, out rootIdentifier) &&
39+
(disposedMember = rootIdentifier.Parent as IdentifierNameSyntax) is { };
40+
}
3541

36-
foreach (var reference in property.GetMethod.DeclaringSyntaxReferences)
37-
{
38-
var node = reference.GetSyntax(cancellationToken);
39-
using var pooled = ReturnValueWalker.Borrow(node, ReturnValueSearch.TopLevel, semanticModel, cancellationToken);
40-
if (pooled.Count == 0)
41-
{
42+
default:
4243
return true;
43-
}
44-
45-
return pooled.TrySingle(out var expression) &&
46-
MemberPath.TryFindRoot(expression, out rootIdentifier) &&
47-
(disposedMember = rootIdentifier.Parent as IdentifierNameSyntax) is { };
4844
}
4945
}
5046

0 commit comments

Comments
 (0)