I’m still getting this issue. Not in our SonarQube Cloud integration, but in SonarQube for IDE (Rider in my case). I have the latest extension version. Any updates on this issue for the IDE extensions specifically?
Hi @CrookedGrandma,
What version of SonarQube for IDE are you running? The current version is 11.15. And are you in connected mode?
Thx,
Ann
Hi G Ann, thanks for the reply. I’m on version 11.15.0.84329, and I’m connected to our SonarQube Cloud project.
Screenshots are included below as proof, with the issue displayed cinematically in the background.
Interesting, I’m now seeing that it’s a different issue than the one mentioned in the original post.
It’s now S1144: “Remove unused constructor of private type”

Hi,
I’ve moved this to a new thread since it turns out to be about a different rule. Can you provide a little more detail on why you think an issue is raised inappropriately, please?
Thx,
Ann
Thanks! I’ll provide some details.
I have static class containing extension methods for the IHtmlHelper interface, using the new C#14 syntax.
Smaller version of the class as example:
public static class IHtmlHelperExtensions
{
extension(IHtmlHelper html)
{
public Task<IHtmlContent> ResultSectionPartial(IResultSection section)
=> section switch
{
AttackPathSummarySection ap => html.PartialAsync("ResultPage/Sections/_AttackPathSummary", ap),
DefenceStrategiesSection ds => html.PartialAsync("ResultPage/Sections/_DefenceStrategies", ds),
/* ... */
_ => throw new ArgumentException($"Partial for {section.GetType().Name} not defined", nameof(section)),
};
}
}
The method in the example above is used in both a .cshtml page:
@await Html.ResultSectionPartial(section)
and in unit tests:
Mock<IHtmlHelper> _html = new();
await Assert.ThrowsAsync<ArgumentException>(() => _html.Object.ResultSectionPartial(section));
Still, a warning is thrown that I should:
Remove unused constructor of private type ‘IHtmlHelperExtensions’ (csharpsquid:S1144)
This is incorrect on three counts:
- IHtmlHelperExtensions is not a private type, but a public static type;
- I have not defined any constructor; and
- The methods that I have defined are not unused.
Is this enough detail to work with? If not, I’m happy to provide diagnostics or things like that.
Hi,
Thanks! This is great. I’ve flagged it for the language experts.
Ann
So, in other words: you found that this rule seems to handle the C#14 extension syntax incorrectly.
Correct
Hi,
Are you still getting the issue on the last version? We did some updates that might fix this issue.
Right now I’m not getting this issue raised, so it seems to be fixed! Thank you so much.
Out of curiosity, which version released the fix for this? I’d be interested to look at the patch notes.

