-
Notifications
You must be signed in to change notification settings - Fork 506
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update SA1008 to not crash if there is no previous token #3741
Update SA1008 to not crash if there is no previous token #3741
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #3741 +/- ##
==========================================
- Coverage 97.40% 94.45% -2.95%
==========================================
Files 914 908 -6
Lines 108762 108717 -45
Branches 3284 3285 +1
==========================================
- Hits 105937 102688 -3249
- Misses 1847 5003 +3156
- Partials 978 1026 +48 |
Ready for review |
StyleCop.Analyzers/StyleCop.Analyzers/Helpers/LocationHelpers.cs
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would prefer to not move in this direction. If token.SyntaxTree
can be null somewhere, we should check for null at the location where a possible-null is originally introduced.
Alright. I fear it will be hard to fix "all" cases that way, but we will see what I can do. SA1008 should be easy anyway. |
145b958
to
105e147
Compare
Updated to only handle SA1008. |
105e147
to
dea9473
Compare
@@ -100,6 +100,9 @@ private static void HandleOpenParenToken(SyntaxTreeAnalysisContext context, Synt | |||
bool precededByKeyword; | |||
switch (prevToken.Kind()) | |||
{ | |||
case SyntaxKind.None: | |||
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📝 This won't correctly handle the following top-level program:
( var a, var b) = (3, 3);
System.Console.WriteLine($"{a}");
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch! Didn't think of that.
Alright, I will have a look.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see now that you added both a leading and a trailing space in your example. What was your intention with the leading space? What is the expected result?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should behave the same way as this:
void Method()
{
( var a, var b) = (3, 3);
System.Console.WriteLine($"{a}");
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As far as I can understand, this is a "don't care" case, since it is the first token on the line
dea9473
to
68c49ff
Compare
StyleCop.Analyzers/StyleCop.Analyzers.Test.CSharp9/SpacingRules/SA1008CSharp9UnitTests.cs
Outdated
Show resolved
Hide resolved
68c49ff
to
6b7973e
Compare
Test execution seems to fail without a reason in the previous build. I noticed that both OpenCover and xunit.runner.console are quite old (from 2016 and 2018). What do you think about updating them? |
I think this is a different issue that I can likely work around in the build system. |
Absolutely, I didn't mean in this PR. It looked like the test runner just died before reporting the outcome in the c# 6 debug run and in the c# 12 debug run, all tests passed but opencover.console.exe exited with code 1 without saying why. Just looked weird, so upgrading them might be a good thing. Unless you already had ideas about it. |
…20) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [StyleCop.Analyzers](https://github.com/DotNetAnalyzers/StyleCopAnalyzers) | `1.2.0-beta.507` -> `1.2.0-beta.556` | [![age](https://developer.mend.io/api/mc/badges/age/nuget/StyleCop.Analyzers/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/StyleCop.Analyzers/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/StyleCop.Analyzers/1.2.0-beta.507/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/StyleCop.Analyzers/1.2.0-beta.507/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>DotNetAnalyzers/StyleCopAnalyzers (StyleCop.Analyzers)</summary> ### [`v1.2.0-beta.556`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.556) [Compare Source](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/compare/1.2.0-beta.553...1.2.0-beta.556) #### What's Changed - Update SA1011 to forbid trailing space before the end of a switch case by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3674 - Rewrite IOperationWrapper as a wrapper structure around IOperation by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3611 - Update SA1202 to support interfaces (C# 8) and records (C# 9, 10) by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3694 - Update documentation for SA1308 to also mention prefix "t\_" by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3697 - Update SA1642 and its code fix to handle record structs correctly by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3696 - Update dependencies by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3700 - Mark several test classes as partial by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3702 - Add missing test files and fix inheritance by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3703 - Generate and validate derived test classes by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3704 - Update SA1011 to not require space before a range operator by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3709 - Update SA1131 to treat methods as constants by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3710 - Avoid allocations in CanWrap... methods by [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) in [DotNetAnalyzers/StyleCopAnalyzers#3711 - Update SA1648 to accept inheritdoc on members implemented from static abstract/virtual interface members by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3715 - Update SA1600 to also handle records by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3725 - Update SA1119 to allow parenthesis around a ref ternary conditional expression when it is the left-hand side of an assigment by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3737 - Update SA1119 to allow parenthesized switch expressions followed by an invocation by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3733 - Add c# 12 test project by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3734 - Run tests in parallel jobs by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3740 - Update SA1010 to accept whitespace before collection initializers by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3745 - Update SA1513 to not require a blank line if the closing brace is at the end of a collection expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3746 - Update SA1118 to allow multi-line collection expressions by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3749 - Update SA1009 to require a space after the closing parenthesis if it is followed by ++ or -- from a prefix unary expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3750 - Update SA1008 to allow space before the opening parenthesis of a using alias definition of a tuple type by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3748 - Update documentation for SA1102 to contain compilable code examples by [@​arphox](https://github.com/arphox) in [DotNetAnalyzers/StyleCopAnalyzers#3755 - Update SA1008 to not crash if there is no previous token by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3741 - Change default value of test property CodeActionValidationMode to SemanticStructure instead of None and update so that tests still pass by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3753 - Allow inheritdoc for class constructors with base types by [@​MartyIX](https://github.com/MartyIX) in [DotNetAnalyzers/StyleCopAnalyzers#3719 - Fix that SA1134 Fix All maybe non-deterministic by [@​pdelvo](https://github.com/pdelvo) in [DotNetAnalyzers/StyleCopAnalyzers#2853 - Coverage improvements by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3675 - Fix SA1131 to not treat "complex" expressions as a literal by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3760 #### New Contributors - [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3711 - [@​arphox](https://github.com/arphox) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3755 - [@​MartyIX](https://github.com/MartyIX) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3719 **Full Changelog**: DotNetAnalyzers/StyleCopAnalyzers@1.2.0-beta.507...1.2.0-beta.556 ### [`v1.2.0-beta.553`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.553) [Compare Source](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/compare/1.2.0-beta.507...1.2.0-beta.553) ##### What's Changed - Update SA1011 to forbid trailing space before the end of a switch case by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3674 - Rewrite IOperationWrapper as a wrapper structure around IOperation by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3611 - Update SA1202 to support interfaces (C# 8) and records (C# 9, 10) by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3694 - Update documentation for SA1308 to also mention prefix "t\_" by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3697 - Update SA1642 and its code fix to handle record structs correctly by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3696 - Update dependencies by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3700 - Mark several test classes as partial by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3702 - Add missing test files and fix inheritance by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3703 - Generate and validate derived test classes by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3704 - Update SA1011 to not require space before a range operator by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3709 - Update SA1131 to treat methods as constants by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3710 - Avoid allocations in CanWrap... methods by [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) in [DotNetAnalyzers/StyleCopAnalyzers#3711 - Update SA1648 to accept inheritdoc on members implemented from static abstract/virtual interface members by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3715 - Update SA1600 to also handle records by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3725 - Update SA1119 to allow parenthesis around a ref ternary conditional expression when it is the left-hand side of an assigment by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3737 - Update SA1119 to allow parenthesized switch expressions followed by an invocation by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3733 - Add c# 12 test project by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3734 - Run tests in parallel jobs by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3740 - Update SA1010 to accept whitespace before collection initializers by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3745 - Update SA1513 to not require a blank line if the closing brace is at the end of a collection expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3746 - Update SA1118 to allow multi-line collection expressions by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3749 - Update SA1009 to require a space after the closing parenthesis if it is followed by ++ or -- from a prefix unary expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3750 - Update SA1008 to allow space before the opening parenthesis of a using alias definition of a tuple type by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3748 - Update documentation for SA1102 to contain compilable code examples by [@​arphox](https://github.com/arphox) in [DotNetAnalyzers/StyleCopAnalyzers#3755 - Update SA1008 to not crash if there is no previous token by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3741 - Change default value of test property CodeActionValidationMode to SemanticStructure instead of None and update so that tests still pass by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3753 - Allow inheritdoc for class constructors with base types by [@​MartyIX](https://github.com/MartyIX) in [DotNetAnalyzers/StyleCopAnalyzers#3719 - Fix that SA1134 Fix All maybe non-deterministic by [@​pdelvo](https://github.com/pdelvo) in [DotNetAnalyzers/StyleCopAnalyzers#2853 - Coverage improvements by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3675 ##### New Contributors - [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3711 - [@​arphox](https://github.com/arphox) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3755 - [@​MartyIX](https://github.com/MartyIX) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3719 **Full Changelog**: DotNetAnalyzers/StyleCopAnalyzers@1.2.0-beta.507...1.2.0-beta.553 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 9pm,before 6am" in timezone Europe/Zurich, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/smartive/cas-fee-adv-mumble-api). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…591) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [StyleCop.Analyzers](https://github.com/DotNetAnalyzers/StyleCopAnalyzers) | `1.2.0-beta.507` -> `1.2.0-beta.556` | [![age](https://developer.mend.io/api/mc/badges/age/nuget/StyleCop.Analyzers/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/nuget/StyleCop.Analyzers/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/nuget/StyleCop.Analyzers/1.2.0-beta.507/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/StyleCop.Analyzers/1.2.0-beta.507/1.2.0-beta.556?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>DotNetAnalyzers/StyleCopAnalyzers (StyleCop.Analyzers)</summary> ### [`v1.2.0-beta.556`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.556) [Compare Source](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/compare/1.2.0-beta.553...1.2.0-beta.556) #### What's Changed - Update SA1011 to forbid trailing space before the end of a switch case by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3674 - Rewrite IOperationWrapper as a wrapper structure around IOperation by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3611 - Update SA1202 to support interfaces (C# 8) and records (C# 9, 10) by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3694 - Update documentation for SA1308 to also mention prefix "t\_" by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3697 - Update SA1642 and its code fix to handle record structs correctly by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3696 - Update dependencies by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3700 - Mark several test classes as partial by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3702 - Add missing test files and fix inheritance by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3703 - Generate and validate derived test classes by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3704 - Update SA1011 to not require space before a range operator by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3709 - Update SA1131 to treat methods as constants by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3710 - Avoid allocations in CanWrap... methods by [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) in [DotNetAnalyzers/StyleCopAnalyzers#3711 - Update SA1648 to accept inheritdoc on members implemented from static abstract/virtual interface members by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3715 - Update SA1600 to also handle records by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3725 - Update SA1119 to allow parenthesis around a ref ternary conditional expression when it is the left-hand side of an assigment by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3737 - Update SA1119 to allow parenthesized switch expressions followed by an invocation by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3733 - Add c# 12 test project by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3734 - Run tests in parallel jobs by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3740 - Update SA1010 to accept whitespace before collection initializers by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3745 - Update SA1513 to not require a blank line if the closing brace is at the end of a collection expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3746 - Update SA1118 to allow multi-line collection expressions by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3749 - Update SA1009 to require a space after the closing parenthesis if it is followed by ++ or -- from a prefix unary expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3750 - Update SA1008 to allow space before the opening parenthesis of a using alias definition of a tuple type by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3748 - Update documentation for SA1102 to contain compilable code examples by [@​arphox](https://github.com/arphox) in [DotNetAnalyzers/StyleCopAnalyzers#3755 - Update SA1008 to not crash if there is no previous token by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3741 - Change default value of test property CodeActionValidationMode to SemanticStructure instead of None and update so that tests still pass by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3753 - Allow inheritdoc for class constructors with base types by [@​MartyIX](https://github.com/MartyIX) in [DotNetAnalyzers/StyleCopAnalyzers#3719 - Fix that SA1134 Fix All maybe non-deterministic by [@​pdelvo](https://github.com/pdelvo) in [DotNetAnalyzers/StyleCopAnalyzers#2853 - Coverage improvements by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3675 - Fix SA1131 to not treat "complex" expressions as a literal by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3760 #### New Contributors - [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3711 - [@​arphox](https://github.com/arphox) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3755 - [@​MartyIX](https://github.com/MartyIX) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3719 **Full Changelog**: DotNetAnalyzers/StyleCopAnalyzers@1.2.0-beta.507...1.2.0-beta.556 ### [`v1.2.0-beta.553`](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/releases/tag/1.2.0-beta.553) [Compare Source](https://github.com/DotNetAnalyzers/StyleCopAnalyzers/compare/1.2.0-beta.507...1.2.0-beta.553) ##### What's Changed - Update SA1011 to forbid trailing space before the end of a switch case by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3674 - Rewrite IOperationWrapper as a wrapper structure around IOperation by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3611 - Update SA1202 to support interfaces (C# 8) and records (C# 9, 10) by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3694 - Update documentation for SA1308 to also mention prefix "t\_" by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3697 - Update SA1642 and its code fix to handle record structs correctly by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3696 - Update dependencies by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3700 - Mark several test classes as partial by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3702 - Add missing test files and fix inheritance by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3703 - Generate and validate derived test classes by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3704 - Update SA1011 to not require space before a range operator by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3709 - Update SA1131 to treat methods as constants by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3710 - Avoid allocations in CanWrap... methods by [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) in [DotNetAnalyzers/StyleCopAnalyzers#3711 - Update SA1648 to accept inheritdoc on members implemented from static abstract/virtual interface members by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3715 - Update SA1600 to also handle records by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3725 - Update SA1119 to allow parenthesis around a ref ternary conditional expression when it is the left-hand side of an assigment by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3737 - Update SA1119 to allow parenthesized switch expressions followed by an invocation by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3733 - Add c# 12 test project by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3734 - Run tests in parallel jobs by [@​sharwell](https://github.com/sharwell) in [DotNetAnalyzers/StyleCopAnalyzers#3740 - Update SA1010 to accept whitespace before collection initializers by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3745 - Update SA1513 to not require a blank line if the closing brace is at the end of a collection expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3746 - Update SA1118 to allow multi-line collection expressions by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3749 - Update SA1009 to require a space after the closing parenthesis if it is followed by ++ or -- from a prefix unary expression by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3750 - Update SA1008 to allow space before the opening parenthesis of a using alias definition of a tuple type by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3748 - Update documentation for SA1102 to contain compilable code examples by [@​arphox](https://github.com/arphox) in [DotNetAnalyzers/StyleCopAnalyzers#3755 - Update SA1008 to not crash if there is no previous token by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3741 - Change default value of test property CodeActionValidationMode to SemanticStructure instead of None and update so that tests still pass by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3753 - Allow inheritdoc for class constructors with base types by [@​MartyIX](https://github.com/MartyIX) in [DotNetAnalyzers/StyleCopAnalyzers#3719 - Fix that SA1134 Fix All maybe non-deterministic by [@​pdelvo](https://github.com/pdelvo) in [DotNetAnalyzers/StyleCopAnalyzers#2853 - Coverage improvements by [@​bjornhellander](https://github.com/bjornhellander) in [DotNetAnalyzers/StyleCopAnalyzers#3675 ##### New Contributors - [@​martin-strecker-sonarsource](https://github.com/martin-strecker-sonarsource) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3711 - [@​arphox](https://github.com/arphox) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3755 - [@​MartyIX](https://github.com/MartyIX) made their first contribution in [DotNetAnalyzers/StyleCopAnalyzers#3719 **Full Changelog**: DotNetAnalyzers/StyleCopAnalyzers@1.2.0-beta.507...1.2.0-beta.553 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ThorstenSauter/NoPlan). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes #2354
Protected all similar methods in LocationHelpers against null reference exception.
I found one situation where this happens in SA1008 so I added a unit test for that as well.
I also went through all uses of the SyntaxTree properties in SyntaxToken, SyntaxTrivia and SyntaxNodeOrToken and tried to make sure that they could not cause a null reference exceptions.