Skip to content

Comments

Fix incorrect CA1065 → MA0072 equivalence mapping#1028

Merged
meziantou merged 2 commits intomainfrom
copilot/fix-ma0072-equivalence-issue
Feb 21, 2026
Merged

Fix incorrect CA1065 → MA0072 equivalence mapping#1028
meziantou merged 2 commits intomainfrom
copilot/fix-ma0072-equivalence-issue

Conversation

Copy link
Contributor

Copilot AI commented Feb 21, 2026

docs/comparison-with-other-analyzers.md incorrectly listed MA0072 ("Do not throw from a finally block") as equivalent to CA1065 ("Do not raise exceptions in unexpected locations"). MA0072 is equivalent to CA2219 ("Do not raise exceptions in finally clauses"), which was already correctly mapped.

Changes

  • docs/comparison-with-other-analyzers.md: Remove the erroneous CA1065 → MA0072 row from the "Equivalent rules" table. The correct mappings remain intact:
    • CA1065 → MA0086 (DoNotThrowFromFinalizer)
    • CA2219 → MA0072 (DoNotThrowFromFinallyBlock)
Original prompt

This section details on the original issue you should resolve

<issue_title>MA0072 is wrongly consider equivalent of CA1065</issue_title>
<issue_description>### Version of the Meziantou.Analyzer NuGet package

3.0.10

Rule Identifier

MA0072

Target Framework

.NET 10.0

C# Language version

C# 14

Description

MA0072 is documented as being an equivant of CA1065, but it appears to be an equivalent of CA2219 (and S1163) instead.

Note:
The documentation of the SonarAnalyzer.CSharp rules has intentionally been taken offline. Any references to it have removed from the source code as well. First step in going closed source?

Reproduction Steps

Minimal code:

try
{
}
finally
{
    throw new NotSupportedException(); // MA0072 / CA2219 / S1163
}

Other information

No response</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Co-authored-by: meziantou <509220+meziantou@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix MA0072 incorrectly considered equivalent to CA1065 Fix incorrect CA1065 → MA0072 equivalence mapping Feb 21, 2026
Copilot AI requested a review from meziantou February 21, 2026 21:07
@meziantou meziantou marked this pull request as ready for review February 21, 2026 22:50
Copilot AI requested a review from meziantou February 21, 2026 22:53
@meziantou meziantou merged commit 37df9d1 into main Feb 21, 2026
13 checks passed
@meziantou meziantou deleted the copilot/fix-ma0072-equivalence-issue branch February 21, 2026 22:53
IhateTrains pushed a commit to ParadoxGameConverters/ImperatorToCK3 that referenced this pull request Feb 23, 2026
Updated
[Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer)
from 2.0.302 to 3.0.15.

<details>
<summary>Release notes</summary>

_Sourced from [Meziantou.Analyzer's
releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._

## 3.0.15

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.15>

## What's Changed
* MA0183: Extend detection to Console.Write, Console.WriteLine, and
StringBuilder.AppendFormat by @​Copilot in
meziantou/Meziantou.Analyzer#1042


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.14...3.0.15

## 3.0.14

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.14>

## What's Changed
* docs(MA0028): Remove incorrect AppendFormat optimization example by
@​Copilot in meziantou/Meziantou.Analyzer#1039
* docs: Document MA0158 as similar to IDE0330 by @​Copilot in
meziantou/Meziantou.Analyzer#1040
* MA0028: Detect StringBuilder.AppendFormat with no-placeholder format
strings by @​Copilot in
meziantou/Meziantou.Analyzer#1041


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.13...3.0.14

## 3.0.13

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.13>

## What's Changed
* Fix incorrect CA1065 → MA0072 equivalence mapping by @​Copilot in
meziantou/Meziantou.Analyzer#1028
* Fix IDE0330 comparison incorrectly referencing MA0153 instead of
MA0158 by @​Copilot in
meziantou/Meziantou.Analyzer#1036
* docs(MA0042): Document false positive when calling sync method from
its own async counterpart by @​Copilot in
meziantou/Meziantou.Analyzer#1038
* Fix MA0158 not reported when lock field is initialized in constructor
by @​Copilot in
meziantou/Meziantou.Analyzer#1037


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.12...3.0.13

## 3.0.12

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.12>

## What's Changed
* MA0056: Reclassify as "similar to" CA2214 and document differences by
@​Copilot in meziantou/Meziantou.Analyzer#1024
* Fix MA0027 not firing for derived exception types by @​Copilot in
meziantou/Meziantou.Analyzer#1026


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.11...3.0.12

## 3.0.11

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.11>

## What's Changed
* Reduce test fakiness with source generators by @​meziantou in
meziantou/Meziantou.Analyzer#1022


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.10...3.0.11

## 3.0.10

NuGet package:
<https://www.nuget.org/packages/Meziantou.Analyzer/3.0.10>

## What's Changed
* Add test for implicit params array in AppendLine with AppendFormat by
@​meziantou in meziantou/Meziantou.Analyzer#1021


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.9...3.0.10

## 3.0.9

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.9>

## What's Changed
* MA0029: Suppress all Where().X() diagnostics on IQueryable by
@​Copilot in meziantou/Meziantou.Analyzer#1017


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.8...3.0.9

## 3.0.8

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.8>

## What's Changed
* Remove exception handling from WithSourceGeneratorsFromNuGet and
document Roslyn version testing by @​Copilot in
meziantou/Meziantou.Analyzer#1015


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.7...3.0.8

## 3.0.7

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.7>

## What's Changed
* Fix MA0110 to handle property initializers by @​Copilot in
meziantou/Meziantou.Analyzer#1014


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.6...3.0.7

## 3.0.6

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.6>

## What's Changed
* MA0110: Suggest partial property before partial method by @​Copilot in
meziantou/Meziantou.Analyzer#1013


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.5...3.0.6

## 3.0.5

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.5>

## What's Changed
* MA0110: Support top-level statements by @​Copilot in
meziantou/Meziantou.Analyzer#1012


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.4...3.0.5

## 3.0.4

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.4>

## What's Changed
* MA0110: Remove field/variable when generating partial property code
fix by @​Copilot in
meziantou/Meziantou.Analyzer#1011


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.3...3.0.4

## 3.0.3

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.3>

## What's Changed
* MA0110: Derive generated regex names from field/variable context by
@​Copilot in meziantou/Meziantou.Analyzer#1010


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.2...3.0.3

## 3.0.2

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.2>

## What's Changed
* Add partial property support for MA0110 Regex Source Generator by
@​Copilot in meziantou/Meziantou.Analyzer#1009


**Full Changelog**:
meziantou/Meziantou.Analyzer@3.0.1...3.0.2

## 3.0.1

NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.1>

## What's Changed
* Remove Roslyn 3.x support by @​Copilot in
meziantou/Meziantou.Analyzer#1007


**Full Changelog**:
meziantou/Meziantou.Analyzer@2.0.302...3.0.1

Commits viewable in [compare
view](meziantou/Meziantou.Analyzer@2.0.302...3.0.15).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Meziantou.Analyzer&package-manager=nuget&previous-version=2.0.302&new-version=3.0.15)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Feb 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MA0072 is wrongly consider equivalent of CA1065

2 participants