Repository navigation
MA0008: do not overflow the stack on cyclic struct layouts - #1640
Merged
Merged
Conversation
The fields of an invalid struct can cycle back to the struct (CS0523), and generic structs can expand into an infinite number of types. IsBlittableType from Meziantou.Framework.Roslyn recursed without limit and crashed the compiler. Use a local check with a depth limit instead.
This was referenced Oct 19, 2026
IhateTrains
pushed a commit
to ParadoxGameConverters/ImperatorToCK3
that referenced
this pull request
Oct 19, 2026
Updated [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) from 3.0.303 to 3.0.312. <details> <summary>Release notes</summary> _Sourced from [Meziantou.Analyzer's releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._ ## 3.0.312 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312> ## What's Changed * Read the usage of the cache entries once before sorting them for the eviction by @meziantou in meziantou/Meziantou.Analyzer#1734 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.311...3.0.312 ## 3.0.311 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311> ## What's Changed * Fuzz: remove the Moq, MSTest, Newtonsoft.Json, NUnit and Serilog package references by @meziantou in meziantou/Meziantou.Analyzer#1712 * Fuzz: report a regression only when the fuzzed commit contains the fix by @meziantou in meziantou/Meziantou.Analyzer#1733 * MA0110: track the node to fix when the regex is in an attribute of the type by @meziantou in meziantou/Meziantou.Analyzer#1731 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.310...3.0.311 ## 3.0.310 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310> ## What's Changed * MA0190: find the method declaration after updating the call sites by @meziantou in meziantou/Meziantou.Analyzer#1708 * MA0011: do not bind the invocations of attribute arguments speculatively by @meziantou in meziantou/Meziantou.Analyzer#1709 * Fuzz: do not blame the rules for the inputs on which Roslyn fails by @meziantou in meziantou/Meziantou.Analyzer#1710 * MA0010: do not offer the code fix when the class has no name by @meziantou in meziantou/Meziantou.Analyzer#1700 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.309...3.0.310 ## 3.0.309 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309> ## What's Changed * MA0110: keep the variable when it cannot be removed or renamed by @meziantou in meziantou/Meziantou.Analyzer#1698 * MA0071: do not move the attributes of the else block by @meziantou in meziantou/Meziantou.Analyzer#1699 * MA0077: do not throw when Equals(T) is declared several times by @meziantou in meziantou/Meziantou.Analyzer#1701 * MA0187: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1702 * MA0102: do not offer the code fix when the diagnostic is not on a member by @meziantou in meziantou/Meziantou.Analyzer#1703 * MA0117: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1704 * MA0189: do not offer the code fix when the fixed buffer has no name or type by @meziantou in meziantou/Meziantou.Analyzer#1705 * MA0089: fix the single-character constants that are not literals by @meziantou in meziantou/Meziantou.Analyzer#1706 * MA0004: fix the await expressions without semicolon by @meziantou in meziantou/Meziantou.Analyzer#1707 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.308...3.0.309 ## 3.0.308 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308> ## What's Changed * MA0137, MA0138: do not offer the rename when the name would be empty or the declaration does not compile by @meziantou in meziantou/Meziantou.Analyzer#1697 * MA0067: do not report System.Guid used as an attribute by @meziantou in meziantou/Meziantou.Analyzer#1696 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.307...3.0.308 ## 3.0.307 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307> ## What's Changed * MA0002: insert the comparer at the right position when an extension method is called as a static method by @meziantou in meziantou/Meziantou.Analyzer#1670 * MA0044: do not offer the code fix when ToString is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1669 * MA0185: do not offer the code fix when string.Create is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1668 * MA0101: do not offer the code fix for interpolated strings by @meziantou in meziantou/Meziantou.Analyzer#1667 * MA0187: do not offer the code fix when the class has an explicit constructor by @meziantou in meziantou/Meziantou.Analyzer#1666 * MA0004: fix the code fix when the await expression is an argument by @meziantou in meziantou/Meziantou.Analyzer#1665 * MA0102: do not report partial members by @meziantou in meziantou/Meziantou.Analyzer#1664 * MA0093: do not offer EventArgs.Empty when the event args are generic by @meziantou in meziantou/Meziantou.Analyzer#1663 * MA0053: do not report classes used as generic constraints by @meziantou in meziantou/Meziantou.Analyzer#1662 * Overload finder: Half is not implicitly convertible to float or double by @meziantou in meziantou/Meziantou.Analyzer#1661 * MA0042, MA0045: make the enclosing function async in the code fix by @meziantou in meziantou/Meziantou.Analyzer#1660 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.306...3.0.307 ## 3.0.306 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306> ## What's Changed * Allow the fuzzer to open up to 50 issues per run by @meziantou in meziantou/Meziantou.Analyzer#1652 * Build the fuzz project after the other builds of build_with_analyzers by @meziantou in meziantou/Meziantou.Analyzer#1671 * MA0038: fix the analyzer crash on invalid code and the code fixes that break the code by @meziantou in meziantou/Meziantou.Analyzer#1653 * MA0194: do not throw on invalid code by @meziantou in meziantou/Meziantou.Analyzer#1654 * MA0009, MA0023: do not throw when the GeneratedRegex arguments are invalid by @meziantou in meziantou/Meziantou.Analyzer#1655 * MA0110: do not report invalid patterns and fix the partial property used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1656 * MA0182: remove all the parts of a partial type and analyze the delegate signatures by @meziantou in meziantou/Meziantou.Analyzer#1657 * MA0036: do not report classes that contain protected members by @meziantou in meziantou/Meziantou.Analyzer#1658 * MA0137, MA0138: do not rename a method to a name that is already used by @meziantou in meziantou/Meziantou.Analyzer#1659 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.305...3.0.306 ## 3.0.305 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305> ## What's Changed * MA0008: do not overflow the stack on cyclic struct layouts by @meziantou in meziantou/Meziantou.Analyzer#1640 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.304...3.0.305 ## 3.0.304 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304> ## What's Changed * Add fuzz tests for the analyzers and the code fixers by @meziantou in meziantou/Meziantou.Analyzer#1641 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.303...3.0.304 Commits viewable in [compare view](meziantou/Meziantou.Analyzer@3.0.303...3.0.312). </details> [](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 Oct 19, 2026
vdolek
pushed a commit
to EvilBrainsTechnology/EvilCase
that referenced
this pull request
Oct 20, 2026
Updated [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) from 3.0.299 to 3.0.312. <details> <summary>Release notes</summary> _Sourced from [Meziantou.Analyzer's releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._ ## 3.0.312 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312> ## What's Changed * Read the usage of the cache entries once before sorting them for the eviction by @meziantou in meziantou/Meziantou.Analyzer#1734 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.311...3.0.312 ## 3.0.311 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311> ## What's Changed * Fuzz: remove the Moq, MSTest, Newtonsoft.Json, NUnit and Serilog package references by @meziantou in meziantou/Meziantou.Analyzer#1712 * Fuzz: report a regression only when the fuzzed commit contains the fix by @meziantou in meziantou/Meziantou.Analyzer#1733 * MA0110: track the node to fix when the regex is in an attribute of the type by @meziantou in meziantou/Meziantou.Analyzer#1731 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.310...3.0.311 ## 3.0.310 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310> ## What's Changed * MA0190: find the method declaration after updating the call sites by @meziantou in meziantou/Meziantou.Analyzer#1708 * MA0011: do not bind the invocations of attribute arguments speculatively by @meziantou in meziantou/Meziantou.Analyzer#1709 * Fuzz: do not blame the rules for the inputs on which Roslyn fails by @meziantou in meziantou/Meziantou.Analyzer#1710 * MA0010: do not offer the code fix when the class has no name by @meziantou in meziantou/Meziantou.Analyzer#1700 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.309...3.0.310 ## 3.0.309 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309> ## What's Changed * MA0110: keep the variable when it cannot be removed or renamed by @meziantou in meziantou/Meziantou.Analyzer#1698 * MA0071: do not move the attributes of the else block by @meziantou in meziantou/Meziantou.Analyzer#1699 * MA0077: do not throw when Equals(T) is declared several times by @meziantou in meziantou/Meziantou.Analyzer#1701 * MA0187: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1702 * MA0102: do not offer the code fix when the diagnostic is not on a member by @meziantou in meziantou/Meziantou.Analyzer#1703 * MA0117: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1704 * MA0189: do not offer the code fix when the fixed buffer has no name or type by @meziantou in meziantou/Meziantou.Analyzer#1705 * MA0089: fix the single-character constants that are not literals by @meziantou in meziantou/Meziantou.Analyzer#1706 * MA0004: fix the await expressions without semicolon by @meziantou in meziantou/Meziantou.Analyzer#1707 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.308...3.0.309 ## 3.0.308 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308> ## What's Changed * MA0137, MA0138: do not offer the rename when the name would be empty or the declaration does not compile by @meziantou in meziantou/Meziantou.Analyzer#1697 * MA0067: do not report System.Guid used as an attribute by @meziantou in meziantou/Meziantou.Analyzer#1696 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.307...3.0.308 ## 3.0.307 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307> ## What's Changed * MA0002: insert the comparer at the right position when an extension method is called as a static method by @meziantou in meziantou/Meziantou.Analyzer#1670 * MA0044: do not offer the code fix when ToString is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1669 * MA0185: do not offer the code fix when string.Create is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1668 * MA0101: do not offer the code fix for interpolated strings by @meziantou in meziantou/Meziantou.Analyzer#1667 * MA0187: do not offer the code fix when the class has an explicit constructor by @meziantou in meziantou/Meziantou.Analyzer#1666 * MA0004: fix the code fix when the await expression is an argument by @meziantou in meziantou/Meziantou.Analyzer#1665 * MA0102: do not report partial members by @meziantou in meziantou/Meziantou.Analyzer#1664 * MA0093: do not offer EventArgs.Empty when the event args are generic by @meziantou in meziantou/Meziantou.Analyzer#1663 * MA0053: do not report classes used as generic constraints by @meziantou in meziantou/Meziantou.Analyzer#1662 * Overload finder: Half is not implicitly convertible to float or double by @meziantou in meziantou/Meziantou.Analyzer#1661 * MA0042, MA0045: make the enclosing function async in the code fix by @meziantou in meziantou/Meziantou.Analyzer#1660 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.306...3.0.307 ## 3.0.306 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306> ## What's Changed * Allow the fuzzer to open up to 50 issues per run by @meziantou in meziantou/Meziantou.Analyzer#1652 * Build the fuzz project after the other builds of build_with_analyzers by @meziantou in meziantou/Meziantou.Analyzer#1671 * MA0038: fix the analyzer crash on invalid code and the code fixes that break the code by @meziantou in meziantou/Meziantou.Analyzer#1653 * MA0194: do not throw on invalid code by @meziantou in meziantou/Meziantou.Analyzer#1654 * MA0009, MA0023: do not throw when the GeneratedRegex arguments are invalid by @meziantou in meziantou/Meziantou.Analyzer#1655 * MA0110: do not report invalid patterns and fix the partial property used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1656 * MA0182: remove all the parts of a partial type and analyze the delegate signatures by @meziantou in meziantou/Meziantou.Analyzer#1657 * MA0036: do not report classes that contain protected members by @meziantou in meziantou/Meziantou.Analyzer#1658 * MA0137, MA0138: do not rename a method to a name that is already used by @meziantou in meziantou/Meziantou.Analyzer#1659 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.305...3.0.306 ## 3.0.305 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305> ## What's Changed * MA0008: do not overflow the stack on cyclic struct layouts by @meziantou in meziantou/Meziantou.Analyzer#1640 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.304...3.0.305 ## 3.0.304 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304> ## What's Changed * Add fuzz tests for the analyzers and the code fixers by @meziantou in meziantou/Meziantou.Analyzer#1641 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.303...3.0.304 ## 3.0.303 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.303> ## What's Changed * MA0100: do not look up GetAwaiter for the types that cannot be awaited by @meziantou in meziantou/Meziantou.Analyzer#1635 * Reduce the time spent in MA0154, MA0218 and MA0219 by @meziantou in meziantou/Meziantou.Analyzer#1638 * Reduce the time spent in MA0182 by @meziantou in meziantou/Meziantou.Analyzer#1636 * Reduce the time spent in MA0134 by @meziantou in meziantou/Meziantou.Analyzer#1637 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.302...3.0.303 ## 3.0.302 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.302> ## What's Changed * Reduce the time spent in MA0001, MA0002, MA0011, MA0026, MA0074 and MA0150 by @meziantou in meziantou/Meziantou.Analyzer#1634 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.301...3.0.302 ## 3.0.301 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.301> ## What's Changed * Reduce the CPU and the memory used by MA0202 by @meziantou in meziantou/Meziantou.Analyzer#1633 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.300...3.0.301 ## 3.0.300 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.300> ## What's Changed * MA0015, MA0043: do not enumerate all the symbols in scope by @meziantou in meziantou/Meziantou.Analyzer#1632 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.299...3.0.300 Commits viewable in [compare view](meziantou/Meziantou.Analyzer@3.0.299...3.0.312). </details> [](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 Oct 20, 2026
Open
kivilev
pushed a commit
to kivilev/plsql-developer-text-tools
that referenced
this pull request
Oct 21, 2026
Updated [Meziantou.Analyzer](https://github.com/meziantou/Meziantou.Analyzer) from 3.0.303 to 3.0.315. <details> <summary>Release notes</summary> _Sourced from [Meziantou.Analyzer's releases](https://github.com/meziantou/Meziantou.Analyzer/releases)._ ## 3.0.315 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.315> ## What's Changed * Use two generations in BoundedCache instead of sorting the entries by last usage by @meziantou in meziantou/Meziantou.Analyzer#1739 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.314...3.0.315 ## 3.0.314 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.314> ## What's Changed * MA0011: find the overload before computing the culture sensitivity by @meziantou in meziantou/Meziantou.Analyzer#1738 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.313...3.0.314 ## 3.0.313 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.313> ## What's Changed * Fix the CA5394 build error in BoundedCacheTests by @meziantou in meziantou/Meziantou.Analyzer#1735 * MA0243: Use an escape sequence for invisible characters by @meziantou in meziantou/Meziantou.Analyzer#1737 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.312...3.0.313 ## 3.0.312 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.312> ## What's Changed * Read the usage of the cache entries once before sorting them for the eviction by @meziantou in meziantou/Meziantou.Analyzer#1734 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.311...3.0.312 ## 3.0.311 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.311> ## What's Changed * Fuzz: remove the Moq, MSTest, Newtonsoft.Json, NUnit and Serilog package references by @meziantou in meziantou/Meziantou.Analyzer#1712 * Fuzz: report a regression only when the fuzzed commit contains the fix by @meziantou in meziantou/Meziantou.Analyzer#1733 * MA0110: track the node to fix when the regex is in an attribute of the type by @meziantou in meziantou/Meziantou.Analyzer#1731 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.310...3.0.311 ## 3.0.310 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.310> ## What's Changed * MA0190: find the method declaration after updating the call sites by @meziantou in meziantou/Meziantou.Analyzer#1708 * MA0011: do not bind the invocations of attribute arguments speculatively by @meziantou in meziantou/Meziantou.Analyzer#1709 * Fuzz: do not blame the rules for the inputs on which Roslyn fails by @meziantou in meziantou/Meziantou.Analyzer#1710 * MA0010: do not offer the code fix when the class has no name by @meziantou in meziantou/Meziantou.Analyzer#1700 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.309...3.0.310 ## 3.0.309 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.309> ## What's Changed * MA0110: keep the variable when it cannot be removed or renamed by @meziantou in meziantou/Meziantou.Analyzer#1698 * MA0071: do not move the attributes of the else block by @meziantou in meziantou/Meziantou.Analyzer#1699 * MA0077: do not throw when Equals(T) is declared several times by @meziantou in meziantou/Meziantou.Analyzer#1701 * MA0187: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1702 * MA0102: do not offer the code fix when the diagnostic is not on a member by @meziantou in meziantou/Meziantou.Analyzer#1703 * MA0117: do not offer the code fix when the property has no name by @meziantou in meziantou/Meziantou.Analyzer#1704 * MA0189: do not offer the code fix when the fixed buffer has no name or type by @meziantou in meziantou/Meziantou.Analyzer#1705 * MA0089: fix the single-character constants that are not literals by @meziantou in meziantou/Meziantou.Analyzer#1706 * MA0004: fix the await expressions without semicolon by @meziantou in meziantou/Meziantou.Analyzer#1707 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.308...3.0.309 ## 3.0.308 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.308> ## What's Changed * MA0137, MA0138: do not offer the rename when the name would be empty or the declaration does not compile by @meziantou in meziantou/Meziantou.Analyzer#1697 * MA0067: do not report System.Guid used as an attribute by @meziantou in meziantou/Meziantou.Analyzer#1696 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.307...3.0.308 ## 3.0.307 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.307> ## What's Changed * MA0002: insert the comparer at the right position when an extension method is called as a static method by @meziantou in meziantou/Meziantou.Analyzer#1670 * MA0044: do not offer the code fix when ToString is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1669 * MA0185: do not offer the code fix when string.Create is used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1668 * MA0101: do not offer the code fix for interpolated strings by @meziantou in meziantou/Meziantou.Analyzer#1667 * MA0187: do not offer the code fix when the class has an explicit constructor by @meziantou in meziantou/Meziantou.Analyzer#1666 * MA0004: fix the code fix when the await expression is an argument by @meziantou in meziantou/Meziantou.Analyzer#1665 * MA0102: do not report partial members by @meziantou in meziantou/Meziantou.Analyzer#1664 * MA0093: do not offer EventArgs.Empty when the event args are generic by @meziantou in meziantou/Meziantou.Analyzer#1663 * MA0053: do not report classes used as generic constraints by @meziantou in meziantou/Meziantou.Analyzer#1662 * Overload finder: Half is not implicitly convertible to float or double by @meziantou in meziantou/Meziantou.Analyzer#1661 * MA0042, MA0045: make the enclosing function async in the code fix by @meziantou in meziantou/Meziantou.Analyzer#1660 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.306...3.0.307 ## 3.0.306 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.306> ## What's Changed * Allow the fuzzer to open up to 50 issues per run by @meziantou in meziantou/Meziantou.Analyzer#1652 * Build the fuzz project after the other builds of build_with_analyzers by @meziantou in meziantou/Meziantou.Analyzer#1671 * MA0038: fix the analyzer crash on invalid code and the code fixes that break the code by @meziantou in meziantou/Meziantou.Analyzer#1653 * MA0194: do not throw on invalid code by @meziantou in meziantou/Meziantou.Analyzer#1654 * MA0009, MA0023: do not throw when the GeneratedRegex arguments are invalid by @meziantou in meziantou/Meziantou.Analyzer#1655 * MA0110: do not report invalid patterns and fix the partial property used as a statement by @meziantou in meziantou/Meziantou.Analyzer#1656 * MA0182: remove all the parts of a partial type and analyze the delegate signatures by @meziantou in meziantou/Meziantou.Analyzer#1657 * MA0036: do not report classes that contain protected members by @meziantou in meziantou/Meziantou.Analyzer#1658 * MA0137, MA0138: do not rename a method to a name that is already used by @meziantou in meziantou/Meziantou.Analyzer#1659 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.305...3.0.306 ## 3.0.305 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.305> ## What's Changed * MA0008: do not overflow the stack on cyclic struct layouts by @meziantou in meziantou/Meziantou.Analyzer#1640 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.304...3.0.305 ## 3.0.304 NuGet package: <https://www.nuget.org/packages/Meziantou.Analyzer/3.0.304> ## What's Changed * Add fuzz tests for the analyzers and the code fixers by @meziantou in meziantou/Meziantou.Analyzer#1641 **Full Changelog**: meziantou/Meziantou.Analyzer@3.0.303...3.0.304 Commits viewable in [compare view](meziantou/Meziantou.Analyzer@3.0.303...3.0.315). </details> [](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 <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This was referenced Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MA0008 (
UseStructLayoutAttributeAnalyzer) crashed the compiler process with a stack overflow on invalid code where a struct's fields cycle back to the struct (CS0523). A fuzzing campaign found it with this input:Cause
IsBlittableTypefrom Meziantou.Framework.Roslyn recurses into struct fields with no limit. A struct that contains itself, directly or through other structs, makes it recurse forever. A generic struct such asstruct D<T> { D<D<T>> d; }creates a new constructed type at every level, so remembering visited types wouldn't stop it either.Change
IsBlittableType.WithCyclicStruct_ShouldNotReportDiagnostic. It covers a struct that contains itself, two structs that contain each other, and the generic case, and expects CS0523 and no MA0008.Testing
UseStructLayoutAttributeAnalyzerTestspass on roslyn5.9 and roslyn4.8.dotnet run --project src/DocumentationGeneratorchanges no files.Note for reviewers: test restore currently fails on
mainwith NU1902/NU1903 (System.Security.Cryptography.Pkcs 9.0.6 advisory, pulled in by the Roslyn testing packages). I ran the tests locally with-p:NuGetAudit=false. This PR doesn't change anything about that.