From 88ea4222b4d65894c7476cdcbcf6bc409a27246b Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Wed, 10 Aug 2022 20:08:50 +0200 Subject: [PATCH 1/2] Fix NRE --- .../AvoidBoxingOfValueTypeAnalysis.cs | 2 +- .../RCS1198AvoidBoxingOfValueTypeTests2.cs | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/Analyzers/CSharp/Analysis/AvoidBoxingOfValueTypeAnalysis.cs b/src/Analyzers/CSharp/Analysis/AvoidBoxingOfValueTypeAnalysis.cs index b8308df0ea..8204208fe6 100644 --- a/src/Analyzers/CSharp/Analysis/AvoidBoxingOfValueTypeAnalysis.cs +++ b/src/Analyzers/CSharp/Analysis/AvoidBoxingOfValueTypeAnalysis.cs @@ -40,7 +40,7 @@ public static void Analyze(SyntaxNodeAnalysisContext context, in SimpleMemberInv if (!expression.IsKind(SyntaxKind.InterpolatedStringExpression, SyntaxKind.AddExpression) && parameters[0].Type.IsObject() - && context.SemanticModel.GetTypeSymbol(expression, context.CancellationToken).IsValueType) + && context.SemanticModel.GetTypeSymbol(expression, context.CancellationToken)?.IsValueType == true) { DiagnosticHelpers.ReportDiagnostic(context, DiagnosticRules.AvoidBoxingOfValueType, argument); return; diff --git a/src/Tests/Analyzers.Tests/RCS1198AvoidBoxingOfValueTypeTests2.cs b/src/Tests/Analyzers.Tests/RCS1198AvoidBoxingOfValueTypeTests2.cs index 20482e3ef7..c8b8343827 100644 --- a/src/Tests/Analyzers.Tests/RCS1198AvoidBoxingOfValueTypeTests2.cs +++ b/src/Tests/Analyzers.Tests/RCS1198AvoidBoxingOfValueTypeTests2.cs @@ -100,6 +100,26 @@ void M() sb.AppendFormat(""f"", i, i, i, i); } } +"); + } + + [Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.AvoidBoxingOfValueType)] + public async Task TestNoDiagnostic_NoTypeSymbol() + { + await VerifyNoDiagnosticAsync(@" +using System.Text; + +class C +{ + void M() + { + var f = false; + + var sb = new StringBuilder(); + + sb.Append(f ? ""ab"" : 'c'); + } +} "); } } From 052893d05b556a5b8f1165f8866c090bc5906319 Mon Sep 17 00:00:00 2001 From: Josef Pihrt Date: Wed, 10 Aug 2022 20:14:28 +0200 Subject: [PATCH 2/2] Update changelog --- ChangeLog.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ChangeLog.md b/ChangeLog.md index 8426b98297..228d75099a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -26,7 +26,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - [CLI] Fix filtering of projects (relates to `--projects` or `--ignored-projects` parameter) ([#914](https://github.com/josefpihrt/roslynator/pull/914)). - Refactoring "Add using directive" (RR0014) now works when file-scoped namespace is used ([#932](https://github.com/josefpihrt/roslynator/pull/932)). - Add parentheses if necessary in a code fix for [RCS1197](https://github.com/JosefPihrt/Roslynator/blob/main/docs/analyzers/RCS1197.md) ([#928](https://github.com/josefpihrt/roslynator/pull/928) by @karl-sjogren). -- Do not simplify default expression if it would change semantics [RCS1244](https://github.com/JosefPihrt/Roslynator/blob/main/docs/analyzers/RCS1244.md) ([#939](https://github.com/josefpihrt/roslynator/pull/939). +- Do not simplify default expression if it would change semantics ([RCS1244](https://github.com/JosefPihrt/Roslynator/blob/main/docs/analyzers/RCS1244.md)) ([#939](https://github.com/josefpihrt/roslynator/pull/939). +- Fix NullReferenceException in [RCS1198](https://github.com/JosefPihrt/Roslynator/blob/main/docs/analyzers/RCS1198.md) ([#940](https://github.com/josefpihrt/roslynator/pull/940). -----