Full Code of SonarSource/sonar-csharp for AI

master cf16e98336f4 cached
6476 files
21.9 MB
6.1M tokens
36372 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (24,522K chars total). Download the full file to get everything.
Repository: SonarSource/sonar-csharp
Branch: master
Commit: cf16e98336f4
Files: 6476
Total size: 21.9 MB

Directory structure:
gitextract_opbg6mf9/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── GitHub.shproj
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-FalsePositive.yml
│   │   ├── 2-FalseNegative.yml
│   │   ├── 3-AD0001.yml
│   │   ├── 4-NewRule.yml
│   │   └── config.yml
│   └── workflows/
│       ├── LabelIssue.yml
│       └── SlackNotification.yml
├── .gitignore
├── .globalconfig
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── SECURITY.md
├── analyzers/
│   ├── .runsettings
│   ├── CI.NuGet.Config
│   ├── CodeAnalysis.targets
│   ├── Common.targets
│   ├── README.md
│   ├── SonarAnalyzer.sln
│   ├── Version.targets
│   ├── packaging/
│   │   ├── Licenses/
│   │   │   └── THIRD_PARTY_LICENSES/
│   │   │       ├── Google.Protobuf-LICENSE.txt
│   │   │       ├── Roslyn-LICENSE.txt
│   │   │       └── StyleCop.Analyzers-LICENSE.txt
│   │   ├── SonarAnalyzer.CFG.nuspec
│   │   ├── SonarAnalyzer.CSharp.Styling.nuspec
│   │   ├── SonarAnalyzer.CSharp.nuspec
│   │   ├── SonarAnalyzer.VisualBasic.nuspec
│   │   ├── tools-cs/
│   │   │   ├── install.ps1
│   │   │   └── uninstall.ps1
│   │   └── tools-vbnet/
│   │       ├── install.ps1
│   │       └── uninstall.ps1
│   ├── rspec/
│   │   ├── cs/
│   │   │   ├── S100.html
│   │   │   ├── S100.json
│   │   │   ├── S1006.html
│   │   │   ├── S1006.json
│   │   │   ├── S101.html
│   │   │   ├── S101.json
│   │   │   ├── S103.html
│   │   │   ├── S103.json
│   │   │   ├── S104.html
│   │   │   ├── S104.json
│   │   │   ├── S1048.html
│   │   │   ├── S1048.json
│   │   │   ├── S105.html
│   │   │   ├── S105.json
│   │   │   ├── S106.html
│   │   │   ├── S106.json
│   │   │   ├── S1066.html
│   │   │   ├── S1066.json
│   │   │   ├── S1067.html
│   │   │   ├── S1067.json
│   │   │   ├── S107.html
│   │   │   ├── S107.json
│   │   │   ├── S1075.html
│   │   │   ├── S1075.json
│   │   │   ├── S108.html
│   │   │   ├── S108.json
│   │   │   ├── S109.html
│   │   │   ├── S109.json
│   │   │   ├── S110.html
│   │   │   ├── S110.json
│   │   │   ├── S1104.html
│   │   │   ├── S1104.json
│   │   │   ├── S1109.html
│   │   │   ├── S1109.json
│   │   │   ├── S1110.html
│   │   │   ├── S1110.json
│   │   │   ├── S1116.html
│   │   │   ├── S1116.json
│   │   │   ├── S1117.html
│   │   │   ├── S1117.json
│   │   │   ├── S1118.html
│   │   │   ├── S1118.json
│   │   │   ├── S112.html
│   │   │   ├── S112.json
│   │   │   ├── S1121.html
│   │   │   ├── S1121.json
│   │   │   ├── S1123.html
│   │   │   ├── S1123.json
│   │   │   ├── S1125.html
│   │   │   ├── S1125.json
│   │   │   ├── S1128.html
│   │   │   ├── S1128.json
│   │   │   ├── S113.html
│   │   │   ├── S113.json
│   │   │   ├── S1133.html
│   │   │   ├── S1133.json
│   │   │   ├── S1134.html
│   │   │   ├── S1134.json
│   │   │   ├── S1135.html
│   │   │   ├── S1135.json
│   │   │   ├── S1144.html
│   │   │   ├── S1144.json
│   │   │   ├── S1147.html
│   │   │   ├── S1147.json
│   │   │   ├── S1151.html
│   │   │   ├── S1151.json
│   │   │   ├── S1155.html
│   │   │   ├── S1155.json
│   │   │   ├── S1163.html
│   │   │   ├── S1163.json
│   │   │   ├── S1168.html
│   │   │   ├── S1168.json
│   │   │   ├── S1172.html
│   │   │   ├── S1172.json
│   │   │   ├── S1185.html
│   │   │   ├── S1185.json
│   │   │   ├── S1186.html
│   │   │   ├── S1186.json
│   │   │   ├── S1192.html
│   │   │   ├── S1192.json
│   │   │   ├── S1199.html
│   │   │   ├── S1199.json
│   │   │   ├── S1200.html
│   │   │   ├── S1200.json
│   │   │   ├── S1206.html
│   │   │   ├── S1206.json
│   │   │   ├── S121.html
│   │   │   ├── S121.json
│   │   │   ├── S1210.html
│   │   │   ├── S1210.json
│   │   │   ├── S1215.html
│   │   │   ├── S1215.json
│   │   │   ├── S122.html
│   │   │   ├── S122.json
│   │   │   ├── S1226.html
│   │   │   ├── S1226.json
│   │   │   ├── S1227.html
│   │   │   ├── S1227.json
│   │   │   ├── S1244.html
│   │   │   ├── S1244.json
│   │   │   ├── S125.html
│   │   │   ├── S125.json
│   │   │   ├── S126.html
│   │   │   ├── S126.json
│   │   │   ├── S1264.html
│   │   │   ├── S1264.json
│   │   │   ├── S127.html
│   │   │   ├── S127.json
│   │   │   ├── S1301.html
│   │   │   ├── S1301.json
│   │   │   ├── S1309.html
│   │   │   ├── S1309.json
│   │   │   ├── S131.html
│   │   │   ├── S131.json
│   │   │   ├── S1312.html
│   │   │   ├── S1312.json
│   │   │   ├── S1313.html
│   │   │   ├── S1313.json
│   │   │   ├── S134.html
│   │   │   ├── S134.json
│   │   │   ├── S138.html
│   │   │   ├── S138.json
│   │   │   ├── S1449.html
│   │   │   ├── S1449.json
│   │   │   ├── S1450.html
│   │   │   ├── S1450.json
│   │   │   ├── S1451.html
│   │   │   ├── S1451.json
│   │   │   ├── S1479.html
│   │   │   ├── S1479.json
│   │   │   ├── S1481.html
│   │   │   ├── S1481.json
│   │   │   ├── S1541.html
│   │   │   ├── S1541.json
│   │   │   ├── S1607.html
│   │   │   ├── S1607.json
│   │   │   ├── S1643.html
│   │   │   ├── S1643.json
│   │   │   ├── S1656.html
│   │   │   ├── S1656.json
│   │   │   ├── S1659.html
│   │   │   ├── S1659.json
│   │   │   ├── S1694.html
│   │   │   ├── S1694.json
│   │   │   ├── S1696.html
│   │   │   ├── S1696.json
│   │   │   ├── S1698.html
│   │   │   ├── S1698.json
│   │   │   ├── S1699.html
│   │   │   ├── S1699.json
│   │   │   ├── S1751.html
│   │   │   ├── S1751.json
│   │   │   ├── S1764.html
│   │   │   ├── S1764.json
│   │   │   ├── S1821.html
│   │   │   ├── S1821.json
│   │   │   ├── S1848.html
│   │   │   ├── S1848.json
│   │   │   ├── S1854.html
│   │   │   ├── S1854.json
│   │   │   ├── S1858.html
│   │   │   ├── S1858.json
│   │   │   ├── S1862.html
│   │   │   ├── S1862.json
│   │   │   ├── S1871.html
│   │   │   ├── S1871.json
│   │   │   ├── S1905.html
│   │   │   ├── S1905.json
│   │   │   ├── S1939.html
│   │   │   ├── S1939.json
│   │   │   ├── S1940.html
│   │   │   ├── S1940.json
│   │   │   ├── S1944.html
│   │   │   ├── S1944.json
│   │   │   ├── S1994.html
│   │   │   ├── S1994.json
│   │   │   ├── S2053.html
│   │   │   ├── S2053.json
│   │   │   ├── S2068.html
│   │   │   ├── S2068.json
│   │   │   ├── S2077.html
│   │   │   ├── S2077.json
│   │   │   ├── S2092.html
│   │   │   ├── S2092.json
│   │   │   ├── S2094.html
│   │   │   ├── S2094.json
│   │   │   ├── S2114.html
│   │   │   ├── S2114.json
│   │   │   ├── S2115.html
│   │   │   ├── S2115.json
│   │   │   ├── S2123.html
│   │   │   ├── S2123.json
│   │   │   ├── S2139.html
│   │   │   ├── S2139.json
│   │   │   ├── S2148.html
│   │   │   ├── S2148.json
│   │   │   ├── S2156.html
│   │   │   ├── S2156.json
│   │   │   ├── S2166.html
│   │   │   ├── S2166.json
│   │   │   ├── S2178.html
│   │   │   ├── S2178.json
│   │   │   ├── S2183.html
│   │   │   ├── S2183.json
│   │   │   ├── S2184.html
│   │   │   ├── S2184.json
│   │   │   ├── S2187.html
│   │   │   ├── S2187.json
│   │   │   ├── S2190.html
│   │   │   ├── S2190.json
│   │   │   ├── S2197.html
│   │   │   ├── S2197.json
│   │   │   ├── S2198.html
│   │   │   ├── S2198.json
│   │   │   ├── S2201.html
│   │   │   ├── S2201.json
│   │   │   ├── S2219.html
│   │   │   ├── S2219.json
│   │   │   ├── S2221.html
│   │   │   ├── S2221.json
│   │   │   ├── S2222.html
│   │   │   ├── S2222.json
│   │   │   ├── S2223.html
│   │   │   ├── S2223.json
│   │   │   ├── S2225.html
│   │   │   ├── S2225.json
│   │   │   ├── S2234.html
│   │   │   ├── S2234.json
│   │   │   ├── S2245.html
│   │   │   ├── S2245.json
│   │   │   ├── S2251.html
│   │   │   ├── S2251.json
│   │   │   ├── S2252.html
│   │   │   ├── S2252.json
│   │   │   ├── S2257.html
│   │   │   ├── S2257.json
│   │   │   ├── S2259.html
│   │   │   ├── S2259.json
│   │   │   ├── S2275.html
│   │   │   ├── S2275.json
│   │   │   ├── S2290.html
│   │   │   ├── S2290.json
│   │   │   ├── S2291.html
│   │   │   ├── S2291.json
│   │   │   ├── S2292.html
│   │   │   ├── S2292.json
│   │   │   ├── S2302.html
│   │   │   ├── S2302.json
│   │   │   ├── S2306.html
│   │   │   ├── S2306.json
│   │   │   ├── S2325.html
│   │   │   ├── S2325.json
│   │   │   ├── S2326.html
│   │   │   ├── S2326.json
│   │   │   ├── S2327.html
│   │   │   ├── S2327.json
│   │   │   ├── S2328.html
│   │   │   ├── S2328.json
│   │   │   ├── S2330.html
│   │   │   ├── S2330.json
│   │   │   ├── S2333.html
│   │   │   ├── S2333.json
│   │   │   ├── S2339.html
│   │   │   ├── S2339.json
│   │   │   ├── S2342.html
│   │   │   ├── S2342.json
│   │   │   ├── S2344.html
│   │   │   ├── S2344.json
│   │   │   ├── S2345.html
│   │   │   ├── S2345.json
│   │   │   ├── S2346.html
│   │   │   ├── S2346.json
│   │   │   ├── S2357.html
│   │   │   ├── S2357.json
│   │   │   ├── S2360.html
│   │   │   ├── S2360.json
│   │   │   ├── S2365.html
│   │   │   ├── S2365.json
│   │   │   ├── S2368.html
│   │   │   ├── S2368.json
│   │   │   ├── S2372.html
│   │   │   ├── S2372.json
│   │   │   ├── S2376.html
│   │   │   ├── S2376.json
│   │   │   ├── S2386.html
│   │   │   ├── S2386.json
│   │   │   ├── S2387.html
│   │   │   ├── S2387.json
│   │   │   ├── S2436.html
│   │   │   ├── S2436.json
│   │   │   ├── S2437.html
│   │   │   ├── S2437.json
│   │   │   ├── S2445.html
│   │   │   ├── S2445.json
│   │   │   ├── S2479.html
│   │   │   ├── S2479.json
│   │   │   ├── S2486.html
│   │   │   ├── S2486.json
│   │   │   ├── S2551.html
│   │   │   ├── S2551.json
│   │   │   ├── S2583.html
│   │   │   ├── S2583.json
│   │   │   ├── S2589.html
│   │   │   ├── S2589.json
│   │   │   ├── S2612.html
│   │   │   ├── S2612.json
│   │   │   ├── S2629.html
│   │   │   ├── S2629.json
│   │   │   ├── S2674.html
│   │   │   ├── S2674.json
│   │   │   ├── S2681.html
│   │   │   ├── S2681.json
│   │   │   ├── S2688.html
│   │   │   ├── S2688.json
│   │   │   ├── S2692.html
│   │   │   ├── S2692.json
│   │   │   ├── S2696.html
│   │   │   ├── S2696.json
│   │   │   ├── S2699.html
│   │   │   ├── S2699.json
│   │   │   ├── S2701.html
│   │   │   ├── S2701.json
│   │   │   ├── S2737.html
│   │   │   ├── S2737.json
│   │   │   ├── S2743.html
│   │   │   ├── S2743.json
│   │   │   ├── S2755.html
│   │   │   ├── S2755.json
│   │   │   ├── S2757.html
│   │   │   ├── S2757.json
│   │   │   ├── S2760.html
│   │   │   ├── S2760.json
│   │   │   ├── S2761.html
│   │   │   ├── S2761.json
│   │   │   ├── S2857.html
│   │   │   ├── S2857.json
│   │   │   ├── S2925.html
│   │   │   ├── S2925.json
│   │   │   ├── S2930.html
│   │   │   ├── S2930.json
│   │   │   ├── S2931.html
│   │   │   ├── S2931.json
│   │   │   ├── S2933.html
│   │   │   ├── S2933.json
│   │   │   ├── S2934.html
│   │   │   ├── S2934.json
│   │   │   ├── S2952.html
│   │   │   ├── S2952.json
│   │   │   ├── S2953.html
│   │   │   ├── S2953.json
│   │   │   ├── S2955.html
│   │   │   ├── S2955.json
│   │   │   ├── S2970.html
│   │   │   ├── S2970.json
│   │   │   ├── S2971.html
│   │   │   ├── S2971.json
│   │   │   ├── S2995.html
│   │   │   ├── S2995.json
│   │   │   ├── S2996.html
│   │   │   ├── S2996.json
│   │   │   ├── S2997.html
│   │   │   ├── S2997.json
│   │   │   ├── S3005.html
│   │   │   ├── S3005.json
│   │   │   ├── S3010.html
│   │   │   ├── S3010.json
│   │   │   ├── S3011.html
│   │   │   ├── S3011.json
│   │   │   ├── S3052.html
│   │   │   ├── S3052.json
│   │   │   ├── S3059.html
│   │   │   ├── S3059.json
│   │   │   ├── S3060.html
│   │   │   ├── S3060.json
│   │   │   ├── S3063.html
│   │   │   ├── S3063.json
│   │   │   ├── S3168.html
│   │   │   ├── S3168.json
│   │   │   ├── S3169.html
│   │   │   ├── S3169.json
│   │   │   ├── S3172.html
│   │   │   ├── S3172.json
│   │   │   ├── S3215.html
│   │   │   ├── S3215.json
│   │   │   ├── S3216.html
│   │   │   ├── S3216.json
│   │   │   ├── S3217.html
│   │   │   ├── S3217.json
│   │   │   ├── S3218.html
│   │   │   ├── S3218.json
│   │   │   ├── S3220.html
│   │   │   ├── S3220.json
│   │   │   ├── S3234.html
│   │   │   ├── S3234.json
│   │   │   ├── S3235.html
│   │   │   ├── S3235.json
│   │   │   ├── S3236.html
│   │   │   ├── S3236.json
│   │   │   ├── S3237.html
│   │   │   ├── S3237.json
│   │   │   ├── S3240.html
│   │   │   ├── S3240.json
│   │   │   ├── S3241.html
│   │   │   ├── S3241.json
│   │   │   ├── S3242.html
│   │   │   ├── S3242.json
│   │   │   ├── S3244.html
│   │   │   ├── S3244.json
│   │   │   ├── S3246.html
│   │   │   ├── S3246.json
│   │   │   ├── S3247.html
│   │   │   ├── S3247.json
│   │   │   ├── S3249.html
│   │   │   ├── S3249.json
│   │   │   ├── S3251.html
│   │   │   ├── S3251.json
│   │   │   ├── S3253.html
│   │   │   ├── S3253.json
│   │   │   ├── S3254.html
│   │   │   ├── S3254.json
│   │   │   ├── S3256.html
│   │   │   ├── S3256.json
│   │   │   ├── S3257.html
│   │   │   ├── S3257.json
│   │   │   ├── S3260.html
│   │   │   ├── S3260.json
│   │   │   ├── S3261.html
│   │   │   ├── S3261.json
│   │   │   ├── S3262.html
│   │   │   ├── S3262.json
│   │   │   ├── S3263.html
│   │   │   ├── S3263.json
│   │   │   ├── S3264.html
│   │   │   ├── S3264.json
│   │   │   ├── S3265.html
│   │   │   ├── S3265.json
│   │   │   ├── S3267.html
│   │   │   ├── S3267.json
│   │   │   ├── S3329.html
│   │   │   ├── S3329.json
│   │   │   ├── S3330.html
│   │   │   ├── S3330.json
│   │   │   ├── S3343.html
│   │   │   ├── S3343.json
│   │   │   ├── S3346.html
│   │   │   ├── S3346.json
│   │   │   ├── S3353.html
│   │   │   ├── S3353.json
│   │   │   ├── S3358.html
│   │   │   ├── S3358.json
│   │   │   ├── S3363.html
│   │   │   ├── S3363.json
│   │   │   ├── S3366.html
│   │   │   ├── S3366.json
│   │   │   ├── S3376.html
│   │   │   ├── S3376.json
│   │   │   ├── S3397.html
│   │   │   ├── S3397.json
│   │   │   ├── S3398.html
│   │   │   ├── S3398.json
│   │   │   ├── S3400.html
│   │   │   ├── S3400.json
│   │   │   ├── S3415.html
│   │   │   ├── S3415.json
│   │   │   ├── S3416.html
│   │   │   ├── S3416.json
│   │   │   ├── S3427.html
│   │   │   ├── S3427.json
│   │   │   ├── S3431.html
│   │   │   ├── S3431.json
│   │   │   ├── S3433.html
│   │   │   ├── S3433.json
│   │   │   ├── S3440.html
│   │   │   ├── S3440.json
│   │   │   ├── S3441.html
│   │   │   ├── S3441.json
│   │   │   ├── S3442.html
│   │   │   ├── S3442.json
│   │   │   ├── S3443.html
│   │   │   ├── S3443.json
│   │   │   ├── S3444.html
│   │   │   ├── S3444.json
│   │   │   ├── S3445.html
│   │   │   ├── S3445.json
│   │   │   ├── S3447.html
│   │   │   ├── S3447.json
│   │   │   ├── S3449.html
│   │   │   ├── S3449.json
│   │   │   ├── S3450.html
│   │   │   ├── S3450.json
│   │   │   ├── S3451.html
│   │   │   ├── S3451.json
│   │   │   ├── S3453.html
│   │   │   ├── S3453.json
│   │   │   ├── S3456.html
│   │   │   ├── S3456.json
│   │   │   ├── S3457.html
│   │   │   ├── S3457.json
│   │   │   ├── S3458.html
│   │   │   ├── S3458.json
│   │   │   ├── S3459.html
│   │   │   ├── S3459.json
│   │   │   ├── S3464.html
│   │   │   ├── S3464.json
│   │   │   ├── S3466.html
│   │   │   ├── S3466.json
│   │   │   ├── S3532.html
│   │   │   ├── S3532.json
│   │   │   ├── S3597.html
│   │   │   ├── S3597.json
│   │   │   ├── S3598.html
│   │   │   ├── S3598.json
│   │   │   ├── S3600.html
│   │   │   ├── S3600.json
│   │   │   ├── S3603.html
│   │   │   ├── S3603.json
│   │   │   ├── S3604.html
│   │   │   ├── S3604.json
│   │   │   ├── S3610.html
│   │   │   ├── S3610.json
│   │   │   ├── S3626.html
│   │   │   ├── S3626.json
│   │   │   ├── S3655.html
│   │   │   ├── S3655.json
│   │   │   ├── S3717.html
│   │   │   ├── S3717.json
│   │   │   ├── S3776.html
│   │   │   ├── S3776.json
│   │   │   ├── S3869.html
│   │   │   ├── S3869.json
│   │   │   ├── S3871.html
│   │   │   ├── S3871.json
│   │   │   ├── S3872.html
│   │   │   ├── S3872.json
│   │   │   ├── S3874.html
│   │   │   ├── S3874.json
│   │   │   ├── S3875.html
│   │   │   ├── S3875.json
│   │   │   ├── S3876.html
│   │   │   ├── S3876.json
│   │   │   ├── S3877.html
│   │   │   ├── S3877.json
│   │   │   ├── S3878.html
│   │   │   ├── S3878.json
│   │   │   ├── S3880.html
│   │   │   ├── S3880.json
│   │   │   ├── S3881.html
│   │   │   ├── S3881.json
│   │   │   ├── S3884.html
│   │   │   ├── S3884.json
│   │   │   ├── S3885.html
│   │   │   ├── S3885.json
│   │   │   ├── S3887.html
│   │   │   ├── S3887.json
│   │   │   ├── S3889.html
│   │   │   ├── S3889.json
│   │   │   ├── S3897.html
│   │   │   ├── S3897.json
│   │   │   ├── S3898.html
│   │   │   ├── S3898.json
│   │   │   ├── S3900.html
│   │   │   ├── S3900.json
│   │   │   ├── S3902.html
│   │   │   ├── S3902.json
│   │   │   ├── S3903.html
│   │   │   ├── S3903.json
│   │   │   ├── S3904.html
│   │   │   ├── S3904.json
│   │   │   ├── S3906.html
│   │   │   ├── S3906.json
│   │   │   ├── S3908.html
│   │   │   ├── S3908.json
│   │   │   ├── S3909.html
│   │   │   ├── S3909.json
│   │   │   ├── S3923.html
│   │   │   ├── S3923.json
│   │   │   ├── S3925.html
│   │   │   ├── S3925.json
│   │   │   ├── S3926.html
│   │   │   ├── S3926.json
│   │   │   ├── S3927.html
│   │   │   ├── S3927.json
│   │   │   ├── S3928.html
│   │   │   ├── S3928.json
│   │   │   ├── S3937.html
│   │   │   ├── S3937.json
│   │   │   ├── S3949.html
│   │   │   ├── S3949.json
│   │   │   ├── S3956.html
│   │   │   ├── S3956.json
│   │   │   ├── S3962.html
│   │   │   ├── S3962.json
│   │   │   ├── S3963.html
│   │   │   ├── S3963.json
│   │   │   ├── S3966.html
│   │   │   ├── S3966.json
│   │   │   ├── S3967.html
│   │   │   ├── S3967.json
│   │   │   ├── S3971.html
│   │   │   ├── S3971.json
│   │   │   ├── S3972.html
│   │   │   ├── S3972.json
│   │   │   ├── S3973.html
│   │   │   ├── S3973.json
│   │   │   ├── S3981.html
│   │   │   ├── S3981.json
│   │   │   ├── S3984.html
│   │   │   ├── S3984.json
│   │   │   ├── S3990.html
│   │   │   ├── S3990.json
│   │   │   ├── S3992.html
│   │   │   ├── S3992.json
│   │   │   ├── S3993.html
│   │   │   ├── S3993.json
│   │   │   ├── S3994.html
│   │   │   ├── S3994.json
│   │   │   ├── S3995.html
│   │   │   ├── S3995.json
│   │   │   ├── S3996.html
│   │   │   ├── S3996.json
│   │   │   ├── S3997.html
│   │   │   ├── S3997.json
│   │   │   ├── S3998.html
│   │   │   ├── S3998.json
│   │   │   ├── S4000.html
│   │   │   ├── S4000.json
│   │   │   ├── S4002.html
│   │   │   ├── S4002.json
│   │   │   ├── S4004.html
│   │   │   ├── S4004.json
│   │   │   ├── S4005.html
│   │   │   ├── S4005.json
│   │   │   ├── S4015.html
│   │   │   ├── S4015.json
│   │   │   ├── S4016.html
│   │   │   ├── S4016.json
│   │   │   ├── S4017.html
│   │   │   ├── S4017.json
│   │   │   ├── S4018.html
│   │   │   ├── S4018.json
│   │   │   ├── S4019.html
│   │   │   ├── S4019.json
│   │   │   ├── S4022.html
│   │   │   ├── S4022.json
│   │   │   ├── S4023.html
│   │   │   ├── S4023.json
│   │   │   ├── S4025.html
│   │   │   ├── S4025.json
│   │   │   ├── S4026.html
│   │   │   ├── S4026.json
│   │   │   ├── S4027.html
│   │   │   ├── S4027.json
│   │   │   ├── S4035.html
│   │   │   ├── S4035.json
│   │   │   ├── S4036.html
│   │   │   ├── S4036.json
│   │   │   ├── S4039.html
│   │   │   ├── S4039.json
│   │   │   ├── S4040.html
│   │   │   ├── S4040.json
│   │   │   ├── S4041.html
│   │   │   ├── S4041.json
│   │   │   ├── S4047.html
│   │   │   ├── S4047.json
│   │   │   ├── S4049.html
│   │   │   ├── S4049.json
│   │   │   ├── S4050.html
│   │   │   ├── S4050.json
│   │   │   ├── S4052.html
│   │   │   ├── S4052.json
│   │   │   ├── S4055.html
│   │   │   ├── S4055.json
│   │   │   ├── S4056.html
│   │   │   ├── S4056.json
│   │   │   ├── S4057.html
│   │   │   ├── S4057.json
│   │   │   ├── S4058.html
│   │   │   ├── S4058.json
│   │   │   ├── S4059.html
│   │   │   ├── S4059.json
│   │   │   ├── S4060.html
│   │   │   ├── S4060.json
│   │   │   ├── S4061.html
│   │   │   ├── S4061.json
│   │   │   ├── S4069.html
│   │   │   ├── S4069.json
│   │   │   ├── S4070.html
│   │   │   ├── S4070.json
│   │   │   ├── S4136.html
│   │   │   ├── S4136.json
│   │   │   ├── S4143.html
│   │   │   ├── S4143.json
│   │   │   ├── S4144.html
│   │   │   ├── S4144.json
│   │   │   ├── S4158.html
│   │   │   ├── S4158.json
│   │   │   ├── S4159.html
│   │   │   ├── S4159.json
│   │   │   ├── S4200.html
│   │   │   ├── S4200.json
│   │   │   ├── S4201.html
│   │   │   ├── S4201.json
│   │   │   ├── S4210.html
│   │   │   ├── S4210.json
│   │   │   ├── S4211.html
│   │   │   ├── S4211.json
│   │   │   ├── S4212.html
│   │   │   ├── S4212.json
│   │   │   ├── S4214.html
│   │   │   ├── S4214.json
│   │   │   ├── S4220.html
│   │   │   ├── S4220.json
│   │   │   ├── S4225.html
│   │   │   ├── S4225.json
│   │   │   ├── S4226.html
│   │   │   ├── S4226.json
│   │   │   ├── S4260.html
│   │   │   ├── S4260.json
│   │   │   ├── S4261.html
│   │   │   ├── S4261.json
│   │   │   ├── S4275.html
│   │   │   ├── S4275.json
│   │   │   ├── S4277.html
│   │   │   ├── S4277.json
│   │   │   ├── S4347.html
│   │   │   ├── S4347.json
│   │   │   ├── S4423.html
│   │   │   ├── S4423.json
│   │   │   ├── S4426.html
│   │   │   ├── S4426.json
│   │   │   ├── S4428.html
│   │   │   ├── S4428.json
│   │   │   ├── S4433.html
│   │   │   ├── S4433.json
│   │   │   ├── S4456.html
│   │   │   ├── S4456.json
│   │   │   ├── S4457.html
│   │   │   ├── S4457.json
│   │   │   ├── S4462.html
│   │   │   ├── S4462.json
│   │   │   ├── S4487.html
│   │   │   ├── S4487.json
│   │   │   ├── S4502.html
│   │   │   ├── S4502.json
│   │   │   ├── S4507.html
│   │   │   ├── S4507.json
│   │   │   ├── S4524.html
│   │   │   ├── S4524.json
│   │   │   ├── S4545.html
│   │   │   ├── S4545.json
│   │   │   ├── S4581.html
│   │   │   ├── S4581.json
│   │   │   ├── S4583.html
│   │   │   ├── S4583.json
│   │   │   ├── S4586.html
│   │   │   ├── S4586.json
│   │   │   ├── S4635.html
│   │   │   ├── S4635.json
│   │   │   ├── S4663.html
│   │   │   ├── S4663.json
│   │   │   ├── S4790.html
│   │   │   ├── S4790.json
│   │   │   ├── S4792.html
│   │   │   ├── S4792.json
│   │   │   ├── S4830.html
│   │   │   ├── S4830.json
│   │   │   ├── S5034.html
│   │   │   ├── S5034.json
│   │   │   ├── S5042.html
│   │   │   ├── S5042.json
│   │   │   ├── S5122.html
│   │   │   ├── S5122.json
│   │   │   ├── S5332.html
│   │   │   ├── S5332.json
│   │   │   ├── S5344.html
│   │   │   ├── S5344.json
│   │   │   ├── S5443.html
│   │   │   ├── S5443.json
│   │   │   ├── S5445.html
│   │   │   ├── S5445.json
│   │   │   ├── S5542.html
│   │   │   ├── S5542.json
│   │   │   ├── S5547.html
│   │   │   ├── S5547.json
│   │   │   ├── S5659.html
│   │   │   ├── S5659.json
│   │   │   ├── S5693.html
│   │   │   ├── S5693.json
│   │   │   ├── S5753.html
│   │   │   ├── S5753.json
│   │   │   ├── S5766.html
│   │   │   ├── S5766.json
│   │   │   ├── S5773.html
│   │   │   ├── S5773.json
│   │   │   ├── S5856.html
│   │   │   ├── S5856.json
│   │   │   ├── S6354.html
│   │   │   ├── S6354.json
│   │   │   ├── S6377.html
│   │   │   ├── S6377.json
│   │   │   ├── S6418.html
│   │   │   ├── S6418.json
│   │   │   ├── S6419.html
│   │   │   ├── S6419.json
│   │   │   ├── S6420.html
│   │   │   ├── S6420.json
│   │   │   ├── S6421.html
│   │   │   ├── S6421.json
│   │   │   ├── S6422.html
│   │   │   ├── S6422.json
│   │   │   ├── S6423.html
│   │   │   ├── S6423.json
│   │   │   ├── S6424.html
│   │   │   ├── S6424.json
│   │   │   ├── S6444.html
│   │   │   ├── S6444.json
│   │   │   ├── S6507.html
│   │   │   ├── S6507.json
│   │   │   ├── S6513.html
│   │   │   ├── S6513.json
│   │   │   ├── S6561.html
│   │   │   ├── S6561.json
│   │   │   ├── S6562.html
│   │   │   ├── S6562.json
│   │   │   ├── S6563.html
│   │   │   ├── S6563.json
│   │   │   ├── S6566.html
│   │   │   ├── S6566.json
│   │   │   ├── S6575.html
│   │   │   ├── S6575.json
│   │   │   ├── S6580.html
│   │   │   ├── S6580.json
│   │   │   ├── S6585.html
│   │   │   ├── S6585.json
│   │   │   ├── S6588.html
│   │   │   ├── S6588.json
│   │   │   ├── S6602.html
│   │   │   ├── S6602.json
│   │   │   ├── S6603.html
│   │   │   ├── S6603.json
│   │   │   ├── S6605.html
│   │   │   ├── S6605.json
│   │   │   ├── S6607.html
│   │   │   ├── S6607.json
│   │   │   ├── S6608.html
│   │   │   ├── S6608.json
│   │   │   ├── S6609.html
│   │   │   ├── S6609.json
│   │   │   ├── S6610.html
│   │   │   ├── S6610.json
│   │   │   ├── S6612.html
│   │   │   ├── S6612.json
│   │   │   ├── S6613.html
│   │   │   ├── S6613.json
│   │   │   ├── S6617.html
│   │   │   ├── S6617.json
│   │   │   ├── S6618.html
│   │   │   ├── S6618.json
│   │   │   ├── S6640.html
│   │   │   ├── S6640.json
│   │   │   ├── S6664.html
│   │   │   ├── S6664.json
│   │   │   ├── S6667.html
│   │   │   ├── S6667.json
│   │   │   ├── S6668.html
│   │   │   ├── S6668.json
│   │   │   ├── S6669.html
│   │   │   ├── S6669.json
│   │   │   ├── S6670.html
│   │   │   ├── S6670.json
│   │   │   ├── S6672.html
│   │   │   ├── S6672.json
│   │   │   ├── S6673.html
│   │   │   ├── S6673.json
│   │   │   ├── S6674.html
│   │   │   ├── S6674.json
│   │   │   ├── S6675.html
│   │   │   ├── S6675.json
│   │   │   ├── S6677.html
│   │   │   ├── S6677.json
│   │   │   ├── S6678.html
│   │   │   ├── S6678.json
│   │   │   ├── S6781.html
│   │   │   ├── S6781.json
│   │   │   ├── S6797.html
│   │   │   ├── S6797.json
│   │   │   ├── S6798.html
│   │   │   ├── S6798.json
│   │   │   ├── S6800.html
│   │   │   ├── S6800.json
│   │   │   ├── S6802.html
│   │   │   ├── S6802.json
│   │   │   ├── S6803.html
│   │   │   ├── S6803.json
│   │   │   ├── S6930.html
│   │   │   ├── S6930.json
│   │   │   ├── S6931.html
│   │   │   ├── S6931.json
│   │   │   ├── S6932.html
│   │   │   ├── S6932.json
│   │   │   ├── S6934.html
│   │   │   ├── S6934.json
│   │   │   ├── S6960.html
│   │   │   ├── S6960.json
│   │   │   ├── S6961.html
│   │   │   ├── S6961.json
│   │   │   ├── S6962.html
│   │   │   ├── S6962.json
│   │   │   ├── S6964.html
│   │   │   ├── S6964.json
│   │   │   ├── S6965.html
│   │   │   ├── S6965.json
│   │   │   ├── S6966.html
│   │   │   ├── S6966.json
│   │   │   ├── S6967.html
│   │   │   ├── S6967.json
│   │   │   ├── S6968.html
│   │   │   ├── S6968.json
│   │   │   ├── S7039.html
│   │   │   ├── S7039.json
│   │   │   ├── S7130.html
│   │   │   ├── S7130.json
│   │   │   ├── S7131.html
│   │   │   ├── S7131.json
│   │   │   ├── S7133.html
│   │   │   ├── S7133.json
│   │   │   ├── S818.html
│   │   │   ├── S818.json
│   │   │   ├── S8367.html
│   │   │   ├── S8367.json
│   │   │   ├── S8368.html
│   │   │   ├── S8368.json
│   │   │   ├── S8380.html
│   │   │   ├── S8380.json
│   │   │   ├── S8381.html
│   │   │   ├── S8381.json
│   │   │   ├── S881.html
│   │   │   ├── S881.json
│   │   │   ├── S907.html
│   │   │   ├── S907.json
│   │   │   ├── S927.html
│   │   │   ├── S927.json
│   │   │   └── Sonar_way_profile.json
│   │   └── vbnet/
│   │       ├── S101.html
│   │       ├── S101.json
│   │       ├── S103.html
│   │       ├── S103.json
│   │       ├── S104.html
│   │       ├── S104.json
│   │       ├── S1048.html
│   │       ├── S1048.json
│   │       ├── S105.html
│   │       ├── S105.json
│   │       ├── S1066.html
│   │       ├── S1066.json
│   │       ├── S1067.html
│   │       ├── S1067.json
│   │       ├── S107.html
│   │       ├── S107.json
│   │       ├── S1075.html
│   │       ├── S1075.json
│   │       ├── S108.html
│   │       ├── S108.json
│   │       ├── S1110.html
│   │       ├── S1110.json
│   │       ├── S112.html
│   │       ├── S112.json
│   │       ├── S1123.html
│   │       ├── S1123.json
│   │       ├── S1125.html
│   │       ├── S1125.json
│   │       ├── S1133.html
│   │       ├── S1133.json
│   │       ├── S1134.html
│   │       ├── S1134.json
│   │       ├── S1135.html
│   │       ├── S1135.json
│   │       ├── S114.html
│   │       ├── S114.json
│   │       ├── S1147.html
│   │       ├── S1147.json
│   │       ├── S1151.html
│   │       ├── S1151.json
│   │       ├── S1155.html
│   │       ├── S1155.json
│   │       ├── S1163.html
│   │       ├── S1163.json
│   │       ├── S117.html
│   │       ├── S117.json
│   │       ├── S1172.html
│   │       ├── S1172.json
│   │       ├── S1186.html
│   │       ├── S1186.json
│   │       ├── S119.html
│   │       ├── S119.json
│   │       ├── S1192.html
│   │       ├── S1192.json
│   │       ├── S1197.html
│   │       ├── S1197.json
│   │       ├── S122.html
│   │       ├── S122.json
│   │       ├── S1226.html
│   │       ├── S1226.json
│   │       ├── S126.html
│   │       ├── S126.json
│   │       ├── S1301.html
│   │       ├── S1301.json
│   │       ├── S131.html
│   │       ├── S131.json
│   │       ├── S1313.html
│   │       ├── S1313.json
│   │       ├── S134.html
│   │       ├── S134.json
│   │       ├── S138.html
│   │       ├── S138.json
│   │       ├── S139.html
│   │       ├── S139.json
│   │       ├── S1451.html
│   │       ├── S1451.json
│   │       ├── S1479.html
│   │       ├── S1479.json
│   │       ├── S1481.html
│   │       ├── S1481.json
│   │       ├── S1541.html
│   │       ├── S1541.json
│   │       ├── S1542.html
│   │       ├── S1542.json
│   │       ├── S1643.html
│   │       ├── S1643.json
│   │       ├── S1645.html
│   │       ├── S1645.json
│   │       ├── S1654.html
│   │       ├── S1654.json
│   │       ├── S1656.html
│   │       ├── S1656.json
│   │       ├── S1659.html
│   │       ├── S1659.json
│   │       ├── S1751.html
│   │       ├── S1751.json
│   │       ├── S1764.html
│   │       ├── S1764.json
│   │       ├── S1821.html
│   │       ├── S1821.json
│   │       ├── S1862.html
│   │       ├── S1862.json
│   │       ├── S1871.html
│   │       ├── S1871.json
│   │       ├── S1940.html
│   │       ├── S1940.json
│   │       ├── S1944.html
│   │       ├── S1944.json
│   │       ├── S2053.html
│   │       ├── S2053.json
│   │       ├── S2068.html
│   │       ├── S2068.json
│   │       ├── S2077.html
│   │       ├── S2077.json
│   │       ├── S2094.html
│   │       ├── S2094.json
│   │       ├── S2166.html
│   │       ├── S2166.json
│   │       ├── S2178.html
│   │       ├── S2178.json
│   │       ├── S2222.html
│   │       ├── S2222.json
│   │       ├── S2225.html
│   │       ├── S2225.json
│   │       ├── S2234.html
│   │       ├── S2234.json
│   │       ├── S2257.html
│   │       ├── S2257.json
│   │       ├── S2259.html
│   │       ├── S2259.json
│   │       ├── S2302.html
│   │       ├── S2302.json
│   │       ├── S2304.html
│   │       ├── S2304.json
│   │       ├── S2339.html
│   │       ├── S2339.json
│   │       ├── S2340.html
│   │       ├── S2340.json
│   │       ├── S2342.html
│   │       ├── S2342.json
│   │       ├── S2343.html
│   │       ├── S2343.json
│   │       ├── S2344.html
│   │       ├── S2344.json
│   │       ├── S2345.html
│   │       ├── S2345.json
│   │       ├── S2346.html
│   │       ├── S2346.json
│   │       ├── S2347.html
│   │       ├── S2347.json
│   │       ├── S2348.html
│   │       ├── S2348.json
│   │       ├── S2349.html
│   │       ├── S2349.json
│   │       ├── S2352.html
│   │       ├── S2352.json
│   │       ├── S2354.html
│   │       ├── S2354.json
│   │       ├── S2355.html
│   │       ├── S2355.json
│   │       ├── S2357.html
│   │       ├── S2357.json
│   │       ├── S2358.html
│   │       ├── S2358.json
│   │       ├── S2359.html
│   │       ├── S2359.json
│   │       ├── S2360.html
│   │       ├── S2360.json
│   │       ├── S2362.html
│   │       ├── S2362.json
│   │       ├── S2363.html
│   │       ├── S2363.json
│   │       ├── S2364.html
│   │       ├── S2364.json
│   │       ├── S2365.html
│   │       ├── S2365.json
│   │       ├── S2366.html
│   │       ├── S2366.json
│   │       ├── S2367.html
│   │       ├── S2367.json
│   │       ├── S2368.html
│   │       ├── S2368.json
│   │       ├── S2369.html
│   │       ├── S2369.json
│   │       ├── S2370.html
│   │       ├── S2370.json
│   │       ├── S2372.html
│   │       ├── S2372.json
│   │       ├── S2373.html
│   │       ├── S2373.json
│   │       ├── S2374.html
│   │       ├── S2374.json
│   │       ├── S2375.html
│   │       ├── S2375.json
│   │       ├── S2376.html
│   │       ├── S2376.json
│   │       ├── S2387.html
│   │       ├── S2387.json
│   │       ├── S2429.html
│   │       ├── S2429.json
│   │       ├── S2437.html
│   │       ├── S2437.json
│   │       ├── S2551.html
│   │       ├── S2551.json
│   │       ├── S2583.html
│   │       ├── S2583.json
│   │       ├── S2589.html
│   │       ├── S2589.json
│   │       ├── S2612.html
│   │       ├── S2612.json
│   │       ├── S2692.html
│   │       ├── S2692.json
│   │       ├── S2737.html
│   │       ├── S2737.json
│   │       ├── S2757.html
│   │       ├── S2757.json
│   │       ├── S2761.html
│   │       ├── S2761.json
│   │       ├── S2925.html
│   │       ├── S2925.json
│   │       ├── S2951.html
│   │       ├── S2951.json
│   │       ├── S3011.html
│   │       ├── S3011.json
│   │       ├── S3063.html
│   │       ├── S3063.json
│   │       ├── S3329.html
│   │       ├── S3329.json
│   │       ├── S3358.html
│   │       ├── S3358.json
│   │       ├── S3363.html
│   │       ├── S3363.json
│   │       ├── S3385.html
│   │       ├── S3385.json
│   │       ├── S3431.html
│   │       ├── S3431.json
│   │       ├── S3449.html
│   │       ├── S3449.json
│   │       ├── S3453.html
│   │       ├── S3453.json
│   │       ├── S3464.html
│   │       ├── S3464.json
│   │       ├── S3466.html
│   │       ├── S3466.json
│   │       ├── S3598.html
│   │       ├── S3598.json
│   │       ├── S3603.html
│   │       ├── S3603.json
│   │       ├── S3655.html
│   │       ├── S3655.json
│   │       ├── S3776.html
│   │       ├── S3776.json
│   │       ├── S3860.html
│   │       ├── S3860.json
│   │       ├── S3866.html
│   │       ├── S3866.json
│   │       ├── S3869.html
│   │       ├── S3869.json
│   │       ├── S3871.html
│   │       ├── S3871.json
│   │       ├── S3878.html
│   │       ├── S3878.json
│   │       ├── S3884.html
│   │       ├── S3884.json
│   │       ├── S3889.html
│   │       ├── S3889.json
│   │       ├── S3898.html
│   │       ├── S3898.json
│   │       ├── S3900.html
│   │       ├── S3900.json
│   │       ├── S3903.html
│   │       ├── S3903.json
│   │       ├── S3904.html
│   │       ├── S3904.json
│   │       ├── S3923.html
│   │       ├── S3923.json
│   │       ├── S3926.html
│   │       ├── S3926.json
│   │       ├── S3927.html
│   │       ├── S3927.json
│   │       ├── S3949.html
│   │       ├── S3949.json
│   │       ├── S3966.html
│   │       ├── S3966.json
│   │       ├── S3981.html
│   │       ├── S3981.json
│   │       ├── S3990.html
│   │       ├── S3990.json
│   │       ├── S3992.html
│   │       ├── S3992.json
│   │       ├── S3998.html
│   │       ├── S3998.json
│   │       ├── S4025.html
│   │       ├── S4025.json
│   │       ├── S4036.html
│   │       ├── S4036.json
│   │       ├── S4060.html
│   │       ├── S4060.json
│   │       ├── S4136.html
│   │       ├── S4136.json
│   │       ├── S4143.html
│   │       ├── S4143.json
│   │       ├── S4144.html
│   │       ├── S4144.json
│   │       ├── S4158.html
│   │       ├── S4158.json
│   │       ├── S4159.html
│   │       ├── S4159.json
│   │       ├── S4201.html
│   │       ├── S4201.json
│   │       ├── S4210.html
│   │       ├── S4210.json
│   │       ├── S4225.html
│   │       ├── S4225.json
│   │       ├── S4260.html
│   │       ├── S4260.json
│   │       ├── S4275.html
│   │       ├── S4275.json
│   │       ├── S4277.html
│   │       ├── S4277.json
│   │       ├── S4423.html
│   │       ├── S4423.json
│   │       ├── S4428.html
│   │       ├── S4428.json
│   │       ├── S4507.html
│   │       ├── S4507.json
│   │       ├── S4545.html
│   │       ├── S4545.json
│   │       ├── S4581.html
│   │       ├── S4581.json
│   │       ├── S4583.html
│   │       ├── S4583.json
│   │       ├── S4586.html
│   │       ├── S4586.json
│   │       ├── S4663.html
│   │       ├── S4663.json
│   │       ├── S4790.html
│   │       ├── S4790.json
│   │       ├── S4792.html
│   │       ├── S4792.json
│   │       ├── S4830.html
│   │       ├── S4830.json
│   │       ├── S5042.html
│   │       ├── S5042.json
│   │       ├── S5443.html
│   │       ├── S5443.json
│   │       ├── S5445.html
│   │       ├── S5445.json
│   │       ├── S5542.html
│   │       ├── S5542.json
│   │       ├── S5547.html
│   │       ├── S5547.json
│   │       ├── S5659.html
│   │       ├── S5659.json
│   │       ├── S5693.html
│   │       ├── S5693.json
│   │       ├── S5753.html
│   │       ├── S5753.json
│   │       ├── S5773.html
│   │       ├── S5773.json
│   │       ├── S5856.html
│   │       ├── S5856.json
│   │       ├── S5944.html
│   │       ├── S5944.json
│   │       ├── S6145.html
│   │       ├── S6145.json
│   │       ├── S6146.html
│   │       ├── S6146.json
│   │       ├── S6354.html
│   │       ├── S6354.json
│   │       ├── S6418.html
│   │       ├── S6418.json
│   │       ├── S6444.html
│   │       ├── S6444.json
│   │       ├── S6513.html
│   │       ├── S6513.json
│   │       ├── S6561.html
│   │       ├── S6561.json
│   │       ├── S6562.html
│   │       ├── S6562.json
│   │       ├── S6563.html
│   │       ├── S6563.json
│   │       ├── S6566.html
│   │       ├── S6566.json
│   │       ├── S6575.html
│   │       ├── S6575.json
│   │       ├── S6580.html
│   │       ├── S6580.json
│   │       ├── S6585.html
│   │       ├── S6585.json
│   │       ├── S6588.html
│   │       ├── S6588.json
│   │       ├── S6602.html
│   │       ├── S6602.json
│   │       ├── S6603.html
│   │       ├── S6603.json
│   │       ├── S6605.html
│   │       ├── S6605.json
│   │       ├── S6607.html
│   │       ├── S6607.json
│   │       ├── S6608.html
│   │       ├── S6608.json
│   │       ├── S6609.html
│   │       ├── S6609.json
│   │       ├── S6610.html
│   │       ├── S6610.json
│   │       ├── S6612.html
│   │       ├── S6612.json
│   │       ├── S6613.html
│   │       ├── S6613.json
│   │       ├── S6617.html
│   │       ├── S6617.json
│   │       ├── S6930.html
│   │       ├── S6930.json
│   │       ├── S6931.html
│   │       ├── S6931.json
│   │       ├── S7130.html
│   │       ├── S7130.json
│   │       ├── S7131.html
│   │       ├── S7131.json
│   │       ├── S7133.html
│   │       ├── S7133.json
│   │       ├── S907.html
│   │       ├── S907.json
│   │       ├── S927.html
│   │       ├── S927.json
│   │       └── Sonar_way_profile.json
│   ├── src/
│   │   ├── AssemblyInfo.Shared.cs
│   │   ├── Directory.Build.targets
│   │   ├── RuleCatalog.targets
│   │   ├── RuleDescriptorGenerator/
│   │   │   ├── Descriptors/
│   │   │   │   ├── Rule.cs
│   │   │   │   └── RuleParameter.cs
│   │   │   ├── Program.cs
│   │   │   ├── RuleDescriptorGenerator.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CFG/
│   │   │   ├── CfgSerializer/
│   │   │   │   ├── CfgSerializer.RoslynCfgWalker.cs
│   │   │   │   ├── CfgSerializer.RoslynLvaWalker.cs
│   │   │   │   ├── CfgSerializer.SonarCfgWalker.cs
│   │   │   │   ├── CfgSerializer.cs
│   │   │   │   └── DotWriter.cs
│   │   │   ├── Common/
│   │   │   │   ├── RoslynVersion.cs
│   │   │   │   └── UniqueQueue.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── BasicBlockExtensions.cs
│   │   │   │   ├── ControlFlowGraphExtensions.cs
│   │   │   │   ├── ControlFlowRegionExtensions.cs
│   │   │   │   ├── DictionaryExtensions.cs
│   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   ├── IEnumerableExtensions.cs
│   │   │   │   ├── IOperationExtensions.cs
│   │   │   │   ├── IsPatternExpressionSyntaxWrapperExtensions.cs
│   │   │   │   ├── PatternSyntaxWrapperExtensions.cs
│   │   │   │   ├── PropertyInfoExtensions.cs
│   │   │   │   ├── SemanticModelExtensions.cs
│   │   │   │   ├── StringExtensions.cs
│   │   │   │   ├── SyntaxNodeExtensions.cs
│   │   │   │   └── UnaryPatternSyntaxWrapperExtensions.cs
│   │   │   ├── LiveVariableAnalysis/
│   │   │   │   ├── LiveVariableAnalysisBase.cs
│   │   │   │   └── RoslynLiveVariableAnalysis.cs
│   │   │   ├── Operations/
│   │   │   │   └── Utilities/
│   │   │   │       ├── OperationExecutionOrder.cs
│   │   │   │       └── OperationFinder.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Roslyn/
│   │   │   │   ├── BasicBlock.cs
│   │   │   │   ├── CfgAllPathValidator.cs
│   │   │   │   ├── ControlFlowBranch.cs
│   │   │   │   ├── ControlFlowGraph.cs
│   │   │   │   ├── ControlFlowGraphCache.cs
│   │   │   │   ├── ControlFlowRegion.cs
│   │   │   │   └── TypeLoader.cs
│   │   │   ├── Sonar/
│   │   │   │   ├── AbstractControlFlowGraphBuilder.cs
│   │   │   │   ├── BlockIdProvider.cs
│   │   │   │   ├── Blocks/
│   │   │   │   │   ├── BinaryBranchBlock.cs
│   │   │   │   │   ├── BinaryBranchingSimpleBlock.cs
│   │   │   │   │   ├── Block.cs
│   │   │   │   │   ├── BranchBlock.cs
│   │   │   │   │   ├── ExitBlock.cs
│   │   │   │   │   ├── ForInitializerBlock.cs
│   │   │   │   │   ├── ForeachCollectionProducerBlock.cs
│   │   │   │   │   ├── JumpBlock.cs
│   │   │   │   │   ├── LockBlock.cs
│   │   │   │   │   ├── SimpleBlock.cs
│   │   │   │   │   ├── TemporaryBlock.cs
│   │   │   │   │   └── UsingEndBlock.cs
│   │   │   │   ├── CSharpControlFlowGraph.cs
│   │   │   │   ├── CSharpControlFlowGraphBuilder.cs
│   │   │   │   ├── CfgAllPathValidator.cs
│   │   │   │   └── IControlFlowGraph.cs
│   │   │   ├── SonarAnalyzer.CFG.csproj
│   │   │   ├── Syntax/
│   │   │   │   └── Utilities/
│   │   │   │       └── SyntaxClassifierBase.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CSharp/
│   │   │   ├── Metrics/
│   │   │   │   ├── CSharpCognitiveComplexityMetric.cs
│   │   │   │   ├── CSharpCyclomaticComplexityMetric.cs
│   │   │   │   ├── CSharpExecutableLinesMetric.cs
│   │   │   │   └── CSharpMetrics.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AbstractClassToInterface.cs
│   │   │   │   ├── AbstractTypesShouldNotHaveConstructors.cs
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│   │   │   │   ├── AlwaysSetDateTimeKind.cs
│   │   │   │   ├── AnonymousDelegateEventUnsubscribe.cs
│   │   │   │   ├── ArgumentSpecifiedForCallerInfoParameter.cs
│   │   │   │   ├── ArrayCovariance.cs
│   │   │   │   ├── ArrayPassedAsParams.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── AnnotateApiActionsWithHttpVerb.cs
│   │   │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromController.cs
│   │   │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.cs
│   │   │   │   │   ├── AvoidUnderPosting.cs
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.cs
│   │   │   │   │   ├── CallModelStateIsValid.cs
│   │   │   │   │   ├── ControllersHaveMixedResponsibilities.cs
│   │   │   │   │   ├── ControllersReuseClient.cs
│   │   │   │   │   ├── RouteTemplateShouldNotStartWithSlash.cs
│   │   │   │   │   ├── SpecifyRouteAttribute.cs
│   │   │   │   │   └── UseAspNetModelBinding.cs
│   │   │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.cs
│   │   │   │   ├── AssertionsShouldBeComplete.cs
│   │   │   │   ├── AssignmentInsideSubExpression.cs
│   │   │   │   ├── AsyncAwaitIdentifier.cs
│   │   │   │   ├── AsyncVoidMethod.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│   │   │   │   ├── AvoidExcessiveClassCoupling.cs
│   │   │   │   ├── AvoidExcessiveInheritance.cs
│   │   │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.cs
│   │   │   │   ├── AvoidUnsealedAttributes.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvoke.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│   │   │   │   ├── BlazorQueryParameterRoutableComponent.cs
│   │   │   │   ├── BooleanCheckInverted.cs
│   │   │   │   ├── BooleanCheckInvertedCodeFix.cs
│   │   │   │   ├── BooleanLiteralUnnecessary.cs
│   │   │   │   ├── BooleanLiteralUnnecessaryCodeFix.cs
│   │   │   │   ├── BreakOutsideSwitch.cs
│   │   │   │   ├── BypassingAccessibility.cs
│   │   │   │   ├── CallToAsyncMethodShouldNotBeBlocking.cs
│   │   │   │   ├── CallerInformationParametersShouldBeLast.cs
│   │   │   │   ├── CastConcreteTypeToInterface.cs
│   │   │   │   ├── CastShouldNotBeDuplicated.cs
│   │   │   │   ├── CatchEmpty.cs
│   │   │   │   ├── CatchRethrow.cs
│   │   │   │   ├── CatchRethrowCodeFix.cs
│   │   │   │   ├── CertificateValidationCheck.cs
│   │   │   │   ├── CheckArgumentException.cs
│   │   │   │   ├── CheckFileLicense.cs
│   │   │   │   ├── CheckFileLicenseCodeFix.cs
│   │   │   │   ├── ClassAndMethodName.cs
│   │   │   │   ├── ClassNamedException.cs
│   │   │   │   ├── ClassNotInstantiatable.cs
│   │   │   │   ├── ClassShouldNotBeEmpty.cs
│   │   │   │   ├── ClassWithEqualityShouldImplementIEquatable.cs
│   │   │   │   ├── ClassWithOnlyStaticMember.cs
│   │   │   │   ├── CloudNative/
│   │   │   │   │   ├── AzureFunctionsCatchExceptions.cs
│   │   │   │   │   ├── AzureFunctionsLogFailures.cs
│   │   │   │   │   ├── AzureFunctionsReuseClients.cs
│   │   │   │   │   ├── AzureFunctionsStateless.cs
│   │   │   │   │   └── DurableEntityInterfaceRestrictions.cs
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── CollectionEmptinessChecking.cs
│   │   │   │   ├── CollectionEmptinessCheckingCodeFix.cs
│   │   │   │   ├── CollectionPropertiesShouldBeReadOnly.cs
│   │   │   │   ├── CollectionQuerySimplification.cs
│   │   │   │   ├── CollectionsShouldImplementGenericInterface.cs
│   │   │   │   ├── CommentKeyword.cs
│   │   │   │   ├── CommentedOutCode.cs
│   │   │   │   ├── CommentedOutCodeCodeFix.cs
│   │   │   │   ├── CommentsShouldNotBeEmpty.cs
│   │   │   │   ├── ComparableInterfaceImplementation.cs
│   │   │   │   ├── CompareNaN.cs
│   │   │   │   ├── ConditionalSimplification.cs
│   │   │   │   ├── ConditionalSimplificationCodeFix.cs
│   │   │   │   ├── ConditionalStructureSameCondition.cs
│   │   │   │   ├── ConditionalStructureSameImplementation.cs
│   │   │   │   ├── ConditionalsShouldStartOnNewLine.cs
│   │   │   │   ├── ConditionalsWithSameCondition.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExist.cs
│   │   │   │   ├── ConstructorOverridableCall.cs
│   │   │   │   ├── ConsumeValueTaskCorrectly.cs
│   │   │   │   ├── ControlCharacterInString.cs
│   │   │   │   ├── CryptographicKeyShouldNotBeTooShort.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│   │   │   │   ├── DatabasePasswordsShouldBeSecure.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcoded.cs
│   │   │   │   ├── DeadStores.RoslynCfg.cs
│   │   │   │   ├── DeadStores.SonarCfg.cs
│   │   │   │   ├── DeadStores.cs
│   │   │   │   ├── DebugAssertHasNoSideEffects.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembers.cs
│   │   │   │   ├── DeclareEventHandlersCorrectly.cs
│   │   │   │   ├── DeclareTypesInNamespaces.cs
│   │   │   │   ├── DefaultSectionShouldBeFirstOrLast.cs
│   │   │   │   ├── DelegateSubtraction.cs
│   │   │   │   ├── DisposableMemberInNonDisposableClass.cs
│   │   │   │   ├── DisposableNotDisposed.cs
│   │   │   │   ├── DisposableReturnedFromUsing.cs
│   │   │   │   ├── DisposableTypesNeedFinalizers.cs
│   │   │   │   ├── DisposeFromDispose.cs
│   │   │   │   ├── DisposeNotImplementingDispose.cs
│   │   │   │   ├── DoNotCallAssemblyGetExecutingAssemblyMethod.cs
│   │   │   │   ├── DoNotCallAssemblyLoadInvalidMethods.cs
│   │   │   │   ├── DoNotCallExitMethods.cs
│   │   │   │   ├── DoNotCallGCCollectMethod.cs
│   │   │   │   ├── DoNotCallGCSuppressFinalize.cs
│   │   │   │   ├── DoNotCallMethodsCsharpBase.cs
│   │   │   │   ├── DoNotCatchNullReferenceException.cs
│   │   │   │   ├── DoNotCatchSystemException.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollection.cs
│   │   │   │   ├── DoNotCopyArraysInProperties.cs
│   │   │   │   ├── DoNotDecreaseMemberVisibility.cs
│   │   │   │   ├── DoNotExposeListT.cs
│   │   │   │   ├── DoNotHardcodeCredentials.cs
│   │   │   │   ├── DoNotHardcodeSecrets.cs
│   │   │   │   ├── DoNotHideBaseClassMethods.cs
│   │   │   │   ├── DoNotInstantiateSharedClasses.cs
│   │   │   │   ├── DoNotLockOnSharedResource.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjects.cs
│   │   │   │   ├── DoNotMarkEnumsWithFlags.cs
│   │   │   │   ├── DoNotNestTernaryOperators.cs
│   │   │   │   ├── DoNotNestTypesInArguments.cs
│   │   │   │   ├── DoNotOverloadOperatorEqual.cs
│   │   │   │   ├── DoNotOverwriteCollectionElements.cs
│   │   │   │   ├── DoNotShiftByZeroOrIntSize.cs
│   │   │   │   ├── DoNotTestThisWithIsOperator.cs
│   │   │   │   ├── DoNotThrowFromDestructors.cs
│   │   │   │   ├── DoNotUseCollectionInItsOwnMethodCalls.cs
│   │   │   │   ├── DoNotUseDateTimeNow.cs
│   │   │   │   ├── DoNotUseLiteralBoolInAssertions.cs
│   │   │   │   ├── DoNotUseOutRefParameters.cs
│   │   │   │   ├── DoNotWriteToStandardOutput.cs
│   │   │   │   ├── DontMixIncrementOrDecrementWithOtherOperators.cs
│   │   │   │   ├── DontUseTraceSwitchLevels.cs
│   │   │   │   ├── DontUseTraceWrite.cs
│   │   │   │   ├── EmptyMethod.cs
│   │   │   │   ├── EmptyMethodCodeFix.cs
│   │   │   │   ├── EmptyNamespace.cs
│   │   │   │   ├── EmptyNamespaceCodeFix.cs
│   │   │   │   ├── EmptyNestedBlock.cs
│   │   │   │   ├── EmptyStatement.cs
│   │   │   │   ├── EmptyStatementCodeFix.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecure.cs
│   │   │   │   ├── EnumNameHasEnumSuffix.cs
│   │   │   │   ├── EnumNameShouldFollowRegex.cs
│   │   │   │   ├── EnumStorageNeedsToBeInt32.cs
│   │   │   │   ├── EnumerableSumInUnchecked.cs
│   │   │   │   ├── EnumsShouldNotBeNamedReserved.cs
│   │   │   │   ├── EqualityOnFloatingPoint.cs
│   │   │   │   ├── EqualityOnModulus.cs
│   │   │   │   ├── EquatableClassShouldBeSealed.cs
│   │   │   │   ├── EscapeLambdaParameterTypeNamedScoped.cs
│   │   │   │   ├── EventHandlerDelegateShouldHaveProperArguments.cs
│   │   │   │   ├── ExceptionRethrow.cs
│   │   │   │   ├── ExceptionRethrowCodeFix.cs
│   │   │   │   ├── ExceptionShouldNotBeThrownFromUnexpectedMethods.cs
│   │   │   │   ├── ExceptionsNeedStandardConstructors.cs
│   │   │   │   ├── ExceptionsShouldBeLogged.cs
│   │   │   │   ├── ExceptionsShouldBeLoggedOrThrown.cs
│   │   │   │   ├── ExceptionsShouldBePublic.cs
│   │   │   │   ├── ExceptionsShouldBeUsed.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustification.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsed.cs
│   │   │   │   ├── ExpressionComplexity.cs
│   │   │   │   ├── ExtensionMethodShouldBeInSeparateNamespace.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObject.cs
│   │   │   │   ├── FieldShadowsParentField.cs
│   │   │   │   ├── FieldShouldBeReadonly.cs
│   │   │   │   ├── FieldShouldBeReadonlyCodeFix.cs
│   │   │   │   ├── FieldShouldNotBePublic.cs
│   │   │   │   ├── FieldsShouldBeEncapsulatedInProperties.cs
│   │   │   │   ├── FileLines.cs
│   │   │   │   ├── FileShouldEndWithEmptyNewLine.cs
│   │   │   │   ├── FinalizerShouldNotBeEmpty.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefault.cs
│   │   │   │   ├── FlagsEnumWithoutInitializer.cs
│   │   │   │   ├── FlagsEnumZeroMember.cs
│   │   │   │   ├── ForLoopConditionAlwaysFalse.cs
│   │   │   │   ├── ForLoopCounterChanged.cs
│   │   │   │   ├── ForLoopCounterCondition.cs
│   │   │   │   ├── ForLoopIncrementSign.cs
│   │   │   │   ├── ForeachLoopExplicitConversion.cs
│   │   │   │   ├── ForeachLoopExplicitConversionCodeFix.cs
│   │   │   │   ├── FrameworkTypeNaming.cs
│   │   │   │   ├── FunctionComplexity.cs
│   │   │   │   ├── FunctionNestingDepth.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursive.cs
│   │   │   │   ├── GenericLoggerInjectionShouldMatchEnclosingType.cs
│   │   │   │   ├── GenericReadonlyFieldPropertyAssignment.cs
│   │   │   │   ├── GenericReadonlyFieldPropertyAssignmentCodeFix.cs
│   │   │   │   ├── GenericTypeParameterEmptinessChecking.cs
│   │   │   │   ├── GenericTypeParameterEmptinessCheckingCodeFix.cs
│   │   │   │   ├── GenericTypeParameterInOut.cs
│   │   │   │   ├── GenericTypeParameterUnused.cs
│   │   │   │   ├── GenericTypeParametersRequired.cs
│   │   │   │   ├── GetHashCodeEqualsOverride.cs
│   │   │   │   ├── GetHashCodeMutable.cs
│   │   │   │   ├── GetHashCodeMutableCodeFix.cs
│   │   │   │   ├── GetTypeWithIsAssignableFrom.cs
│   │   │   │   ├── GetTypeWithIsAssignableFromCodeFix.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── GuardConditionOnEqualsOverride.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── ClearTextProtocolsAreSensitive.cs
│   │   │   │   │   ├── CommandPath.cs
│   │   │   │   │   ├── ConfiguringLoggers.cs
│   │   │   │   │   ├── CookieShouldBeHttpOnly.cs
│   │   │   │   │   ├── CookieShouldBeSecure.cs
│   │   │   │   │   ├── CreatingHashAlgorithms.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProduction.cs
│   │   │   │   │   ├── DisablingCsrfProtection.cs
│   │   │   │   │   ├── DisablingRequestValidation.cs
│   │   │   │   │   ├── DoNotUseRandom.cs
│   │   │   │   │   ├── ExecutingSqlQueries.cs
│   │   │   │   │   ├── ExpandingArchives.cs
│   │   │   │   │   ├── HardcodedIpAddress.cs
│   │   │   │   │   ├── InsecureDeserialization.cs
│   │   │   │   │   ├── PermissiveCors.cs
│   │   │   │   │   ├── PubliclyWritableDirectories.cs
│   │   │   │   │   ├── RequestsWithExcessiveLength.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegex.cs
│   │   │   │   │   ├── UnsafeCodeBlocks.cs
│   │   │   │   │   └── UsingNonstandardCryptography.cs
│   │   │   │   ├── IdentifiersNamedExtensionShouldBeEscaped.cs
│   │   │   │   ├── IdentifiersNamedFieldShouldBeEscaped.cs
│   │   │   │   ├── IfChainWithoutElse.cs
│   │   │   │   ├── IfCollapsible.cs
│   │   │   │   ├── ImplementIDisposableCorrectly.cs
│   │   │   │   ├── ImplementISerializableCorrectly.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectly.cs
│   │   │   │   ├── IndentSingleLineFollowingConditional.cs
│   │   │   │   ├── IndexOfCheckAgainstZero.cs
│   │   │   │   ├── InfiniteRecursion.RoslynCfg.cs
│   │   │   │   ├── InfiniteRecursion.SonarCfg.cs
│   │   │   │   ├── InfiniteRecursion.cs
│   │   │   │   ├── InheritedCollidingInterfaceMembers.cs
│   │   │   │   ├── InitializeStaticFieldsInline.cs
│   │   │   │   ├── InsecureContentSecurityPolicy.cs
│   │   │   │   ├── InsecureEncryptionAlgorithm.cs
│   │   │   │   ├── InsecureTemporaryFilesCreation.cs
│   │   │   │   ├── InsteadOfAny.cs
│   │   │   │   ├── InterfaceMethodsShouldBeCallableByChildTypes.cs
│   │   │   │   ├── InterfacesShouldNotBeEmpty.cs
│   │   │   │   ├── InvalidCastToInterface.cs
│   │   │   │   ├── InvocationResolvesToOverrideWithParams.cs
│   │   │   │   ├── IssueSuppression.cs
│   │   │   │   ├── JSInvokableMethodsShouldBePublic.cs
│   │   │   │   ├── JwtSigned.cs
│   │   │   │   ├── LdapConnectionShouldBeSecure.cs
│   │   │   │   ├── LineLength.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethods.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethodsCodeFix.cs
│   │   │   │   ├── LiteralSuffixUpperCase.cs
│   │   │   │   ├── LiteralSuffixUpperCaseCodeFix.cs
│   │   │   │   ├── LiteralsShouldNotBePassedAsLocalizedParameters.cs
│   │   │   │   ├── LockedFieldShouldBeReadonly.cs
│   │   │   │   ├── LoggerFieldsShouldBePrivateStaticReadonly.cs
│   │   │   │   ├── LoggerMembersNamesShouldComply.cs
│   │   │   │   ├── LoggersShouldBeNamedForEnclosingType.cs
│   │   │   │   ├── LoggingArgumentsShouldBePassedCorrectly.cs
│   │   │   │   ├── LoopsAndLinq.cs
│   │   │   │   ├── LooseFilePermissions.cs
│   │   │   │   ├── LossOfFractionInDivision.cs
│   │   │   │   ├── MagicNumberShouldNotBeUsed.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttribute.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttribute.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttribute.cs
│   │   │   │   ├── MarkAssemblyWithNeutralResourcesLanguageAttribute.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThread.cs
│   │   │   │   ├── MemberInitializedToDefault.cs
│   │   │   │   ├── MemberInitializedToDefaultCodeFix.cs
│   │   │   │   ├── MemberInitializerRedundant.RoslynCfg.cs
│   │   │   │   ├── MemberInitializerRedundant.SonarCfg.cs
│   │   │   │   ├── MemberInitializerRedundant.cs
│   │   │   │   ├── MemberOverrideCallsBaseMember.cs
│   │   │   │   ├── MemberOverrideCallsBaseMemberCodeFix.cs
│   │   │   │   ├── MemberShadowsOuterStaticMember.cs
│   │   │   │   ├── MemberShouldBeStatic.cs
│   │   │   │   ├── MemberShouldNotHaveConflictingTransparencyAttributes.cs
│   │   │   │   ├── MessageTemplates/
│   │   │   │   │   ├── IMessageTemplateCheck.cs
│   │   │   │   │   ├── LoggingTemplatePlaceHoldersShouldBeInOrder.cs
│   │   │   │   │   ├── MessageTemplateAnalyzer.cs
│   │   │   │   │   ├── MessageTemplateExtractor.cs
│   │   │   │   │   ├── MessageTemplatesShouldBeCorrect.cs
│   │   │   │   │   ├── NamedPlaceholdersShouldBeUnique.cs
│   │   │   │   │   └── UsePascalCaseForNamedPlaceHolders.cs
│   │   │   │   ├── MethodOverloadOptionalParameter.cs
│   │   │   │   ├── MethodOverloadsShouldBeGrouped.cs
│   │   │   │   ├── MethodOverrideAddsParams.cs
│   │   │   │   ├── MethodOverrideAddsParamsCodeFix.cs
│   │   │   │   ├── MethodOverrideChangedDefaultValue.cs
│   │   │   │   ├── MethodOverrideChangedDefaultValueCodeFix.cs
│   │   │   │   ├── MethodOverrideNoParams.cs
│   │   │   │   ├── MethodOverrideNoParamsCodeFix.cs
│   │   │   │   ├── MethodParameterMissingOptional.cs
│   │   │   │   ├── MethodParameterMissingOptionalCodeFix.cs
│   │   │   │   ├── MethodParameterUnused.cs
│   │   │   │   ├── MethodParameterUnusedCodeFix.cs
│   │   │   │   ├── MethodShouldBeNamedAccordingToSynchronicity.cs
│   │   │   │   ├── MethodShouldNotOnlyReturnConstant.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementations.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLines.cs
│   │   │   │   ├── MethodsShouldUseBaseTypes.cs
│   │   │   │   ├── MultilineBlocksWithoutBrace.cs
│   │   │   │   ├── MultipleVariableDeclaration.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFix.cs
│   │   │   │   ├── MutableFieldsShouldNotBe.cs
│   │   │   │   ├── MutableFieldsShouldNotBePublicReadonly.cs
│   │   │   │   ├── MutableFieldsShouldNotBePublicStatic.cs
│   │   │   │   ├── NameOfShouldBeUsed.cs
│   │   │   │   ├── NativeMethodsShouldBeWrapped.cs
│   │   │   │   ├── NestedCodeBlock.cs
│   │   │   │   ├── NoExceptionsInFinally.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNull.cs
│   │   │   │   ├── NonDerivedPrivateClassesShouldBeSealed.cs
│   │   │   │   ├── NonFlagsEnumInBitwiseOperation.cs
│   │   │   │   ├── NonFlagsEnumInBitwiseOperationCodeFix.cs
│   │   │   │   ├── NormalizeStringsToUppercase.cs
│   │   │   │   ├── NotAssignedPrivateMember.cs
│   │   │   │   ├── NumberPatternShouldBeRegular.cs
│   │   │   │   ├── ObjectCreatedDropped.cs
│   │   │   │   ├── ObjectShouldBeInitializedCorrectlyBase.cs
│   │   │   │   ├── ObsoleteAttributes.cs
│   │   │   │   ├── OperatorOverloadsShouldHaveNamedAlternatives.cs
│   │   │   │   ├── OperatorsShouldBeOverloadedConsistently.cs
│   │   │   │   ├── OptionalParameter.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCall.cs
│   │   │   │   ├── OptionalParameterWithDefaultValue.cs
│   │   │   │   ├── OptionalParameterWithDefaultValueCodeFix.cs
│   │   │   │   ├── OptionalRefOutParameter.cs
│   │   │   │   ├── OptionalRefOutParameterCodeFix.cs
│   │   │   │   ├── OrderByRepeated.cs
│   │   │   │   ├── OrderByRepeatedCodeFix.cs
│   │   │   │   ├── OverrideGetHashCodeOnOverridingEquals.cs
│   │   │   │   ├── PInvokesShouldNotBeVisible.cs
│   │   │   │   ├── ParameterAssignedTo.cs
│   │   │   │   ├── ParameterNameMatchesOriginal.cs
│   │   │   │   ├── ParameterNamesShouldNotDuplicateMethodNames.cs
│   │   │   │   ├── ParameterTypeShouldMatchRouteTypeConstraint.cs
│   │   │   │   ├── ParameterValidationInAsyncShouldBeWrapped.cs
│   │   │   │   ├── ParameterValidationInYieldShouldBeWrapped.cs
│   │   │   │   ├── ParametersCorrectOrder.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttribute.cs
│   │   │   │   ├── PartialMethodNoImplementation.cs
│   │   │   │   ├── PasswordsShouldBeStoredCorrectly.cs
│   │   │   │   ├── PointersShouldBePrivate.cs
│   │   │   │   ├── PreferGuidEmpty.cs
│   │   │   │   ├── PreferGuidEmptyCodeFix.cs
│   │   │   │   ├── PreferJaggedArraysOverMultidimensional.cs
│   │   │   │   ├── PrivateFieldUsedAsLocalVariable.cs
│   │   │   │   ├── PrivateStaticMethodUsedOnlyByNestedClass.cs
│   │   │   │   ├── PropertiesAccessCorrectField.cs
│   │   │   │   ├── PropertiesShouldBePreferred.cs
│   │   │   │   ├── PropertyGetterWithThrow.cs
│   │   │   │   ├── PropertyNamesShouldNotMatchGetMethods.cs
│   │   │   │   ├── PropertyToAutoProperty.cs
│   │   │   │   ├── PropertyWriteOnly.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFields.cs
│   │   │   │   ├── PublicConstantField.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArray.cs
│   │   │   │   ├── PureAttributeOnVoidMethod.cs
│   │   │   │   ├── RedundancyInConstructorDestructorDeclaration.cs
│   │   │   │   ├── RedundancyInConstructorDestructorDeclarationCodeFix.cs
│   │   │   │   ├── RedundantArgument.cs
│   │   │   │   ├── RedundantArgumentCodeFix.cs
│   │   │   │   ├── RedundantCast.cs
│   │   │   │   ├── RedundantCastCodeFix.cs
│   │   │   │   ├── RedundantConditionalAroundAssignment.cs
│   │   │   │   ├── RedundantConditionalAroundAssignmentCodeFix.cs
│   │   │   │   ├── RedundantDeclaration.cs
│   │   │   │   ├── RedundantDeclarationCodeFix.cs
│   │   │   │   ├── RedundantInheritanceList.cs
│   │   │   │   ├── RedundantInheritanceListCodeFix.cs
│   │   │   │   ├── RedundantJumpStatement.cs
│   │   │   │   ├── RedundantModifier.cs
│   │   │   │   ├── RedundantModifierCodeFix.cs
│   │   │   │   ├── RedundantNullCheck.cs
│   │   │   │   ├── RedundantNullCheckCodeFix.cs
│   │   │   │   ├── RedundantNullableTypeComparison.cs
│   │   │   │   ├── RedundantParentheses.cs
│   │   │   │   ├── RedundantParenthesesCodeFix.cs
│   │   │   │   ├── RedundantParenthesesObjectsCreation.cs
│   │   │   │   ├── RedundantPropertyNamesInAnonymousClass.cs
│   │   │   │   ├── RedundantPropertyNamesInAnonymousClassCodeFix.cs
│   │   │   │   ├── RedundantToArrayCall.cs
│   │   │   │   ├── RedundantToArrayCallCodeFix.cs
│   │   │   │   ├── RedundantToStringCall.cs
│   │   │   │   ├── RedundantToStringCallCodeFix.cs
│   │   │   │   ├── ReferenceEqualityCheckWhenEqualsExists.cs
│   │   │   │   ├── ReferenceEqualsOnValueType.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntax.cs
│   │   │   │   ├── RequireAttributeUsageAttribute.cs
│   │   │   │   ├── ReturnEmptyCollectionInsteadOfNull.cs
│   │   │   │   ├── ReturnTypeNamedPartialShouldBeEscaped.cs
│   │   │   │   ├── ReturnValueIgnored.cs
│   │   │   │   ├── ReuseClientBase.cs
│   │   │   │   ├── ReversedOperators.cs
│   │   │   │   ├── RightCurlyBraceStartsLine.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalled.cs
│   │   │   │   ├── SelfAssignment.cs
│   │   │   │   ├── SerializationConstructorsShouldBeSecured.cs
│   │   │   │   ├── SetLocaleForDataTypes.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethods.cs
│   │   │   │   ├── ShiftDynamicNotInteger.cs
│   │   │   │   ├── ShouldImplementExportedInterfaces.cs
│   │   │   │   ├── SingleStatementPerLine.cs
│   │   │   │   ├── SpecifyIFormatProviderOrCultureInfo.cs
│   │   │   │   ├── SpecifyStringComparison.cs
│   │   │   │   ├── SqlKeywordsDelimitedBySpace.cs
│   │   │   │   ├── StaticFieldInGenericClass.cs
│   │   │   │   ├── StaticFieldInitializerOrder.cs
│   │   │   │   ├── StaticFieldVisible.cs
│   │   │   │   ├── StaticFieldWrittenFrom.cs
│   │   │   │   ├── StaticFieldWrittenFromInstanceConstructor.cs
│   │   │   │   ├── StaticFieldWrittenFromInstanceMember.cs
│   │   │   │   ├── StaticSealedClassProtectedMembers.cs
│   │   │   │   ├── StreamReadStatement.cs
│   │   │   │   ├── StringConcatenationInLoop.cs
│   │   │   │   ├── StringFormatValidator.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicated.cs
│   │   │   │   ├── StringOffsetMethods.cs
│   │   │   │   ├── StringOperationWithoutCulture.cs
│   │   │   │   ├── StringOrIntegralTypesForIndexers.cs
│   │   │   │   ├── SuppressFinalizeUseless.cs
│   │   │   │   ├── SuppressFinalizeUselessCodeFix.cs
│   │   │   │   ├── SwaggerActionReturnType.cs
│   │   │   │   ├── SwitchCaseFallsThroughToDefault.cs
│   │   │   │   ├── SwitchCaseFallsThroughToDefaultCodeFix.cs
│   │   │   │   ├── SwitchCasesMinimumThree.cs
│   │   │   │   ├── SwitchDefaultClauseEmpty.cs
│   │   │   │   ├── SwitchDefaultClauseEmptyCodeFix.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatements.cs
│   │   │   │   ├── SwitchShouldNotBeNested.cs
│   │   │   │   ├── SwitchWithoutDefault.cs
│   │   │   │   ├── TabCharacter.cs
│   │   │   │   ├── TaskConfigureAwait.cs
│   │   │   │   ├── TestClassShouldHaveTestMethod.cs
│   │   │   │   ├── TestMethodShouldContainAssertion.cs
│   │   │   │   ├── TestMethodShouldHaveCorrectSignature.cs
│   │   │   │   ├── TestMethodShouldNotBeIgnored.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleep.cs
│   │   │   │   ├── ThisShouldNotBeExposedFromConstructors.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalled.cs
│   │   │   │   ├── ThreadStaticNonStaticField.cs
│   │   │   │   ├── ThreadStaticNonStaticFieldCodeFix.cs
│   │   │   │   ├── ThreadStaticWithInitializer.cs
│   │   │   │   ├── ThrowReservedExceptions.cs
│   │   │   │   ├── ToStringShouldNotReturnNull.cs
│   │   │   │   ├── TooManyGenericParameters.cs
│   │   │   │   ├── TooManyLabelsInSwitch.cs
│   │   │   │   ├── TooManyLoggingCalls.cs
│   │   │   │   ├── TooManyParameters.cs
│   │   │   │   ├── TrackNotImplementedException.cs
│   │   │   │   ├── TryStatementsWithIdenticalCatchShouldBeMerged.cs
│   │   │   │   ├── TypeExaminationOnSystemType.cs
│   │   │   │   ├── TypeMemberVisibility.cs
│   │   │   │   ├── TypeNamesShouldNotMatchNamespaces.cs
│   │   │   │   ├── TypesShouldNotExtendOutdatedBaseTypes.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeated.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeatedCodeFix.cs
│   │   │   │   ├── UnchangedLocalVariablesShouldBeConst.cs
│   │   │   │   ├── UnchangedLocalVariablesShouldBeConstCodeFix.cs
│   │   │   │   ├── UnconditionalJumpStatement.cs
│   │   │   │   ├── UninvokedEventDeclaration.cs
│   │   │   │   ├── UnnecessaryBitwiseOperation.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFix.cs
│   │   │   │   ├── UnnecessaryMathematicalComparison.cs
│   │   │   │   ├── UnnecessaryUsings.cs
│   │   │   │   ├── UnnecessaryUsingsCodeFix.cs
│   │   │   │   ├── UnusedPrivateMember.cs
│   │   │   │   ├── UnusedPrivateMemberCodeFix.cs
│   │   │   │   ├── UnusedReturnValue.cs
│   │   │   │   ├── UnusedStringBuilder.cs
│   │   │   │   ├── UriShouldNotBeHardcoded.cs
│   │   │   │   ├── UseAwaitableMethod.cs
│   │   │   │   ├── UseCharOverloadOfStringMethods.cs
│   │   │   │   ├── UseCharOverloadOfStringMethodsCodeFix.cs
│   │   │   │   ├── UseConstantLoggingTemplate.cs
│   │   │   │   ├── UseConstantsWhereAppropriate.cs
│   │   │   │   ├── UseCurlyBraces.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTime.cs
│   │   │   │   ├── UseFindSystemTimeZoneById.cs
│   │   │   │   ├── UseGenericEventHandlerInstances.cs
│   │   │   │   ├── UseGenericWithRefParameters.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTime.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethods.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionary.cs
│   │   │   │   ├── UseNumericLiteralSeparator.cs
│   │   │   │   ├── UseParamsForVariableArguments.cs
│   │   │   │   ├── UseShortCircuitingOperator.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFix.cs
│   │   │   │   ├── UseStringCreate.cs
│   │   │   │   ├── UseStringIsNullOrEmpty.cs
│   │   │   │   ├── UseTestableTimeProvider.cs
│   │   │   │   ├── UseTrueForAll.cs
│   │   │   │   ├── UseUnixEpoch.cs
│   │   │   │   ├── UseUnixEpochCodeFix.cs
│   │   │   │   ├── UseUriInsteadOfString.cs
│   │   │   │   ├── UseValueParameter.cs
│   │   │   │   ├── UseWhereBeforeOrderBy.cs
│   │   │   │   ├── UseWhileLoopInstead.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzer.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzer.cs
│   │   │   │   │   ├── FileMetadataAnalyzer.cs
│   │   │   │   │   ├── LogAnalyzer.cs
│   │   │   │   │   ├── MetricsAnalyzer.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzer.cs
│   │   │   │   │   ├── TelemetryAnalyzer.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzer.cs
│   │   │   │   │   └── TokenTypeAnalyzer.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatable.cs
│   │   │   │   ├── ValuesUselesslyIncremented.cs
│   │   │   │   ├── VariableShadowsField.cs
│   │   │   │   ├── VariableUnused.cs
│   │   │   │   ├── VirtualEventField.cs
│   │   │   │   ├── VirtualEventFieldCodeFix.cs
│   │   │   │   ├── WcfMissingContractAttribute.cs
│   │   │   │   ├── WcfNonVoidOneWay.cs
│   │   │   │   ├── WeakSslTlsProtocols.cs
│   │   │   │   ├── XMLSignatureCheck.cs
│   │   │   │   ├── XXE/
│   │   │   │   │   └── XmlReaderSettingsValidator.cs
│   │   │   │   └── XmlExternalEntityShouldNotBeParsed.cs
│   │   │   ├── SonarAnalyzer.CSharp.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   │   ├── IfStatementSyntaxExtensions.cs
│   │   │   │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── SwitchSectionSyntaxExtensions.cs
│   │   │   │   │   └── SyntaxNodeExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── AttributeSyntaxSymbolMapping.cs
│   │   │   │       ├── SymbolUsage.cs
│   │   │   │       └── SymbolUsageCollector.cs
│   │   │   ├── Walkers/
│   │   │   │   ├── CatchLoggingInvocationWalker.cs
│   │   │   │   └── ParameterValidationInMethodWalker.cs
│   │   │   ├── packages.lock.json
│   │   │   └── sonarpedia.json
│   │   ├── SonarAnalyzer.CSharp.Core/
│   │   │   ├── Common/
│   │   │   │   ├── DescriptorFactory.cs
│   │   │   │   └── SyntaxConstants.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── CSharpCompilationExtensions.cs
│   │   │   │   ├── IAnalyzerConfigurationExtensions.cs
│   │   │   │   ├── ICompilationReportExtensions.cs
│   │   │   │   ├── IFieldSymbolExtensions.cs
│   │   │   │   ├── ILocalSymbolExtensions.cs
│   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   ├── ISymbolExtensions.cs
│   │   │   │   ├── ITupleOperationWrapperExtensions.cs
│   │   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   │   ├── LanguageVersionExtensions.cs
│   │   │   │   ├── SonarAnalysisContextExtensions.cs
│   │   │   │   ├── SonarCompilationStartAnalysisContextExtensions.cs
│   │   │   │   ├── SonarParametrizedAnalysisContextExtensions.cs
│   │   │   │   └── SonarSyntaxNodeReportingContextExtensions.cs
│   │   │   ├── Facade/
│   │   │   │   ├── CSharpFacade.cs
│   │   │   │   └── Implementation/
│   │   │   │       ├── CSharpSyntaxFacade.cs
│   │   │   │       ├── CSharpSyntaxKindFacade.cs
│   │   │   │       └── CSharpTrackerFacade.cs
│   │   │   ├── LiveVariableAnalysis/
│   │   │   │   └── SonarCSharpLiveVariableAnalysis.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── RegularExpressions/
│   │   │   │   └── MessageTemplatesParser.cs
│   │   │   ├── SonarAnalyzer.CSharp.Core.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AccessorDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── ArgumentListSyntaxExtensions.cs
│   │   │   │   │   ├── ArgumentSyntaxExtensions.cs
│   │   │   │   │   ├── AssignmentExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── AttributeListSyntaxExtensions.cs
│   │   │   │   │   ├── AttributeSyntaxExtensions.cs
│   │   │   │   │   ├── AwaitExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── BaseArgumentListSyntaxExtensions.cs
│   │   │   │   │   ├── BaseMethodDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── BlockSyntaxExtensions.cs
│   │   │   │   │   ├── CompilationUnitSyntaxExtensions.cs
│   │   │   │   │   ├── ExpressionSyntaxExtensions.Roslyn.cs
│   │   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── InterpolatedStringExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── LocalFunctionStatementSyntaxWrapperExtensions.cs
│   │   │   │   │   ├── MemberAccessExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── MethodDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── ObjectCreationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── ParameterSyntaxExtensions.cs
│   │   │   │   │   ├── PropertyDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── StatementSyntaxExtensions.cs
│   │   │   │   │   ├── SwitchExpressionSyntaxWrapperExtensions.cs
│   │   │   │   │   ├── SwitchStatementSyntaxExtensions.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │   │   │   │   ├── SyntaxNodeExtensionsCSharp.cs
│   │   │   │   │   ├── SyntaxTokenExtensions.cs
│   │   │   │   │   ├── SyntaxTokenListExtensions.cs
│   │   │   │   │   ├── SyntaxTriviaExtensions.cs
│   │   │   │   │   ├── TupleExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── TypeDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── TypeSyntaxExtensions.cs
│   │   │   │   │   └── VariableDesignationSyntaxWrapperExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── CSharpAttributeParameterLookup.cs
│   │   │   │       ├── CSharpEquivalenceChecker.cs
│   │   │   │       ├── CSharpExpressionNumericConverter.cs
│   │   │   │       ├── CSharpGeneratedCodeRecognizer.cs
│   │   │   │       ├── CSharpMethodParameterLookup.cs
│   │   │   │       ├── CSharpRemovableDeclarationCollector.cs
│   │   │   │       ├── CSharpStringInterpolationConstantValueResolver.cs
│   │   │   │       ├── CSharpSyntaxClassifier.cs
│   │   │   │       ├── MutedSyntaxWalker.cs
│   │   │   │       └── SafeCSharpSyntaxWalker.cs
│   │   │   ├── Trackers/
│   │   │   │   ├── CSharpArgumentTracker.cs
│   │   │   │   ├── CSharpAssignmentFinder.cs
│   │   │   │   ├── CSharpBaseTypeTracker.cs
│   │   │   │   ├── CSharpBuilderPatternCondition.cs
│   │   │   │   ├── CSharpConstantValueFinder.cs
│   │   │   │   ├── CSharpElementAccessTracker.cs
│   │   │   │   ├── CSharpFieldAccessTracker.cs
│   │   │   │   ├── CSharpInvocationTracker.cs
│   │   │   │   ├── CSharpMethodDeclarationTracker.cs
│   │   │   │   ├── CSharpObjectCreationTracker.cs
│   │   │   │   ├── CSharpObjectInitializationTracker.cs
│   │   │   │   └── CSharpPropertyAccessTracker.cs
│   │   │   ├── Wrappers/
│   │   │   │   ├── IMethodDeclaration.cs
│   │   │   │   ├── MethodDeclarationFactory.cs
│   │   │   │   └── ObjectCreationFactory.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CSharp.Styling/
│   │   │   ├── Common/
│   │   │   │   ├── DescriptorFactory.cs
│   │   │   │   ├── OrderDescriptor.cs
│   │   │   │   └── StylingAnalyzer.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── LambdaExpressionSyntaxExtensions.cs
│   │   │   │   ├── MemberDeclarationSyntaxExtensions.cs
│   │   │   │   └── SyntaxNodeExtensions.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllArgumentsOnSameLine.cs
│   │   │   │   ├── AllParametersBase.cs
│   │   │   │   ├── AllParametersOnSameColumn.cs
│   │   │   │   ├── AllParametersOnSameLine.cs
│   │   │   │   ├── ArrowLocation.cs
│   │   │   │   ├── AvoidArrangeActAssertComment.cs
│   │   │   │   ├── AvoidDeconstruction.cs
│   │   │   │   ├── AvoidGet.cs
│   │   │   │   ├── AvoidListForEach.cs
│   │   │   │   ├── AvoidNullable.cs
│   │   │   │   ├── AvoidPrimaryConstructor.cs
│   │   │   │   ├── AvoidUnusedInterpolation.cs
│   │   │   │   ├── AvoidValueTuple.cs
│   │   │   │   ├── AvoidVarPattern.cs
│   │   │   │   ├── FieldOrdering.cs
│   │   │   │   ├── FileScopeNamespace.cs
│   │   │   │   ├── HelperInTypeName.cs
│   │   │   │   ├── IndentArgument.cs
│   │   │   │   ├── IndentBase.cs
│   │   │   │   ├── IndentInvocation.cs
│   │   │   │   ├── IndentOperator.cs
│   │   │   │   ├── IndentRawString.cs
│   │   │   │   ├── IndentTernary.cs
│   │   │   │   ├── InitializerLine.cs
│   │   │   │   ├── LambdaParameterName.cs
│   │   │   │   ├── LocalFunctionLocation.cs
│   │   │   │   ├── MemberAccessLine.cs
│   │   │   │   ├── MemberVisibilityOrdering.cs
│   │   │   │   ├── MethodExpressionBodyLine.cs
│   │   │   │   ├── MoveMethodToDedicatedExtensionClass.cs
│   │   │   │   ├── NamespaceName.cs
│   │   │   │   ├── NullPatternMatching.cs
│   │   │   │   ├── OperatorLocation.cs
│   │   │   │   ├── PropertyOrdering.cs
│   │   │   │   ├── ProtectedFieldsCase.cs
│   │   │   │   ├── SeparateDeclarations.cs
│   │   │   │   ├── TermaryLine.cs
│   │   │   │   ├── TypeMemberOrdering.cs
│   │   │   │   ├── UseDifferentMember.cs
│   │   │   │   ├── UseField.cs
│   │   │   │   ├── UseInnermostRegistrationContext.cs
│   │   │   │   ├── UseLinqExtensions.cs
│   │   │   │   ├── UseNullInsteadOfDefault.cs
│   │   │   │   ├── UsePositiveLogic.cs
│   │   │   │   ├── UseRawString.cs
│   │   │   │   ├── UseRegexSafeIsMatch.cs
│   │   │   │   ├── UseShortName.cs
│   │   │   │   └── UseVar.cs
│   │   │   ├── SonarAnalyzer.CSharp.Styling.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.Core/
│   │   │   ├── AnalysisContext/
│   │   │   │   ├── IAnalysisContext.cs
│   │   │   │   ├── IReport.cs
│   │   │   │   ├── IReportingContext.cs
│   │   │   │   ├── IssueReporter.cs
│   │   │   │   ├── ReportingContext.cs
│   │   │   │   ├── ShouldAnalyzeTreeCache.cs
│   │   │   │   ├── SonarAnalysisContext.cs
│   │   │   │   ├── SonarAnalysisContextBase.cs
│   │   │   │   ├── SonarCodeBlockReportingContext.cs
│   │   │   │   ├── SonarCodeBlockStartAnalysisContext.cs
│   │   │   │   ├── SonarCodeFixContext.cs
│   │   │   │   ├── SonarCompilationReportingContext.cs
│   │   │   │   ├── SonarCompilationStartAnalysisContext.cs
│   │   │   │   ├── SonarParametrizedAnalysisContext.cs
│   │   │   │   ├── SonarSemanticModelReportingContext.cs
│   │   │   │   ├── SonarSymbolReportingContext.cs
│   │   │   │   ├── SonarSymbolStartAnalysisContext.cs
│   │   │   │   ├── SonarSyntaxNodeReportingContext.cs
│   │   │   │   └── SonarSyntaxTreeReportingContext.cs
│   │   │   ├── Analyzers/
│   │   │   │   ├── DiagnosticDescriptorFactory.cs
│   │   │   │   ├── HotspotDiagnosticAnalyzer.cs
│   │   │   │   ├── ParametrizedDiagnosticAnalyzer.cs
│   │   │   │   ├── SonarCodeFix.cs
│   │   │   │   ├── SonarDiagnosticAnalyzer.cs
│   │   │   │   └── TrackerHotspotDiagnosticAnalyzer.cs
│   │   │   ├── Common/
│   │   │   │   ├── AnalyzerAdditionalFile.cs
│   │   │   │   ├── AnalyzerConfiguration.cs
│   │   │   │   ├── AnalyzerLanguage.cs
│   │   │   │   ├── BidirectionalDictionary.cs
│   │   │   │   ├── Constants.cs
│   │   │   │   ├── Conversions.cs
│   │   │   │   ├── DisjointSets.cs
│   │   │   │   ├── DocumentBasedFixAllProvider.cs
│   │   │   │   ├── HashCode.cs
│   │   │   │   ├── IAnalyzerConfiguration.cs
│   │   │   │   ├── IRuleLoader.cs
│   │   │   │   ├── ISafeSyntaxWalker.cs
│   │   │   │   ├── IsExternalInit.cs
│   │   │   │   ├── MultiValueDictionary.cs
│   │   │   │   ├── NaturalLanguageDetector.cs
│   │   │   │   ├── NodeAndModel.cs
│   │   │   │   ├── NodeAndSymbol.cs
│   │   │   │   ├── NodeSymbolAndModel.cs
│   │   │   │   ├── Pair.cs
│   │   │   │   ├── PropertyType.cs
│   │   │   │   ├── RuleDescriptor.cs
│   │   │   │   ├── RuleLoader.cs
│   │   │   │   ├── RuleParameterAttribute.cs
│   │   │   │   ├── SecondaryLocation.cs
│   │   │   │   ├── ShannonEntropy.cs
│   │   │   │   ├── SourceScope.cs
│   │   │   │   ├── TokenAndModel.cs
│   │   │   │   ├── TopLevelStatements.cs
│   │   │   │   ├── UnexpectedLanguageException.cs
│   │   │   │   └── UnexpectedValueException.cs
│   │   │   ├── Configuration/
│   │   │   │   ├── AnalysisConfig.cs
│   │   │   │   ├── AnalysisConfigReader.cs
│   │   │   │   ├── ConfigSetting.cs
│   │   │   │   ├── FilesToAnalyzeProvider.cs
│   │   │   │   ├── ParameterLoader.cs
│   │   │   │   ├── ProjectConfig.cs
│   │   │   │   ├── ProjectConfigReader.cs
│   │   │   │   ├── ProjectType.cs
│   │   │   │   ├── ProjectTypeCache.cs
│   │   │   │   ├── SonarLintXml.cs
│   │   │   │   └── SonarLintXmlReader.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── AnalyzerOptionsExtensions.cs
│   │   │   │   ├── CompilationExtensions.cs
│   │   │   │   ├── DiagnosticDescriptorExtensions.cs
│   │   │   │   ├── DictionaryExtensions.cs
│   │   │   │   ├── HashSetExtensions.cs
│   │   │   │   ├── IAnalysisContextExtensions.cs
│   │   │   │   ├── ICompilationReportExtensions.cs
│   │   │   │   ├── IEnumerableExtensions.cs
│   │   │   │   ├── ITreeReportExtensions.cs
│   │   │   │   ├── IXmlLineInfoExtensions.cs
│   │   │   │   ├── RegexExtensions.cs
│   │   │   │   ├── SonarAnalysisContextExtensions.cs
│   │   │   │   ├── StackExtensions.cs
│   │   │   │   ├── StringExtensions.cs
│   │   │   │   ├── XAttributeExtensions.cs
│   │   │   │   └── XElementExtensions.cs
│   │   │   ├── Facade/
│   │   │   │   ├── ILanguageFacade.cs
│   │   │   │   ├── ISyntaxKindFacade.cs
│   │   │   │   ├── ITrackerFacade.cs
│   │   │   │   └── SyntaxFacade.cs
│   │   │   ├── Json/
│   │   │   │   ├── JsonException.cs
│   │   │   │   ├── JsonNode.cs
│   │   │   │   ├── JsonSerializer.cs
│   │   │   │   ├── JsonWalker.cs
│   │   │   │   └── Parsing/
│   │   │   │       ├── Kind.cs
│   │   │   │       ├── LexicalAnalyzer.cs
│   │   │   │       ├── Symbol.cs
│   │   │   │       └── SyntaxAnalyzer.cs
│   │   │   ├── Metrics/
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── FileComments.cs
│   │   │   │   └── MetricsBase.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Protobuf/
│   │   │   │   └── AnalyzerReport.proto
│   │   │   ├── RegularExpressions/
│   │   │   │   ├── NamingPatterns.cs
│   │   │   │   ├── RegexContext.cs
│   │   │   │   └── WildcardPatternMatcher.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementationBase.cs
│   │   │   │   ├── AlwaysSetDateTimeKindBase.cs
│   │   │   │   ├── ArrayPassedAsParamsBase.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutesBase.cs
│   │   │   │   │   └── RouteTemplateShouldNotStartWithSlashBase.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarkingBase.cs
│   │   │   │   ├── AvoidUnsealedAttributesBase.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvokeBase.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressionsBase.cs
│   │   │   │   ├── BooleanCheckInvertedBase.cs
│   │   │   │   ├── BooleanLiteralUnnecessaryBase.cs
│   │   │   │   ├── BypassingAccessibilityBase.cs
│   │   │   │   ├── CatchRethrowBase.cs
│   │   │   │   ├── CertificateValidationCheckBase.cs
│   │   │   │   ├── CheckFileLicenseBase.cs
│   │   │   │   ├── ClassNamedExceptionBase.cs
│   │   │   │   ├── ClassNotInstantiatableBase.cs
│   │   │   │   ├── ClassShouldNotBeEmptyBase.cs
│   │   │   │   ├── CognitiveComplexityBase.cs
│   │   │   │   ├── CollectionEmptinessCheckingBase.cs
│   │   │   │   ├── CommentKeywordBase.cs
│   │   │   │   ├── CommentsShouldNotBeEmptyBase.cs
│   │   │   │   ├── ConditionalStructureSameConditionBase.cs
│   │   │   │   ├── ConditionalStructureSameImplementationBase.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExistBase.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalledBase.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKeyBase.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcodedBase.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembersBase.cs
│   │   │   │   ├── DeclareTypesInNamespacesBase.cs
│   │   │   │   ├── DoNotCallInsecureSecurityAlgorithmBase.cs
│   │   │   │   ├── DoNotCallMethodsBase.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollectionBase.cs
│   │   │   │   ├── DoNotHardcodeBase.cs
│   │   │   │   ├── DoNotHardcodeCredentialsBase.cs
│   │   │   │   ├── DoNotHardcodeSecretsBase.cs
│   │   │   │   ├── DoNotInstantiateSharedClassesBase.cs
│   │   │   │   ├── DoNotLockOnSharedResourceBase.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjectsBase.cs
│   │   │   │   ├── DoNotNestTernaryOperatorsBase.cs
│   │   │   │   ├── DoNotOverwriteCollectionElementsBase.cs
│   │   │   │   ├── DoNotThrowFromDestructorsBase.cs
│   │   │   │   ├── DoNotUseDateTimeNowBase.cs
│   │   │   │   ├── EmptyMethodBase.cs
│   │   │   │   ├── EmptyNestedBlockBase.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecureBase.cs
│   │   │   │   ├── EnumNameHasEnumSuffixBase.cs
│   │   │   │   ├── EnumNameShouldFollowRegexBase.cs
│   │   │   │   ├── ExceptionsShouldBePublicBase.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustificationBase.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsedBase.cs
│   │   │   │   ├── ExpressionComplexityBase.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObjectBase.cs
│   │   │   │   ├── FieldShadowsParentFieldBase.cs
│   │   │   │   ├── FieldShouldNotBePublicBase.cs
│   │   │   │   ├── FileLinesBase.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefaultBase.cs
│   │   │   │   ├── FlagsEnumWithoutInitializerBase.cs
│   │   │   │   ├── FlagsEnumZeroMemberBase.cs
│   │   │   │   ├── FunctionComplexityBase.cs
│   │   │   │   ├── FunctionNestingDepthBase.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursiveBase.cs
│   │   │   │   ├── GotoStatementBase.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── CommandPathBase.cs
│   │   │   │   │   ├── ConfiguringLoggersBase.cs
│   │   │   │   │   ├── CreatingHashAlgorithmsBase.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProductionBase.cs
│   │   │   │   │   ├── DisablingRequestValidationBase.cs
│   │   │   │   │   ├── ExecutingSqlQueriesBase.cs
│   │   │   │   │   ├── ExpandingArchivesBase.cs
│   │   │   │   │   ├── HardcodedIpAddressBase.cs
│   │   │   │   │   ├── PubliclyWritableDirectoriesBase.cs
│   │   │   │   │   ├── RequestsWithExcessiveLengthBase.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegexBase.cs
│   │   │   │   │   └── UsingNonstandardCryptographyBase.cs
│   │   │   │   ├── IfChainWithoutElseBase.cs
│   │   │   │   ├── IfCollapsibleBase.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectlyBase.cs
│   │   │   │   ├── IndexOfCheckAgainstZeroBase.cs
│   │   │   │   ├── InsecureEncryptionAlgorithmBase.cs
│   │   │   │   ├── InsecureTemporaryFilesCreationBase.cs
│   │   │   │   ├── InsteadOfAnyBase.cs
│   │   │   │   ├── InvalidCastToInterfaceBase.cs
│   │   │   │   ├── JwtSignedBase.cs
│   │   │   │   ├── LineLengthBase.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethodsBase.cs
│   │   │   │   ├── LooseFilePermissionsBase.cs
│   │   │   │   ├── LooseFilePermissionsConfig.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttributeBase.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThreadBase.cs
│   │   │   │   ├── MethodOverloadsShouldBeGroupedBase.cs
│   │   │   │   ├── MethodParameterUnusedBase.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementationsBase.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLinesBase.cs
│   │   │   │   ├── MultipleVariableDeclarationBase.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFixBase.cs
│   │   │   │   ├── NameOfShouldBeUsedBase.cs
│   │   │   │   ├── NoExceptionsInFinallyBase.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNullBase.cs
│   │   │   │   ├── ObsoleteAttributesBase.cs
│   │   │   │   ├── OptionalParameterBase.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCallBase.cs
│   │   │   │   ├── ParameterAssignedToBase.cs
│   │   │   │   ├── ParameterNameMatchesOriginalBase.cs
│   │   │   │   ├── ParametersCorrectOrderBase.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttributeBase.cs
│   │   │   │   ├── PreferGuidEmptyBase.cs
│   │   │   │   ├── PropertiesAccessCorrectFieldBase.cs
│   │   │   │   ├── PropertyGetterWithThrowBase.cs
│   │   │   │   ├── PropertyWriteOnlyBase.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFieldsBase.cs
│   │   │   │   ├── PublicConstantFieldBase.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArrayBase.cs
│   │   │   │   ├── PureAttributeOnVoidMethodBase.cs
│   │   │   │   ├── RedundantNullCheckBase.cs
│   │   │   │   ├── RedundantParenthesesBase.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntaxBase.cs
│   │   │   │   ├── ReversedOperatorsBase.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalledBase.cs
│   │   │   │   ├── SelfAssignmentBase.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethodsBase.cs
│   │   │   │   ├── ShiftDynamicNotIntegerBase.cs
│   │   │   │   ├── ShouldImplementExportedInterfacesBase.cs
│   │   │   │   ├── SingleStatementPerLineBase.cs
│   │   │   │   ├── StringConcatenationInLoopBase.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicatedBase.cs
│   │   │   │   ├── SwitchCasesMinimumThreeBase.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatementsBase.cs
│   │   │   │   ├── SwitchShouldNotBeNestedBase.cs
│   │   │   │   ├── SwitchWithoutDefaultBase.cs
│   │   │   │   ├── TabCharacterBase.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleepBase.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalledBase.cs
│   │   │   │   ├── ThrowReservedExceptionsBase.cs
│   │   │   │   ├── ToStringShouldNotReturnNullBase.cs
│   │   │   │   ├── TooManyLabelsInSwitchBase.cs
│   │   │   │   ├── TooManyParametersBase.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeatedBase.cs
│   │   │   │   ├── UnconditionalJumpStatementBase.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationBase.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFixBase.cs
│   │   │   │   ├── UnusedStringBuilderBase.cs
│   │   │   │   ├── UriShouldNotBeHardcodedBase.cs
│   │   │   │   ├── UseCharOverloadOfStringMethodsBase.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTimeBase.cs
│   │   │   │   ├── UseFindSystemTimeZoneByIdBase.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTimeBase.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethodsBase.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionaryBase.cs
│   │   │   │   ├── UseShortCircuitingOperatorBase.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFixBase.cs
│   │   │   │   ├── UseTestableTimeProviderBase.cs
│   │   │   │   ├── UseTrueForAllBase.cs
│   │   │   │   ├── UseUnixEpochBase.cs
│   │   │   │   ├── UseUnixEpochCodeFixBase.cs
│   │   │   │   ├── UseWhereBeforeOrderByBase.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzerBase.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzerBase.cs
│   │   │   │   │   ├── FileMetadataAnalyzerBase.cs
│   │   │   │   │   ├── LogAnalyzerBase.cs
│   │   │   │   │   ├── MethodDeclarationInfoComparer.cs
│   │   │   │   │   ├── MetricsAnalyzerBase.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzerBase.cs
│   │   │   │   │   ├── TelemetryAnalyzerBase.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzerBase.cs
│   │   │   │   │   ├── TokenTypeAnalyzerBase.cs
│   │   │   │   │   └── UtilityAnalyzerBase.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatableBase.cs
│   │   │   │   ├── VariableUnusedBase.cs
│   │   │   │   ├── WcfNonVoidOneWayBase.cs
│   │   │   │   └── WeakSslTlsProtocolsBase.cs
│   │   │   ├── Semantics/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   │   ├── INamedTypeSymbolExtensions.cs
│   │   │   │   │   ├── INamespaceSymbolExtensions.cs
│   │   │   │   │   ├── IParameterSymbolExtensions.cs
│   │   │   │   │   ├── IPropertySymbolExtensions.cs
│   │   │   │   │   ├── ISymbolExtensions.Roslyn.cs
│   │   │   │   │   ├── ISymbolExtensions.cs
│   │   │   │   │   ├── ITypeParameterSymbolExtensions.cs
│   │   │   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   │   │   ├── KnownAssemblyExtensions.cs
│   │   │   │   │   ├── SemanticModelExtensions.cs
│   │   │   │   │   └── SymbolInfoExtensions.cs
│   │   │   │   ├── KnownAssembly.Predicates.cs
│   │   │   │   ├── KnownAssembly.cs
│   │   │   │   ├── KnownMethods.cs
│   │   │   │   ├── KnownType.Implementation.cs
│   │   │   │   ├── KnownType.cs
│   │   │   │   └── NetFrameworkVersionProvider.cs
│   │   │   ├── SonarAnalyzer.Core.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AccessibilityExtensions.cs
│   │   │   │   │   ├── AttributeDataExtensions.cs
│   │   │   │   │   ├── BinaryOperatorKindExtensions.cs
│   │   │   │   │   ├── ComparisonKindExtensions.cs
│   │   │   │   │   ├── CountComparisonResultExtensions.cs
│   │   │   │   │   ├── FileLinePositionSpanExtensions.cs
│   │   │   │   │   ├── LinePositionExtensions.cs
│   │   │   │   │   ├── LocationExtensions.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.cs
│   │   │   │   │   ├── SyntaxTokenExtensions.cs
│   │   │   │   │   ├── SyntaxTreeExtensions.cs
│   │   │   │   │   └── SyntaxTriviaExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── AccessorAccess.cs
│   │   │   │       ├── ComparisonKind.cs
│   │   │   │       ├── CountComparisionResult.cs
│   │   │   │       ├── EquivalenceChecker.cs
│   │   │   │       ├── ExpressionNumericConverterBase.cs
│   │   │   │       ├── GeneratedCodeRecognizer.cs
│   │   │   │       ├── IExpressionNumericConverter.cs
│   │   │   │       ├── MethodParameterLookupBase.cs
│   │   │   │       ├── RemovableDeclarationCollectorBase.cs
│   │   │   │       ├── StringInterpolationConstantValueResolver.cs
│   │   │   │       └── VisualIndentComparer.cs
│   │   │   ├── Trackers/
│   │   │   │   ├── ArgumentContext.cs
│   │   │   │   ├── ArgumentDescriptor.cs
│   │   │   │   ├── ArgumentTracker.cs
│   │   │   │   ├── AssignmentFinder.cs
│   │   │   │   ├── BaseContext.cs
│   │   │   │   ├── BaseTypeContext.cs
│   │   │   │   ├── BaseTypeTracker.cs
│   │   │   │   ├── BuilderPatternCondition.cs
│   │   │   │   ├── BuilderPatternDescriptor.cs
│   │   │   │   ├── ConstantValueFinder.cs
│   │   │   │   ├── ElementAccessContext.cs
│   │   │   │   ├── ElementAccessTracker.cs
│   │   │   │   ├── FieldAccessContext.cs
│   │   │   │   ├── FieldAccessTracker.cs
│   │   │   │   ├── InvocationContext.cs
│   │   │   │   ├── InvocationTracker.cs
│   │   │   │   ├── MemberDescriptor.cs
│   │   │   │   ├── MethodDeclarationContext.cs
│   │   │   │   ├── MethodDeclarationTracker.cs
│   │   │   │   ├── ObjectCreationContext.cs
│   │   │   │   ├── ObjectCreationTracker.cs
│   │   │   │   ├── PropertyAccessContext.cs
│   │   │   │   ├── PropertyAccessTracker.cs
│   │   │   │   ├── SyntaxBaseContext.cs
│   │   │   │   ├── SyntaxTrackerBase.cs
│   │   │   │   ├── TrackerBase.cs
│   │   │   │   └── TrackerInput.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.Shared/
│   │   │   ├── LoggingFrameworkMethods.cs
│   │   │   ├── SonarAnalyzer.Shared.projitems
│   │   │   ├── SonarAnalyzer.Shared.shproj
│   │   │   └── Syntax/
│   │   │       └── Extensions/
│   │   │           ├── MemberAccessExpressionSyntaxExtensionsShared.cs
│   │   │           ├── StatementSyntaxExtensionsShared.cs
│   │   │           ├── SyntaxNodeExtensionsShared.cs
│   │   │           └── SyntaxTokenExtensionsShared.cs
│   │   ├── SonarAnalyzer.ShimLayer/
│   │   │   ├── Common/
│   │   │   │   ├── ISyntaxWrapper.cs
│   │   │   │   └── SyntaxNodeTypes.cs
│   │   │   ├── PartialTypes/
│   │   │   │   ├── BaseNamespaceDeclarationSyntaxWrapper.cs
│   │   │   │   ├── BaseObjectCreationExpressionSyntaxWrapper.cs
│   │   │   │   └── CommonForEachStatementSyntaxWrapper.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.csproj
│   │   │   ├── TemporaryLightUp/
│   │   │   │   ├── LightupHelpers.cs
│   │   │   │   ├── SeparatedSyntaxListWrapper`1.cs
│   │   │   │   ├── SyntaxWrapper`1.cs
│   │   │   │   └── TryGetValueAccessor`3.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.CodeGeneration/
│   │   │   ├── GeneratorSyntaxExtensions.cs
│   │   │   ├── LICENSE
│   │   │   ├── OperationLightupGenerator.cs
│   │   │   ├── RoslynHashCode.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.CodeGeneration.csproj
│   │   │   ├── SyntaxLightupGenerator.cs
│   │   │   ├── XElementExtensions.cs
│   │   │   ├── XmlSyntaxFactory.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.Generator/
│   │   │   ├── Factory.cs
│   │   │   ├── Model/
│   │   │   │   ├── MemberDescriptor.cs
│   │   │   │   ├── ModelBuilder.cs
│   │   │   │   ├── StrategyModel.cs
│   │   │   │   ├── TypeDescriptor.cs
│   │   │   │   └── TypeLoader.cs
│   │   │   ├── ShimLayerGenerator.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.Generator.csproj
│   │   │   ├── Strategies/
│   │   │   │   ├── IOperationStrategy.cs
│   │   │   │   ├── NewEnumStrategy.cs
│   │   │   │   ├── NoChangeStrategy.cs
│   │   │   │   ├── PartialEnumStrategy.cs
│   │   │   │   ├── SeparatedSyntaxListStrategy.cs
│   │   │   │   ├── SkipStrategy.cs
│   │   │   │   ├── Strategy.cs
│   │   │   │   ├── SyntaxNodeExtendStrategy.cs
│   │   │   │   └── SyntaxNodeWrapStrategy.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.Lightup/
│   │   │   ├── AnalysisContext/
│   │   │   │   ├── CompilationStartAnalysisContextExtensions.cs
│   │   │   │   └── SymbolStartAnalysisContextWrapper.cs
│   │   │   ├── AnalyzerConfigOptionsProviderWrapper.cs
│   │   │   ├── AnalyzerConfigOptionsWrapper.cs
│   │   │   ├── AnalyzerOptionsExtensions.cs
│   │   │   ├── ArgumentSyntaxExtensions.cs
│   │   │   ├── BaseMethodDeclarationSyntaxExtensions.cs
│   │   │   ├── CSharp7.md
│   │   │   ├── CSharp71.md
│   │   │   ├── CSharp72.md
│   │   │   ├── CSharp73.md
│   │   │   ├── CSharp8.md
│   │   │   ├── IFieldSymbolExtensions.cs
│   │   │   ├── INamedTypeSymbolExtensions.cs
│   │   │   ├── ISyntaxWrapper`1.cs
│   │   │   ├── ITypeParameterSymbolExtensions.cs
│   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   ├── LICENSE
│   │   │   ├── LightupHelpers.cs
│   │   │   ├── OperationInterfaces.xml
│   │   │   ├── README.md
│   │   │   ├── SeparatedSyntaxListWrapper`1.cs
│   │   │   ├── Sonar/
│   │   │   │   ├── CaptureId.cs
│   │   │   │   ├── CompilationOptionsWrapper.cs
│   │   │   │   ├── IEventSymbolExtensions.cs
│   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   ├── INamedTypeSymbolExtensions.Sonar.cs
│   │   │   │   ├── IOperationWrapper.cs
│   │   │   │   ├── IOperationWrapperSonar.cs
│   │   │   │   ├── IPropertySymbolExtensions.cs
│   │   │   │   ├── ISymbolNullableExtensions.cs
│   │   │   │   ├── ITypeSymbolExtension.cs
│   │   │   │   ├── NullabilityInfo.cs
│   │   │   │   ├── SyntaxTreeOptionsProviderWrapper.cs
│   │   │   │   └── TypeInfoExtensions.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.Lightup.csproj
│   │   │   ├── StatementSyntaxExtensions.cs
│   │   │   ├── Syntax.xml
│   │   │   ├── SyntaxFactoryEx.cs
│   │   │   ├── SyntaxFactsEx.cs
│   │   │   ├── SyntaxWrapper`1.cs
│   │   │   ├── TryGetValueAccessor`3.cs
│   │   │   ├── WrapperHelper.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.SourceGenerators/
│   │   │   ├── RuleCatalogGenerator.cs
│   │   │   ├── SonarAnalyzer.SourceGenerators.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.VisualBasic/
│   │   │   ├── Metrics/
│   │   │   │   ├── VisualBasicCognitiveComplexityMetric.cs
│   │   │   │   ├── VisualBasicExecutableLinesMetric.cs
│   │   │   │   └── VisualBasicMetrics.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│   │   │   │   ├── AlwaysSetDateTimeKind.cs
│   │   │   │   ├── ArrayCreationLongSyntax.cs
│   │   │   │   ├── ArrayCreationLongSyntaxCodeFix.cs
│   │   │   │   ├── ArrayDesignatorOnVariable.cs
│   │   │   │   ├── ArrayDesignatorOnVariableCodeFix.cs
│   │   │   │   ├── ArrayInitializationMultipleStatements.cs
│   │   │   │   ├── ArrayPassedAsParams.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.cs
│   │   │   │   │   └── RouteTemplateShouldNotStartWithSlash.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│   │   │   │   ├── AvoidUnsealedAttributes.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvoke.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│   │   │   │   ├── BooleanCheckInverted.cs
│   │   │   │   ├── BooleanLiteralUnnecessary.cs
│   │   │   │   ├── BypassingAccessibility.cs
│   │   │   │   ├── CatchRethrow.cs
│   │   │   │   ├── CertificateValidationCheck.cs
│   │   │   │   ├── CheckFileLicense.cs
│   │   │   │   ├── ClassNamedException.cs
│   │   │   │   ├── ClassNotInstantiatable.cs
│   │   │   │   ├── ClassShouldNotBeEmpty.cs
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── CollectionEmptinessChecking.cs
│   │   │   │   ├── CommentKeyword.cs
│   │   │   │   ├── CommentLineEnd.cs
│   │   │   │   ├── CommentsShouldNotBeEmpty.cs
│   │   │   │   ├── ConditionalStructureSameCondition.cs
│   │   │   │   ├── ConditionalStructureSameImplementation.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExist.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcoded.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembers.cs
│   │   │   │   ├── DeclareTypesInNamespaces.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollection.cs
│   │   │   │   ├── DoNotHardcodeCredentials.cs
│   │   │   │   ├── DoNotHardcodeSecrets.cs
│   │   │   │   ├── DoNotInstantiateSharedClasses.cs
│   │   │   │   ├── DoNotLockOnSharedResource.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjects.cs
│   │   │   │   ├── DoNotNestTernaryOperators.cs
│   │   │   │   ├── DoNotOverwriteCollectionElements.cs
│   │   │   │   ├── DoNotThrowFromDestructors.cs
│   │   │   │   ├── DoNotUseByVal.cs
│   │   │   │   ├── DoNotUseByValCodeFix.cs
│   │   │   │   ├── DoNotUseDateTimeNow.cs
│   │   │   │   ├── DoNotUseIIf.cs
│   │   │   │   ├── DoNotUseIIfCodeFix.cs
│   │   │   │   ├── EmptyMethod.cs
│   │   │   │   ├── EmptyNestedBlock.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecure.cs
│   │   │   │   ├── EndStatementUsage.cs
│   │   │   │   ├── EnumNameHasEnumSuffix.cs
│   │   │   │   ├── EventNameContainsBeforeOrAfter.cs
│   │   │   │   ├── ExceptionsShouldBePublic.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustification.cs
│   │   │   │   ├── ExitStatementUsage.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsed.cs
│   │   │   │   ├── ExpressionComplexity.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObject.cs
│   │   │   │   ├── FieldShadowsParentField.cs
│   │   │   │   ├── FieldShouldNotBePublic.cs
│   │   │   │   ├── FileLines.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefault.cs
│   │   │   │   ├── FlagsEnumWithoutInitializer.cs
│   │   │   │   ├── FlagsEnumZeroMember.cs
│   │   │   │   ├── FunctionComplexity.cs
│   │   │   │   ├── FunctionNestingDepth.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursive.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── CommandPath.cs
│   │   │   │   │   ├── ConfiguringLoggers.cs
│   │   │   │   │   ├── CreatingHashAlgorithms.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProduction.cs
│   │   │   │   │   ├── DisablingRequestValidation.cs
│   │   │   │   │   ├── ExecutingSqlQueries.cs
│   │   │   │   │   ├── ExpandingArchives.cs
│   │   │   │   │   ├── HardcodedIpAddress.cs
│   │   │   │   │   ├── PubliclyWritableDirectories.cs
│   │   │   │   │   ├── RequestsWithExcessiveLength.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegex.cs
│   │   │   │   │   └── UsingNonstandardCryptography.cs
│   │   │   │   ├── IfChainWithoutElse.cs
│   │   │   │   ├── IfCollapsible.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectly.cs
│   │   │   │   ├── IndexOfCheckAgainstZero.cs
│   │   │   │   ├── IndexedPropertyWithMultipleParameters.cs
│   │   │   │   ├── InsecureEncryptionAlgorithm.cs
│   │   │   │   ├── InsecureTemporaryFilesCreation.cs
│   │   │   │   ├── InsteadOfAny.cs
│   │   │   │   ├── InvalidCastToInterface.cs
│   │   │   │   ├── JwtSigned.cs
│   │   │   │   ├── LineContinuation.cs
│   │   │   │   ├── LineLength.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethods.cs
│   │   │   │   ├── LooseFilePermissions.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttribute.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttribute.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttribute.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThread.cs
│   │   │   │   ├── MethodOverloadsShouldBeGrouped.cs
│   │   │   │   ├── MethodParameterUnused.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementations.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLines.cs
│   │   │   │   ├── MultipleVariableDeclaration.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFix.cs
│   │   │   │   ├── NameOfShouldBeUsed.cs
│   │   │   │   ├── Naming/
│   │   │   │   │   ├── ClassName.cs
│   │   │   │   │   ├── EnumNameShouldFollowRegex.cs
│   │   │   │   │   ├── EnumerationValueName.cs
│   │   │   │   │   ├── EventHandlerName.cs
│   │   │   │   │   ├── EventName.cs
│   │   │   │   │   ├── FieldNameChecker.cs
│   │   │   │   │   ├── FunctionName.cs
│   │   │   │   │   ├── InterfaceName.cs
│   │   │   │   │   ├── LocalVariableName.cs
│   │   │   │   │   ├── NamespaceName.cs
│   │   │   │   │   ├── ParameterName.cs
│   │   │   │   │   ├── PrivateConstantFieldName.cs
│   │   │   │   │   ├── PrivateFieldName.cs
│   │   │   │   │   ├── PrivateSharedReadonlyFieldName.cs
│   │   │   │   │   ├── PropertyName.cs
│   │   │   │   │   ├── PublicConstantFieldName.cs
│   │   │   │   │   ├── PublicFieldName.cs
│   │   │   │   │   ├── PublicSharedReadonlyFieldName.cs
│   │   │   │   │   └── TypeParameterName.cs
│   │   │   │   ├── NegatedIsExpression.cs
│   │   │   │   ├── NegatedIsExpressionCodeFix.cs
│   │   │   │   ├── NoExceptionsInFinally.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNull.cs
│   │   │   │   ├── ObsoleteAttributes.cs
│   │   │   │   ├── OnErrorStatement.cs
│   │   │   │   ├── OptionExplicitOn.cs
│   │   │   │   ├── OptionStrictOn.cs
│   │   │   │   ├── OptionalParameter.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCall.cs
│   │   │   │   ├── ParameterAssignedTo.cs
│   │   │   │   ├── ParameterNameMatchesOriginal.cs
│   │   │   │   ├── ParametersCorrectOrder.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttribute.cs
│   │   │   │   ├── PreferGuidEmpty.cs
│   │   │   │   ├── PropertiesAccessCorrectField.cs
│   │   │   │   ├── PropertyGetterWithThrow.cs
│   │   │   │   ├── PropertyWithArrayType.cs
│   │   │   │   ├── PropertyWriteOnly.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFields.cs
│   │   │   │   ├── PublicConstantField.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArray.cs
│   │   │   │   ├── PureAttributeOnVoidMethod.cs
│   │   │   │   ├── RedundantExitSelect.cs
│   │   │   │   ├── RedundantNullCheck.cs
│   │   │   │   ├── RedundantParentheses.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntax.cs
│   │   │   │   ├── ReversedOperators.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalled.cs
│   │   │   │   ├── SelfAssignment.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethods.cs
│   │   │   │   ├── ShiftDynamicNotInteger.cs
│   │   │   │   ├── ShouldImplementExportedInterfaces.cs
│   │   │   │   ├── SimpleDoLoop.cs
│   │   │   │   ├── SingleStatementPerLine.cs
│   │   │   │   ├── StringConcatenationInLoop.cs
│   │   │   │   ├── StringConcatenationWithPlus.cs
│   │   │   │   ├── StringConcatenationWithPlusCodeFix.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicated.cs
│   │   │   │   ├── SwitchCasesMinimumThree.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatements.cs
│   │   │   │   ├── SwitchShouldNotBeNested.cs
│   │   │   │   ├── SwitchWithoutDefault.cs
│   │   │   │   ├── TabCharacter.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleep.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalled.cs
│   │   │   │   ├── ThrowReservedExceptions.cs
│   │   │   │   ├── ToStringShouldNotReturnNull.cs
│   │   │   │   ├── TooManyLabelsInSwitch.cs
│   │   │   │   ├── TooManyParameters.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeated.cs
│   │   │   │   ├── UnconditionalJumpStatement.cs
│   │   │   │   ├── UnnecessaryBitwiseOperation.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFix.cs
│   │   │   │   ├── UnsignedTypesUsage.cs
│   │   │   │   ├── UnusedStringBuilder.cs
│   │   │   │   ├── UriShouldNotBeHardcoded.cs
│   │   │   │   ├── UseCharOverloadOfStringMethods.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTime.cs
│   │   │   │   ├── UseFindSystemTimeZoneById.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTime.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethods.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionary.cs
│   │   │   │   ├── UseReturnStatement.cs
│   │   │   │   ├── UseShortCircuitingOperator.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFix.cs
│   │   │   │   ├── UseTestableTimeProvider.cs
│   │   │   │   ├── UseTrueForAll.cs
│   │   │   │   ├── UseUnixEpoch.cs
│   │   │   │   ├── UseUnixEpochCodeFix.cs
│   │   │   │   ├── UseWhereBeforeOrderBy.cs
│   │   │   │   ├── UseWithStatement.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzer.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzer.cs
│   │   │   │   │   ├── FileMetadataAnalyzer.cs
│   │   │   │   │   ├── LogAnalyzer.cs
│   │   │   │   │   ├── MetricsAnalyzer.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzer.cs
│   │   │   │   │   ├── TelemetryAnalyzer.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzer.cs
│   │   │   │   │   └── TokenTypeAnalyzer.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatable.cs
│   │   │   │   ├── VariableUnused.cs
│   │   │   │   ├── WcfNonVoidOneWay.cs
│   │   │   │   └── WeakSslTlsProtocols.cs
│   │   │   ├── SonarAnalyzer.VisualBasic.csproj
│   │   │   ├── packages.lock.json
│   │   │   └── sonarpedia.json
│   │   └── SonarAnalyzer.VisualBasic.Core/
│   │       ├── Common/
│   │       │   └── DescriptorFactory.cs
│   │       ├── Extensions/
│   │       │   ├── ICompilationReportExtensions.cs
│   │       │   ├── ISymbolExtensions.cs
│   │       │   ├── SonarAnalysisContextExtensions.cs
│   │       │   ├── SonarCompilationStartAnalysisContextExtensions.cs
│   │       │   ├── SonarParametrizedAnalysisContextExtensions.cs
│   │       │   └── SonarSyntaxNodeReportingContextExtensions.cs
│   │       ├── Facade/
│   │       │   ├── Implementation/
│   │       │   │   ├── VisualBasicSyntaxFacade.cs
│   │       │   │   ├── VisualBasicSyntaxKindFacade.cs
│   │       │   │   └── VisualBasicTrackerFacade.cs
│   │       │   └── VisualBasicFacade.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── SonarAnalyzer.VisualBasic.Core.csproj
│   │       ├── Syntax/
│   │       │   ├── Extensions/
│   │       │   │   ├── ArgumentListSyntaxExtensions.cs
│   │       │   │   ├── ArgumentSyntaxExtensions.cs
│   │       │   │   ├── AttributeSyntaxExtensions.cs
│   │       │   │   ├── ExpressionSyntaxExtensions.Roslyn.cs
│   │       │   │   ├── ExpressionSyntaxExtensions.cs
│   │       │   │   ├── InterpolatedStringExpressionSyntaxExtensions.cs
│   │       │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │       │   │   ├── MemberAccessExpressionSyntaxExtensions.cs
│   │       │   │   ├── MethodBlockBaseSyntaxExtensions.cs
│   │       │   │   ├── MethodBlockSyntaxExtensions.cs
│   │       │   │   ├── ObjectCreationExpressionSyntaxExtensions.cs
│   │       │   │   ├── StatementSyntaxExtensions.cs
│   │       │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │       │   │   ├── SyntaxNodeExtensionsVisualBasic.cs
│   │       │   │   ├── SyntaxTokenExtensions.cs
│   │       │   │   ├── SyntaxTriviaExtensions.cs
│   │       │   │   └── VisualBasicCompilationExtensions.cs
│   │       │   └── Utilities/
│   │       │       ├── SafeVisualBasicSyntaxWalker.cs
│   │       │       ├── VisualBasicAttributeParameterLookup.cs
│   │       │       ├── VisualBasicEquivalenceChecker.cs
│   │       │       ├── VisualBasicExpressionNumericConverter.cs
│   │       │       ├── VisualBasicGeneratedCodeRecognizer.cs
│   │       │       ├── VisualBasicMethodParameterLookup.cs
│   │       │       ├── VisualBasicRemovableDeclarationCollector.cs
│   │       │       ├── VisualBasicStringInterpolationConstantValueResolver.cs
│   │       │       └── VisualBasicSyntaxClassifier.cs
│   │       ├── Trackers/
│   │       │   ├── VisualBasicArgumentTracker.cs
│   │       │   ├── VisualBasicAssignmentFinder.cs
│   │       │   ├── VisualBasicBaseTypeTracker.cs
│   │       │   ├── VisualBasicBuilderPatternCondition.cs
│   │       │   ├── VisualBasicConstantValueFinder.cs
│   │       │   ├── VisualBasicElementAccessTracker.cs
│   │       │   ├── VisualBasicFieldAccessTracker.cs
│   │       │   ├── VisualBasicInvocationTracker.cs
│   │       │   ├── VisualBasicMethodDeclarationTracker.cs
│   │       │   ├── VisualBasicObjectCreationTracker.cs
│   │       │   └── VisualBasicPropertyAccessTracker.cs
│   │       └── packages.lock.json
│   ├── stylecop.json
│   └── tests/
│       ├── Directory.Build.targets
│       ├── FrameworkMocks/
│       │   └── src/
│       │       ├── Directory.Build.targets
│       │       ├── Mocks.sln
│       │       ├── Mscorlib3.5Mock/
│       │       │   ├── Debugger.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       ├── Mscorlib4.0Mock/
│       │       │   ├── Debugger.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       ├── Mscorlib4.0MockWithIo/
│       │       │   ├── Debugger.cs
│       │       │   ├── UnmanagedMemoryStream.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       └── Mscorlib4.8Mock/
│       │           ├── Debugger.cs
│       │           ├── UnmanagedMemoryStream.cs
│       │           ├── mscorlib.csproj
│       │           └── packages.lock.json
│       ├── SonarAnalyzer.CSharp.Core.Test/
│       │   ├── Extensions/
│       │   │   ├── BaseArgumentListSyntaxExtensionsTest.cs
│       │   │   ├── BaseMethodDeclarationSyntaxExtensionsTest.cs
│       │   │   ├── ISymbolExtensionsTest.cs
│       │   │   ├── TypeDeclarationSyntaxExtensionsTest.cs
│       │   │   └── TypeSyntaxExtensionsTest.cs
│       │   ├── Facade/
│       │   │   ├── CSharpFacadeTest.cs
│       │   │   └── Implementation/
│       │   │       └── CSharpSyntaxFacadeTest.cs
│       │   ├── RegularExpressions/
│       │   │   └── MessageTemplateParserTest.cs
│       │   ├── SonarAnalyzer.CSharp.Core.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── ArgumentSyntaxExtensionsTest.cs
│       │   │   │   ├── AssignmentExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── AttributeDataExtensionsTest.cs
│       │   │   │   ├── AttributeSyntaxExtensionsTest.cs
│       │   │   │   ├── AwaitExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── BlockSyntaxExtensionsTest.cs
│       │   │   │   ├── DiagnosticDescriptorExtensionsTest.cs
│       │   │   │   ├── ExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── ITupleOperationWrapperExtensionsTest.cs
│       │   │   │   ├── InterpolatedStringExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── InvocationExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── ObjectCreationExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── PatternSyntaxWrapperExtensionsTest.cs
│       │   │   │   ├── PropertyDeclarationSyntaxExtensionsTest.cs
│       │   │   │   ├── StatementSyntaxExtensionsTest.cs
│       │   │   │   ├── SyntaxNodeExtensionsCSharpTest.cs
│       │   │   │   ├── SyntaxTokenExtensionsTest.cs
│       │   │   │   ├── SyntaxTreeExtensionsTest.cs
│       │   │   │   ├── TupleExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── TypeExtensionsTest.cs
│       │   │   │   └── VariableDesignationSyntaxWrapperTest.cs
│       │   │   └── Utilities/
│       │   │       └── SafeCSharpSyntaxWalkerTest.cs
│       │   ├── Trackers/
│       │   │   └── FieldAccessTrackerTest.cs
│       │   ├── Wrappers/
│       │   │   ├── MethodDeclarationFactoryTest.cs
│       │   │   └── ObjectCreationFactoryTest.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.CSharp.Styling.Test/
│       │   ├── Common/
│       │   │   ├── StylingRuleTest.cs
│       │   │   └── StylingVerifierBuilder.cs
│       │   ├── Rules/
│       │   │   ├── AllArgumentsOnSameLineTest.cs
│       │   │   ├── AllParametersOnSameColumnTest.cs
│       │   │   ├── AllParametersOnSameLineTest.cs
│       │   │   ├── ArrowLocationTest.cs
│       │   │   ├── AvoidArrangeActAssertCommentTest.cs
│       │   │   ├── AvoidDeconstructionTest.cs
│       │   │   ├── AvoidGetTest.cs
│       │   │   ├── AvoidListForEachTest.cs
│       │   │   ├── AvoidNullableTest.cs
│       │   │   ├── AvoidPrimaryConstructorTest.cs
│       │   │   ├── AvoidUnusedInterpolationTest.cs
│       │   │   ├── AvoidValueTupleTest.cs
│       │   │   ├── AvoidVarPatternTest.cs
│       │   │   ├── FieldOrderingTest.cs
│       │   │   ├── FileScopeNamespaceTest.cs
│       │   │   ├── HelperInTypeNameTest.cs
│       │   │   ├── IndentArgumentTest.cs
│       │   │   ├── IndentInvocationTest.cs
│       │   │   ├── IndentOperatorTest.cs
│       │   │   ├── IndentRawStringTest.cs
│       │   │   ├── IndentTernaryTest.cs
│       │   │   ├── InitializerLineTest.cs
│       │   │   ├── LambdaParameterNameTest.cs
│       │   │   ├── LocalFunctionLocationTest.cs
│       │   │   ├── MemberAccessLineTest.cs
│       │   │   ├── MemberVisibilityOrderingTest.cs
│       │   │   ├── MethodExpressionBodyLineTest.cs
│       │   │   ├── MoveMethodToDedicatedExtensionClassTest.cs
│       │   │   ├── NamespaceNameTest.cs
│       │   │   ├── NullPatternMatchingTest.cs
│       │   │   ├── OperatorLocationTest.cs
│       │   │   ├── PropertyOrderingTest.cs
│       │   │   ├── ProtectedFieldsCaseTest.cs
│       │   │   ├── SeparateDeclarationsTest.cs
│       │   │   ├── TernaryLineTest.cs
│       │   │   ├── TypeMemberOrderingTest.cs
│       │   │   ├── UseDifferentMemberTest.cs
│       │   │   ├── UseFieldTest.cs
│       │   │   ├── UseInnermostRegistrationContextTest.cs
│       │   │   ├── UseLinqExtensionsTest.cs
│       │   │   ├── UseNullInsteadOfDefaultTest.cs
│       │   │   ├── UsePositiveLogicTest.cs
│       │   │   ├── UseRawStringTest.cs
│       │   │   ├── UseRegexSafeIsMatchTest.cs
│       │   │   ├── UseShortNameTest.cs
│       │   │   └── UseVarTest.cs
│       │   ├── SonarAnalyzer.CSharp.Styling.Test.csproj
│       │   ├── TestCases/
│       │   │   ├── AllArgumentsOnSameLine.cs
│       │   │   ├── AllParametersOnSameColumn.cs
│       │   │   ├── AllParametersOnSameLine.cs
│       │   │   ├── ArrowLocation.cs
│       │   │   ├── AvoidArrangeActAssertComment.cs
│       │   │   ├── AvoidDeconstruction.TopLevelStatements.cs
│       │   │   ├── AvoidDeconstruction.cs
│       │   │   ├── AvoidGet.cs
│       │   │   ├── AvoidListForEach.cs
│       │   │   ├── AvoidNullable.cs
│       │   │   ├── AvoidPrimaryConstructor.cs
│       │   │   ├── AvoidUnusedInterpolation.cs
│       │   │   ├── AvoidValueTuple.cs
│       │   │   ├── AvoidVarPattern.cs
│       │   │   ├── FieldOrdering.cs
│       │   │   ├── FileScopeNamespace.Compliant.cs
│       │   │   ├── FileScopeNamespace.cs
│       │   │   ├── HelperInTypeName.cs
│       │   │   ├── IndentArgument.cs
│       │   │   ├── IndentInvocation.cs
│       │   │   ├── IndentOperator.cs
│       │   │   ├── IndentRawString.cs
│       │   │   ├── IndentTernary.cs
│       │   │   ├── InitializerLine.cs
│       │   │   ├── LambdaParameterName.cs
│       │   │   ├── LocalFunctionLocation.TopLevelStatements.cs
│       │   │   ├── LocalFunctionLocation.cs
│       │   │   ├── MemberAccessLine.cs
│       │   │   ├── MemberVisibilityOrdering.cs
│       │   │   ├── MethodExpressionBodyLine.cs
│       │   │   ├── MoveMethodToDedicatedExtensionClass.cs
│       │   │   ├── NullPatternMatching.cs
│       │   │   ├── OperatorLocation.cs
│       │   │   ├── PropertyOrdering.cs
│       │   │   ├── ProtectedFieldsCase.cs
│       │   │   ├── SeparateDeclarations.cs
│       │   │   ├── TernaryLine.cs
│       │   │   ├── TypeMemberOrdering.cs
│       │   │   ├── UseDifferentMember.cs
│       │   │   ├── UseField.cs
│       │   │   ├── UseInnermostRegistrationContext.cs
│       │   │   ├── UseLinqExtensions.cs
│       │   │   ├── UseNullInsteadOfDefault.cs
│       │   │   ├── UsePositiveLogic.cs
│       │   │   ├── UseRawString.cs
│       │   │   ├── UseRegexSafeIsMatch.cs
│       │   │   ├── UseShortName.cs
│       │   │   └── UseVar.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Core.Test/
│       │   ├── AnalysisContext/
│       │   │   ├── IssueReporterTest.cs
│       │   │   ├── SonarCodeBlockReportingContextTest.cs
│       │   │   ├── SonarCodeBlockStartAnalysisContextTest.cs
│       │   │   ├── SonarCodeFixContextTest.cs
│       │   │   ├── SonarCompilationReportingContextTest.cs
│       │   │   ├── SonarCompilationStartAnalysisContextTest.cs
│       │   │   ├── SonarSemanticModelReportingContextTest.cs
│       │   │   ├── SonarSymbolReportingContextTest.cs
│       │   │   ├── SonarSyntaxNodeReportingContextTest.cs
│       │   │   └── SonarSyntaxTreeReportingContextTest.cs
│       │   ├── Analyzers/
│       │   │   └── DiagnosticDescriptorFactoryTest.cs
│       │   ├── Common/
│       │   │   ├── AnalyzerAdditionalFileTest.cs
│       │   │   ├── AnalyzerConfigurationTest.cs
│       │   │   ├── AnalyzerLanguageTest.cs
│       │   │   ├── BidirectionalDictionaryTest.cs
│       │   │   ├── DisjointSetsTest.cs
│       │   │   ├── FixAllProviders/
│       │   │   │   └── DocumentBasedFixAllProviderTest.cs
│       │   │   ├── HashCodeTest.cs
│       │   │   ├── MultiValueDictionaryTest.cs
│       │   │   ├── NaturalLanguageDetectorTest.cs
│       │   │   ├── RuleLoaderTest.cs
│       │   │   ├── ShannonEntropyTest.cs
│       │   │   └── UnexpectedLanguageExceptionTest.cs
│       │   ├── Configuration/
│       │   │   ├── AnalysisConfigReaderTest.cs
│       │   │   ├── FilesToAnalyzeProviderTest.cs
│       │   │   ├── ProjectConfigReaderTest.cs
│       │   │   ├── ProjectTypeCacheTest.cs
│       │   │   ├── SonarLintXmlReaderTest.cs
│       │   │   └── SonarLintXmlTest.cs
│       │   ├── Extensions/
│       │   │   ├── BasicBlockExtensionsTest.cs
│       │   │   ├── CompilationExtensionsTest.cs
│       │   │   ├── ControlFlowGraphExtensionsTest.cs
│       │   │   ├── DictionaryExtensionsTest.cs
│       │   │   ├── IEnumerableExtensionsTest.cs
│       │   │   ├── IXmlLineInfoExtensionsTest.cs
│       │   │   ├── RegexExtensionsTest.cs
│       │   │   └── XAttributeExtensionsTest.cs
│       │   ├── Json/
│       │   │   ├── JsonNodeTest.cs
│       │   │   ├── JsonSerializerTest.cs
│       │   │   ├── JsonWalkerTest.cs
│       │   │   ├── LexicalAnalyzerTest.cs
│       │   │   └── SyntaxAnalyzerTest.cs
│       │   ├── RegularExpressions/
│       │   │   ├── RegexContextTest.cs
│       │   │   └── WildcardPatternMatcherTest.cs
│       │   ├── Semantics/
│       │   │   ├── Extensions/
│       │   │   │   ├── IMethodSymbolExtensionsTest.cs
│       │   │   │   ├── INamedTypeSymbolExtensionsTest.cs
│       │   │   │   ├── INamespaceSymbolExtensionsTest.cs
│       │   │   │   ├── IParameterSymbolExtensionsTest.cs
│       │   │   │   ├── IPropertySymbolExtensionsTest.cs
│       │   │   │   ├── ISymbolExtensionsTest.cs
│       │   │   │   └── ITypeSymbolExtensionsTest.cs
│       │   │   ├── KnownAssemblyTest.cs
│       │   │   ├── KnownMethodsTest.cs
│       │   │   ├── KnownTypeTest.cs
│       │   │   └── NetFrameworkVersionProviderTest.cs
│       │   ├── SonarAnalyzer.Core.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── ComparisonKindExtensionsTest.cs
│       │   │   │   ├── CountComparisonResultExtensionsTest.cs
│       │   │   │   ├── LocationExtensionsTest.cs
│       │   │   │   ├── SyntaxNodeExtensionsTest.cs
│       │   │   │   └── SyntaxTokenExtensionsTest.cs
│       │   │   └── Utilities/
│       │   │       ├── GeneratedCodeRecognizerTest.cs
│       │   │       └── VisualIndentComparerTest.cs
│       │   ├── TestResources/
│       │   │   ├── FilesToAnalyze/
│       │   │   │   ├── EmptyFilesToAnalyze.txt
│       │   │   │   ├── FilesToAnalyze.txt
│       │   │   │   └── FilesToAnalyzeWithInvalidValues.txt
│       │   │   ├── SonarLintXml/
│       │   │   │   ├── All_properties_cs/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── All_properties_vbnet/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Duplicated_Properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Incorrect_value_type/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Missing_properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Partially_missing_properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   └── PropertiesCSharpTrueVbnetFalse/
│       │   │   │       └── SonarLint.xml
│       │   │   └── SonarProjectConfig/
│       │   │       ├── Invalid_DifferentClassName/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Invalid_DifferentNamespace/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Invalid_Xml/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingAnalysisConfigPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingFilesToAnalyzePath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingOutPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingProjectPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingProjectType/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingTargetFramework/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_MixedSeparators/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_Unix/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_Windows/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       └── UnexpectedProjectTypeValue/
│       │   │           └── SonarProjectConfig.xml
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Memory.Test/
│       │   ├── DotMemorySetupTest.cs
│       │   ├── MSTestSettings.cs
│       │   ├── Registrations/
│       │   │   └── SonarSyntaxNodeReportingContextMemoryTest.cs
│       │   ├── RunMemoryTest.ps1
│       │   ├── SonarAnalyzer.Memory.Test.csproj
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.ShimLayer.Generator.Test/
│       │   ├── FactoryTest.cs
│       │   ├── Model/
│       │   │   ├── ModelBuilderTest.cs
│       │   │   └── TypeLoaderTest.cs
│       │   ├── Snapshots/
│       │   │   ├── Snap#AccessorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AliasQualifiedNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AllowsConstraintClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AllowsConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AnonymousFunctionExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AnonymousMethodExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ArgumentKind.g.cs.verified.cs
│       │   │   ├── Snap#ArgumentSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ArrayTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseExpressionColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseMethodDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseNamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseObjectCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BasicBlockKind.g.cs.verified.cs
│       │   │   ├── Snap#BinaryOperatorKind.g.cs.verified.cs
│       │   │   ├── Snap#BinaryPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BlockSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BranchKind.g.cs.verified.cs
│       │   │   ├── Snap#BreakStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CaseKind.g.cs.verified.cs
│       │   │   ├── Snap#CasePatternSwitchLabelSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CheckedStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ClassDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ClassOrStructConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CollectionElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CollectionExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CommonForEachStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConstantPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConstructorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ContinueStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowBranchSemantics.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowConditionKind.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowRegionKind.g.cs.verified.cs
│       │   │   ├── Snap#ConversionOperatorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConversionOperatorMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CrefParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DeclarationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DeclarationPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DefaultConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DestructorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DiscardDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DiscardPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DoStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EmptyStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EnumMemberDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EventDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionOrPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExtensionBlockDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExtensionMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FieldExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FileScopedNamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FixedStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForEachStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForEachVariableStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerCallingConventionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerParameterListSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerUnmanagedCallingConventionListSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerUnmanagedCallingConventionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GeneratedKind.g.cs.verified.cs
│       │   │   ├── Snap#GenericNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GlobalStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GotoStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IAddressOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAnonymousFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAnonymousObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArgumentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayElementReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAttributeOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAwaitOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBinaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBinaryPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBlockOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBranchOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICatchClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICaughtExceptionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICoalesceAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICoalesceOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICollectionElementInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICollectionExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICompoundAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalAccessInstanceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConstantPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConstructorBodyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConversionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeclarationExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeclarationPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeconstructionAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDefaultCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDefaultValueOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDelegateCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDiscardOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDiscardPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicIndexerAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicMemberReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEmptyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEndOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEventAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEventReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IExpressionStatementOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFieldInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFieldReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowAnonymousFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowCaptureOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowCaptureReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForEachLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForToLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFunctionPointerInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IImplicitIndexerReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIncrementOrDecrementOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInlineArrayAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInstanceReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringAdditionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringAppendOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringContentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringHandlerArgumentPlaceholderOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringHandlerCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringTextOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInvalidOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsNullOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsTypeOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILabeledOperation.g.cs.verified.cs
│       │   │   ├── Snap#IListPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILiteralOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILocalFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILocalReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILockOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMemberInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMemberReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodBodyBaseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodBodyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#INameOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#INegatedPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IObjectOrCollectionInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IOmittedArgumentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParameterInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParameterReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParenthesizedOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPatternCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertyInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertyReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertySubpatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRaiseEventOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRangeCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRangeOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReDimClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReDimOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRecursivePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRelationalCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRelationalPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReturnOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISimpleAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISingleValueCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISizeOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISlicePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISpreadOperation.g.cs.verified.cs
│       │   │   ├── Snap#IStaticLocalInitializationSemaphoreOperation.g.cs.verified.cs
│       │   │   ├── Snap#IStopOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchCaseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchExpressionArmOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISymbolInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IThrowOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITranslatedQueryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITupleBinaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITupleOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypeOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypeParameterObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUnaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUsingDeclarationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUsingOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUtf8StringOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclarationGroupOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclarationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclaratorOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IWhileLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IWithOperation.g.cs.verified.cs
│       │   │   ├── Snap#IdentifierNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IfStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IgnoredDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ImplicitObjectCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ImplicitStackAllocArrayCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IncrementalGeneratorOutputKind.g.cs.verified.cs
│       │   │   ├── Snap#IncrementalStepRunReason.g.cs.verified.cs
│       │   │   ├── Snap#InstanceReferenceKind.g.cs.verified.cs
│       │   │   ├── Snap#InstrumentationKind.g.cs.verified.cs
│       │   │   ├── Snap#InterfaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#InterpolatedStringArgumentPlaceholderKind.g.cs.verified.cs
│       │   │   ├── Snap#IsPatternExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LabeledStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LanguageVersion.g.cs.verified.cs
│       │   │   ├── Snap#LineDirectivePositionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LineOrSpanDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LineSpanDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ListPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LocalDeclarationStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LocalFunctionStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LockStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LoopKind.g.cs.verified.cs
│       │   │   ├── Snap#MemberDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#MetadataImportOptions.g.cs.verified.cs
│       │   │   ├── Snap#MethodKind.g.cs.verified.cs
│       │   │   ├── Snap#NameColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NullableAnnotation.g.cs.verified.cs
│       │   │   ├── Snap#NullableContext.g.cs.verified.cs
│       │   │   ├── Snap#NullableContextOptions.g.cs.verified.cs
│       │   │   ├── Snap#NullableDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NullableFlowState.g.cs.verified.cs
│       │   │   ├── Snap#NullableTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OmittedTypeArgumentSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OperationKind.g.cs.verified.cs
│       │   │   ├── Snap#OperatorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OperatorMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedLambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedVariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#Platform.g.cs.verified.cs
│       │   │   ├── Snap#PointerTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PositionalPatternClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PredefinedTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PrimaryConstructorBaseTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PropertyPatternClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#QualifiedNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RangeExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RecordDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RecursivePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefKind.g.cs.verified.cs
│       │   │   ├── Snap#RefStructConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RelationalPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ReturnStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RuntimeCapability.g.cs.verified.cs
│       │   │   ├── Snap#SarifVersion.g.cs.verified.cs
│       │   │   ├── Snap#ScopedKind.g.cs.verified.cs
│       │   │   ├── Snap#ScopedTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SemanticEditKind.g.cs.verified.cs
│       │   │   ├── Snap#SemanticModelOptions.g.cs.verified.cs
│       │   │   ├── Snap#ShebangDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SimpleLambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SimpleNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SingleVariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SlicePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SpecialType.g.cs.verified.cs
│       │   │   ├── Snap#SpreadElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StackAllocArrayCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StructDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SubpatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchExpressionArmSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayLocalOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayMemberOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayMiscellaneousOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayParameterOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayPartKind.g.cs.verified.cs
│       │   │   ├── Snap#SymbolKind.g.cs.verified.cs
│       │   │   ├── Snap#SyntaxKind.g.cs.verified.cs
│       │   │   ├── Snap#ThrowExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ThrowStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TryStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeKind.g.cs.verified.cs
│       │   │   ├── Snap#TypePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UnaryOperatorKind.g.cs.verified.cs
│       │   │   ├── Snap#UnaryPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UnsafeStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UsingDirectiveSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UsingStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#VarPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#VariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WhenClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WhileStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WithExpressionSyntax.g.cs.verified.cs
│       │   │   └── Snap#YieldStatementSyntax.g.cs.verified.cs
│       │   ├── SonarAnalyzer.ShimLayer.Generator.Test.csproj
│       │   ├── Strategies/
│       │   │   ├── NewEnumStrategyTest.cs
│       │   │   ├── NoChangeStrategyTest.cs
│       │   │   ├── PartialEnumStrategyTest.cs
│       │   │   ├── SkipStrategyTest.cs
│       │   │   ├── SyntaxNodeExtendStrategyTest.cs
│       │   │   └── SyntaxNodeWrapStrategyTest.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Test/
│       │   ├── AnalysisContext/
│       │   │   ├── SonarAnalysisContextBaseTest.ShouldAnalyzeTree.cs
│       │   │   ├── SonarAnalysisContextBaseTest.cs
│       │   │   ├── SonarAnalysisContextTest.Parametrized.cs
│       │   │   ├── SonarAnalysisContextTest.Register.cs
│       │   │   └── SonarAnalysisContextTest.cs
│       │   ├── CFG/
│       │   │   ├── CfgSerializer/
│       │   │   │   └── DotWriterTest.cs
│       │   │   ├── Extensions/
│       │   │   │   └── IOperationExtensionsTest.cs
│       │   │   ├── Roslyn/
│       │   │   │   ├── BasicBlockTest.cs
│       │   │   │   ├── CaptureIdTest.cs
│       │   │   │   ├── CfgAllPathValidatorTest.cs
│       │   │   │   ├── ControlFlowBranchTest.cs
│       │   │   │   ├── ControlFlowRegionTest.cs
│       │   │   │   ├── RoslynCfgSerializerTest.cs
│       │   │   │   ├── RoslynControlFlowGraphTest.cs
│       │   │   │   └── RoslynLvaSerializerTest.cs
│       │   │   └── Sonar/
│       │   │       ├── BlockIdProviderTest.cs
│       │   │       ├── SonarCfgSerializerTest.cs
│       │   │       └── SonarControlFlowGraphTest.cs
│       │   ├── Common/
│       │   │   ├── ConcurrentExecutionTest.cs
│       │   │   ├── MetricsTest.cs
│       │   │   ├── ParameterLoaderTest.cs
│       │   │   ├── RuleCatalogTest.cs
│       │   │   ├── SecurityHotspotTest.cs
│       │   │   ├── UnchangedFilesTest.cs
│       │   │   ├── UniqueQueueTest.cs
│       │   │   └── XUnitVersions.cs
│       │   ├── Extensions/
│       │   │   ├── ICompilationReportExtensionsTests.cs
│       │   │   ├── StringExtensionsTest.cs
│       │   │   ├── SyntaxNodeExtensionsTest.cs
│       │   │   └── SyntaxTokenExtensionsSharedTest.cs
│       │   ├── LiveVariableAnalysis/
│       │   │   ├── RoslynLiveVariableAnalysisTest.FlowCaptureOperation.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.LocalFunction.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.TryCatchFinally.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.cs
│       │   │   └── SonarLiveVariableAnalysisTest.cs
│       │   ├── Metrics/
│       │   │   ├── CSharpExecutableLinesMetricTest.cs
│       │   │   └── VisualBasicExecutableLinesMetricTest.cs
│       │   ├── Operations/
│       │   │   └── Utilities/
│       │   │       ├── OperationExecutionOrderTest.cs
│       │   │       └── OperationFinderTest.cs
│       │   ├── Rules/
│       │   │   ├── AbstractClassToInterfaceTest.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructorsTest.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementationTest.cs
│       │   │   ├── AlwaysSetDateTimeKindTest.cs
│       │   │   ├── AnonymousDelegateEventUnsubscribeTest.cs
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameterTest.cs
│       │   │   ├── ArrayCovarianceTest.cs
│       │   │   ├── ArrayCreationLongSyntaxTest.cs
│       │   │   ├── ArrayDesignatorOnVariableTest.cs
│       │   │   ├── ArrayInitializationMultipleStatementsTest.cs
│       │   │   ├── ArrayPassedAsParamsTest.cs
│       │   │   ├── AspNet/
│       │   │   │   ├── AnnotateApiActionsWithHttpVerbTest.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerTest.cs
│       │   │   │   ├── AvoidUnderPostingTest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutesTest.cs
│       │   │   │   ├── CallModelStateIsValidTest.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilitiesTest.cs
│       │   │   │   ├── ControllersReuseClientTest.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlashTest.cs
│       │   │   │   ├── SpecifyRouteAttributeTest.cs
│       │   │   │   └── UseAspNetModelBindingTest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrderTest.cs
│       │   │   ├── AssertionsShouldBeCompleteTest.cs
│       │   │   ├── AssignmentInsideSubExpressionTest.cs
│       │   │   ├── AsyncAwaitIdentifierTest.cs
│       │   │   ├── AsyncVoidMethodTest.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarkingTest.cs
│       │   │   ├── AvoidExcessiveClassCouplingTest.cs
│       │   │   ├── AvoidExcessiveInheritanceTest.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazorTest.cs
│       │   │   ├── AvoidUnsealedAttributesTest.cs
│       │   │   ├── BeginInvokePairedWithEndInvokeTest.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressionsTest.cs
│       │   │   ├── BlazorQueryParameterRoutableComponentTest.cs
│       │   │   ├── BooleanCheckInvertedTest.cs
│       │   │   ├── BooleanLiteralUnnecessaryTest.cs
│       │   │   ├── BreakOutsideSwitchTest.cs
│       │   │   ├── BypassingAccessibilityTest.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlockingTest.cs
│       │   │   ├── CallerInformationParametersShouldBeLastTest.cs
│       │   │   ├── CastConcreteTypeToInterfaceTest.cs
│       │   │   ├── CastShouldNotBeDuplicatedTest.cs
│       │   │   ├── CatchEmptyTest.cs
│       │   │   ├── CatchRethrowTest.cs
│       │   │   ├── CertificateValidationCheckTest.cs
│       │   │   ├── CheckArgumentExceptionTest.cs
│       │   │   ├── CheckFileLicenseTest.cs
│       │   │   ├── ClassAndMethodNameTest.cs
│       │   │   ├── ClassNamedExceptionTest.cs
│       │   │   ├── ClassNotInstantiatableTest.cs
│       │   │   ├── ClassShouldNotBeEmptyTest.cs
│       │   │   ├── ClassWithEqualityShouldImplementIEquatableTest.cs
│       │   │   ├── ClassWithOnlyStaticMemberTest.cs
│       │   │   ├── CloudNative/
│       │   │   │   ├── AzureFunctionsCatchExceptionsTest.cs
│       │   │   │   ├── AzureFunctionsLogFailuresTest.cs
│       │   │   │   ├── AzureFunctionsReuseClientsTest.cs
│       │   │   │   ├── AzureFunctionsStatelessTest.cs
│       │   │   │   └── DurableEntityInterfaceRestrictionsTest.cs
│       │   │   ├── CognitiveComplexityTest.cs
│       │   │   ├── CollectionEmptinessCheckingTest.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnlyTest.cs
│       │   │   ├── CollectionQuerySimplificationTest.cs
│       │   │   ├── CollectionsShouldImplementGenericInterfaceTest.cs
│       │   │   ├── CommentKeywordTest.cs
│       │   │   ├── CommentLineEndTest.cs
│       │   │   ├── CommentedOutCodeTest.cs
│       │   │   ├── CommentsShouldNotBeEmptyTest.cs
│       │   │   ├── ComparableInterfaceImplementationTest.cs
│       │   │   ├── CompareNaNTest.cs
│       │   │   ├── ConditionalSimplificationTest.cs
│       │   │   ├── ConditionalStructureSameConditionTest.cs
│       │   │   ├── ConditionalStructureSameImplementationTest.cs
│       │   │   ├── ConditionalsShouldStartOnNewLineTest.cs
│       │   │   ├── ConditionalsWithSameConditionTest.cs
│       │   │   ├── ConstructorArgumentValueShouldExistTest.cs
│       │   │   ├── ConstructorOverridableCallTest.cs
│       │   │   ├── ConsumeValueTaskCorrectlyTest.cs
│       │   │   ├── ControlCharacterInStringTest.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShortTest.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalledTest.cs
│       │   │   ├── DatabasePasswordsShouldBeSecureTest.cs
│       │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKeyTest.cs
│       │   │   ├── DateTimeFormatShouldNotBeHardcodedTest.cs
│       │   │   ├── DeadStoresTest.cs
│       │   │   ├── DebugAssertHasNoSideEffectsTest.cs
│       │   │   ├── DebuggerDisplayUsesExistingMembersTest.cs
│       │   │   ├── DeclareEventHandlersCorrectlyTest.cs
│       │   │   ├── DeclareTypesInNamespacesTest.cs
│       │   │   ├── DefaultSectionShouldBeFirstOrLastTest.cs
│       │   │   ├── DelegateSubtractionTest.cs
│       │   │   ├── DisposableMemberInNonDisposableClassTest.cs
│       │   │   ├── DisposableNotDisposedTest.cs
│       │   │   ├── DisposableReturnedFromUsingTest.cs
│       │   │   ├── DisposableTypesNeedFinalizersTest.cs
│       │   │   ├── DisposeFromDisposeTest.cs
│       │   │   ├── DisposeNotImplementingDisposeTest.cs
│       │   │   ├── DoNotCallAssemblyGetExecutingAssemblyTest.cs
│       │   │   ├── DoNotCallAssemblyLoadInvalidMethodsTest.cs
│       │   │   ├── DoNotCallExitMethodsTest.cs
│       │   │   ├── DoNotCallGCCollectMethodTest.cs
│       │   │   ├── DoNotCallGCSuppressFinalizeTest.cs
│       │   │   ├── DoNotCatchNullReferenceExceptionTest.cs
│       │   │   ├── DoNotCatchSystemExceptionTest.cs
│       │   │   ├── DoNotCheckZeroSizeCollectionTest.cs
│       │   │   ├── DoNotCopyArraysInPropertiesTest.cs
│       │   │   ├── DoNotDecreaseMemberVisibilityTest.cs
│       │   │   ├── DoNotExposeListTTest.cs
│       │   │   ├── DoNotHardcodeCredentialsTest.cs
│       │   │   ├── DoNotHardcodeSecretsTest.cs
│       │   │   ├── DoNotHideBaseClassMethodsTest.cs
│       │   │   ├── DoNotInstantiateSharedClassesTest.cs
│       │   │   ├── DoNotLockOnSharedResourceTest.cs
│       │   │   ├── DoNotLockWeakIdentityObjectsTest.cs
│       │   │   ├── DoNotMarkEnumsWithFlagsTest.cs
│       │   │   ├── DoNotNestTernaryOperatorsTest.cs
│       │   │   ├── DoNotNestTypesInArgumentsTest.cs
│       │   │   ├── DoNotOverloadOperatorEqualTest.cs
│       │   │   ├── DoNotOverwriteCollectionElementsTest.cs
│       │   │   ├── DoNotShiftByZeroOrIntSizeTest.cs
│       │   │   ├── DoNotTestThisWithIsOperatorTest.cs
│       │   │   ├── DoNotThrowFromDestructorsTest.cs
│       │   │   ├── DoNotUseByValTest.cs
│       │   │   ├── DoNotUseCollectionInItsOwnMethodCallsTest.cs
│       │   │   ├── DoNotUseDateTimeNowTest.cs
│       │   │   ├── DoNotUseIIfTest.cs
│       │   │   ├── DoNotUseLiteralBoolInAssertionsTest.cs
│       │   │   ├── DoNotUseOutRefParametersTest.cs
│       │   │   ├── DoNotWriteToStandardOutputTest.cs
│       │   │   ├── DontMixIncrementOrDecrementWithOtherOperatorsTest.cs
│       │   │   ├── DontUseTraceSwitchLevelsTest.cs
│       │   │   ├── DontUseTraceWriteTest.cs
│       │   │   ├── EmptyMethodTest.cs
│       │   │   ├── EmptyNamespaceTest.cs
│       │   │   ├── EmptyNestedBlockTest.cs
│       │   │   ├── EmptyStatementTest.cs
│       │   │   ├── EncryptionAlgorithmsShouldBeSecureTest.cs
│       │   │   ├── EndStatementUsageTest.cs
│       │   │   ├── EnumNameHasEnumSuffixTest.cs
│       │   │   ├── EnumNameShouldFollowRegexTest.cs
│       │   │   ├── EnumStorageNeedsToBeInt32Test.cs
│       │   │   ├── EnumerableSumInUncheckedTest.cs
│       │   │   ├── EnumerationValueNameTest.cs
│       │   │   ├── EnumsShouldNotBeNamedReservedTest.cs
│       │   │   ├── EqualityOnFloatingPointTest.cs
│       │   │   ├── EqualityOnModulusTest.cs
│       │   │   ├── EquatableClassShouldBeSealedTest.cs
│       │   │   ├── EscapeLambdaParameterTypeNamedScopedTest.cs
│       │   │   ├── EventHandlerDelegateShouldHaveProperArgumentsTest.cs
│       │   │   ├── EventHandlerNameTest.cs
│       │   │   ├── EventNameContainsBeforeOrAfterTest.cs
│       │   │   ├── EventNameTest.cs
│       │   │   ├── ExceptionRethrowTest.cs
│       │   │   ├── ExceptionShouldNotBeThrownFromUnexpectedMethodsTest.cs
│       │   │   ├── ExceptionsNeedStandardConstructorsTest.cs
│       │   │   ├── ExceptionsShouldBeLoggedOrThrownTest.cs
│       │   │   ├── ExceptionsShouldBeLoggedTest.cs
│       │   │   ├── ExceptionsShouldBePublicTest.cs
│       │   │   ├── ExceptionsShouldBeUsedTest.cs
│       │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustificationTest.cs
│       │   │   ├── ExitStatementUsageTest.cs
│       │   │   ├── ExpectedExceptionAttributeShouldNotBeUsedTest.cs
│       │   │   ├── ExpressionComplexityTest.cs
│       │   │   ├── ExtensionMethodShouldBeInSeparateNamespaceTest.cs
│       │   │   ├── ExtensionMethodShouldNotExtendObjectTest.cs
│       │   │   ├── FieldShadowsParentFieldTest.cs
│       │   │   ├── FieldShouldBeReadonlyTest.cs
│       │   │   ├── FieldShouldNotBePublicTest.cs
│       │   │   ├── FieldsShouldBeEncapsulatedInPropertiesTest.cs
│       │   │   ├── FileLinesTest.cs
│       │   │   ├── FileShouldEndWithEmptyNewLineTest.cs
│       │   │   ├── FinalizerShouldNotBeEmptyTest.cs
│       │   │   ├── FindInsteadOfFirstOrDefaultTest.cs
│       │   │   ├── FlagsEnumWithoutInitializerTest.cs
│       │   │   ├── FlagsEnumZeroMemberTest.cs
│       │   │   ├── ForLoopConditionAlwaysFalseTest.cs
│       │   │   ├── ForLoopCounterChangedTest.cs
│       │   │   ├── ForLoopCounterConditionTest.cs
│       │   │   ├── ForLoopIncrementSignTest.cs
│       │   │   ├── ForeachLoopExplicitConversionTest.cs
│       │   │   ├── FrameworkTypeNamingTest.cs
│       │   │   ├── FunctionComplexityTest.cs
│       │   │   ├── FunctionNameTest.cs
│       │   │   ├── FunctionNestingDepthTest.cs
│       │   │   ├── GenericInheritanceShouldNotBeRecursiveTest.cs
│       │   │   ├── GenericLoggerInjectionShouldMatchEnclosingTypeTest.cs
│       │   │   ├── GenericReadonlyFieldPropertyAssignmentTest.cs
│       │   │   ├── GenericTypeParameterEmptinessCheckingTest.cs
│       │   │   ├── GenericTypeParameterInOutTest.cs
│       │   │   ├── GenericTypeParameterUnusedTest.cs
│       │   │   ├── GenericTypeParametersRequiredTest.cs
│       │   │   ├── GetHashCodeEqualsOverrideTest.cs
│       │   │   ├── GetHashCodeMutableTest.cs
│       │   │   ├── GetTypeWithIsAssignableFromTest.cs
│       │   │   ├── GotoStatementTest.cs
│       │   │   ├── GuardConditionOnEqualsOverrideTest.cs
│       │   │   ├── Hotspots/
│       │   │   │   ├── ClearTextProtocolsAreSensitiveTest.cs
│       │   │   │   ├── CommandPathTest.cs
│       │   │   │   ├── ConfiguringLoggersTest.cs
│       │   │   │   ├── CookieShouldBeHttpOnlyTest.cs
│       │   │   │   ├── CookieShouldBeSecureTest.cs
│       │   │   │   ├── CreatingHashAlgorithmsTest.cs
│       │   │   │   ├── DeliveringDebugFeaturesInProductionTest.cs
│       │   │   │   ├── DisablingCsrfProtectionTest.cs
│       │   │   │   ├── DisablingRequestValidationTest.cs
│       │   │   │   ├── DoNotUseRandomTest.cs
│       │   │   │   ├── ExecutingSqlQueriesTest.cs
│       │   │   │   ├── ExpandingArchivesTest.cs
│       │   │   │   ├── HardcodedIpAddressTest.cs
│       │   │   │   ├── InsecureDeserializationTest.cs
│       │   │   │   ├── PermissiveCorsTest.cs
│       │   │   │   ├── PubliclyWritableDirectoriesTest.cs
│       │   │   │   ├── RequestsWithExcessiveLengthTest.cs
│       │   │   │   ├── UnsafeCodeBlocksTest.cs
│       │   │   │   └── UsingNonstandardCryptographyTest.cs
│       │   │   ├── IdentifiersNamedExtensionShouldBeEscapedTest.cs
│       │   │   ├── IdentifiersNamedFieldShouldBeEscapedTest.cs
│       │   │   ├── IfChainWithoutElseTest.cs
│       │   │   ├── IfCollapsibleTest.cs
│       │   │   ├── ImplementIDisposableCorrectlyTest.cs
│       │   │   ├── ImplementISerializableCorrectlyTest.cs
│       │   │   ├── ImplementSerializationMethodsCorrectlyTest.cs
│       │   │   ├── IndentSingleLineFollowingConditionalTest.cs
│       │   │   ├── IndexOfCheckAgainstZeroTest.cs
│       │   │   ├── IndexedPropertyWithMultipleParametersTest.cs
│       │   │   ├── InfiniteRecursionTest.cs
│       │   │   ├── InheritedCollidingInterfaceMembersTest.cs
│       │   │   ├── InitializeStaticFieldsInlineTest.cs
│       │   │   ├── InsecureContentSecurityPolicyTest.cs
│       │   │   ├── InsecureEncryptionAlgorithmTest.cs
│       │   │   ├── InsecureTemporaryFilesCreationTest.cs
│       │   │   ├── InsteadOfAnyTest.cs
│       │   │   ├── InterfaceMethodsShouldBeCallableByChildTypesTest.cs
│       │   │   ├── InterfaceNameTest.cs
│       │   │   ├── InterfacesShouldNotBeEmptyTest.cs
│       │   │   ├── InvalidCastToInterfaceTest.cs
│       │   │   ├── InvocationResolvesToOverrideWithParamsTest.cs
│       │   │   ├── IssueSuppressionTest.cs
│       │   │   ├── JSInvokableMethodsShouldBePublicTest.cs
│       │   │   ├── JwtSignedTest.cs
│       │   │   ├── LdapConnectionShouldBeSecureTest.cs
│       │   │   ├── LineContinuationTest.cs
│       │   │   ├── LineLengthTest.cs
│       │   │   ├── LinkedListPropertiesInsteadOfMethodsTest.cs
│       │   │   ├── LiteralSuffixUpperCaseTest.cs
│       │   │   ├── LiteralsShouldNotBePassedAsLocalizedParametersTest.cs
│       │   │   ├── LocalVariableNameTest.cs
│       │   │   ├── LockedFieldShouldBeReadonlyTest.cs
│       │   │   ├── LoggerFieldsShouldBePrivateStaticReadonlyTest.cs
│       │   │   ├── LoggerMembersNamesShouldComplyTest.cs
│       │   │   ├── LoggersShouldBeNamedForEnclosingTypeTest.cs
│       │   │   ├── LoggingArgumentsShouldBePassedCorrectlyTest.cs
│       │   │   ├── LoggingTemplatePlaceHoldersShouldBeInOrderTest.cs
│       │   │   ├── LoopsAndLinqTest.cs
│       │   │   ├── LooseFilePermissionsTest.cs
│       │   │   ├── LossOfFractionInDivisionTest.cs
│       │   │   ├── MagicNumberShouldNotBeUsedTest.cs
│       │   │   ├── MarkAssemblyWithAssemblyVersionAttributeTest.cs
│       │   │   ├── MarkAssemblyWithAttributeUsageAttributeTest.cs
│       │   │   ├── MarkAssemblyWithClsCompliantAttributeTest.cs
│       │   │   ├── MarkAssemblyWithComVisibleAttributeTest.cs
│       │   │   ├── MarkAssemblyWithNeutralResourcesLanguageAttributeTest.cs
│       │   │   ├── MarkWindowsFormsMainWithStaThreadTest.cs
│       │   │   ├── MemberInitializedToDefaultTest.cs
│       │   │   ├── MemberInitializerRedundantTest.cs
│       │   │   ├── MemberOverrideCallsBaseMemberTest.cs
│       │   │   ├── MemberShadowsOuterStaticMemberTest.cs
│       │   │   ├── MemberShouldBeStaticTest.cs
│       │   │   ├── MemberShouldNotHaveConflictingTransparencyAttributesTest.cs
│       │   │   ├── MessageTemplatesShouldBeCorrectTest.cs
│       │   │   ├── MethodOverloadOptionalParameterTest.cs
│       │   │   ├── MethodOverloadsShouldBeGroupedTest.cs
│       │   │   ├── MethodOverrideAddsParamsTest.cs
│       │   │   ├── MethodOverrideChangedDefaultValueTest.cs
│       │   │   ├── MethodOverrideNoParamsTest.cs
│       │   │   ├── MethodParameterMissingOptionalTest.cs
│       │   │   ├── MethodParameterUnusedTest.cs
│       │   │   ├── MethodShouldBeNamedAccordingToSynchronicityTest.cs
│       │   │   ├── MethodShouldNotOnlyReturnConstantTest.cs
│       │   │   ├── MethodsShouldNotHaveIdenticalImplementationsTest.cs
│       │   │   ├── MethodsShouldNotHaveTooManyLinesTest.cs
│       │   │   ├── MethodsShouldUseBaseTypesTest.cs
│       │   │   ├── MultilineBlocksWithoutBraceTest.cs
│       │   │   ├── MultipleVariableDeclarationTest.cs
│       │   │   ├── MutableFieldsShouldNotBePublicReadonlyTest.cs
│       │   │   ├── MutableFieldsShouldNotBePublicStaticTest.cs
│       │   │   ├── NameOfShouldBeUsedTest.cs
│       │   │   ├── NamedPlaceholdersShouldBeUniqueTest.cs
│       │   │   ├── NamespaceNameTest.cs
│       │   │   ├── NativeMethodsShouldBeWrappedTest.cs
│       │   │   ├── NegatedIsExpressionTest.cs
│       │   │   ├── NestedCodeBlockTest.cs
│       │   │   ├── NoExceptionsInFinallyTest.cs
│       │   │   ├── NonAsyncTaskShouldNotReturnNullTest.cs
│       │   │   ├── NonDerivedPrivateClassesShouldBeSealedTest.cs
│       │   │   ├── NonFlagsEnumInBitwiseOperationTest.cs
│       │   │   ├── NormalizeStringsToUppercaseTest.cs
│       │   │   ├── NotAssignedPrivateMemberTest.cs
│       │   │   ├── NumberPatternShouldBeRegularTest.cs
│       │   │   ├── ObjectCreatedDroppedTest.cs
│       │   │   ├── ObsoleteAttributesTest.cs
│       │   │   ├── OnErrorStatementTest.cs
│       │   │   ├── OperatorOverloadsShouldHaveNamedAlternativesTest.cs
│       │   │   ├── OperatorsShouldBeOverloadedConsistentlyTest.cs
│       │   │   ├── OptionExplicitOnTest.cs
│       │   │   ├── OptionStrictOnTest.cs
│       │   │   ├── OptionalParameterNotPassedToBaseCallTest.cs
│       │   │   ├── OptionalParameterTest.cs
│       │   │   ├── OptionalParameterWithDefaultValueTest.cs
│       │   │   ├── OptionalRefOutParameterTest.cs
│       │   │   ├── OrderByRepeatedTest.cs
│       │   │   ├── OverrideGetHashCodeOnOverridingEqualsTest.cs
│       │   │   ├── PInvokesShouldNotBeVisibleTest.cs
│       │   │   ├── ParameterAssignedToTest.cs
│       │   │   ├── ParameterNameMatchesOriginalTest.cs
│       │   │   ├── ParameterNameTest.cs
│       │   │   ├── ParameterNamesShouldNotDuplicateMethodNamesTest.cs
│       │   │   ├── ParameterTypeShouldMatchRouteTypeConstraintTest.cs
│       │   │   ├── ParameterValidationInAsyncShouldBeWrappedTest.cs
│       │   │   ├── ParameterValidationInYieldShouldBeWrappedTest.cs
│       │   │   ├── ParametersCorrectOrderTest.cs
│       │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttributeTest.cs
│       │   │   ├── PartialMethodNoImplementationTest.cs
│       │   │   ├── PasswordsShouldBeStoredCorrectlyTest.cs
│       │   │   ├── PointersShouldBePrivateTest.cs
│       │   │   ├── PreferGuidEmptyTest.cs
│       │   │   ├── PreferJaggedArraysOverMultidimensionalTest.cs
│       │   │   ├── PrivateConstantFieldNameTest.cs
│       │   │   ├── PrivateFieldNameTest.cs
│       │   │   ├── PrivateFieldUsedAsLocalVariableTest.cs
│       │   │   ├── PrivateSharedReadonlyFieldNameTest.cs
│       │   │   ├── PrivateStaticMethodUsedOnlyByNestedClassTest.cs
│       │   │   ├── PropertiesAccessCorrectFieldTest.cs
│       │   │   ├── PropertiesShouldBePreferredTest.cs
│       │   │   ├── PropertyGetterWithThrowTest.cs
│       │   │   ├── PropertyNameTest.cs
│       │   │   ├── PropertyNamesShouldNotMatchGetMethodsTest.cs
│       │   │   ├── PropertyToAutoPropertyTest.cs
│       │   │   ├── PropertyWithArrayTypeTest.cs
│       │   │   ├── PropertyWriteOnlyTest.cs
│       │   │   ├── ProvideDeserializationMethodsForOptionalFieldsTest.cs
│       │   │   ├── PublicConstantFieldNameTest.cs
│       │   │   ├── PublicConstantFieldTest.cs
│       │   │   ├── PublicFieldNameTest.cs
│       │   │   ├── PublicMethodWithMultidimensionalArrayTest.cs
│       │   │   ├── PublicSharedReadonlyFieldNameTest.cs
│       │   │   ├── PureAttributeOnVoidMethodTest.cs
│       │   │   ├── RedundancyInConstructorDestructorDeclarationTest.cs
│       │   │   ├── RedundantArgumentTest.cs
│       │   │   ├── RedundantCastTest.cs
│       │   │   ├── RedundantConditionalAroundAssignmentTest.cs
│       │   │   ├── RedundantDeclarationTest.cs
│       │   │   ├── RedundantExitSelectTest.cs
│       │   │   ├── RedundantInheritanceListTest.cs
│       │   │   ├── RedundantJumpStatementTest.cs
│       │   │   ├── RedundantModifierTest.cs
│       │   │   ├── RedundantNullCheckTest.cs
│       │   │   ├── RedundantNullableTypeComparisonTest.cs
│       │   │   ├── RedundantParenthesesObjectCreationTest.cs
│       │   │   ├── RedundantParenthesesTest.cs
│       │   │   ├── RedundantPropertyNamesInAnonymousClassTest.cs
│       │   │   ├── RedundantToArrayCallTest.cs
│       │   │   ├── RedundantToStringCallTest.cs
│       │   │   ├── ReferenceEqualityCheckWhenEqualsExistsTest.cs
│       │   │   ├── ReferenceEqualsOnValueTypeTest.cs
│       │   │   ├── RegularExpressions/
│       │   │   │   └── RegexMustHaveValidSyntaxTest.cs
│       │   │   ├── RequireAttributeUsageAttributeTest.cs
│       │   │   ├── ReturnEmptyCollectionInsteadOfNullTest.cs
│       │   │   ├── ReturnTypeNamedPartialShouldBeEscapedTest.cs
│       │   │   ├── ReturnValueIgnoredTest.cs
│       │   │   ├── ReversedOperatorsTest.cs
│       │   │   ├── RightCurlyBraceStartsLineTest.cs
│       │   │   ├── SecurityPInvokeMethodShouldNotBeCalledTest.cs
│       │   │   ├── SelfAssignmentTest.cs
│       │   │   ├── SerializationConstructorsShouldBeSecuredTest.cs
│       │   │   ├── SetLocaleForDataTypesTest.cs
│       │   │   ├── SetPropertiesInsteadOfMethodsTest.cs
│       │   │   ├── ShiftDynamicNotIntegerTest.cs
│       │   │   ├── ShouldImplementExportedInterfacesTest.cs
│       │   │   ├── SimpleDoLoopTest.cs
│       │   │   ├── SingleStatementPerLineTest.cs
│       │   │   ├── SpecifyIFormatProviderOrCultureInfoTest.cs
│       │   │   ├── SpecifyStringComparisonTest.cs
│       │   │   ├── SpecifyTimeoutOnRegexTest.cs
│       │   │   ├── SqlKeywordsDelimitedBySpaceTest.cs
│       │   │   ├── StaticFieldInGenericClassTest.cs
│       │   │   ├── StaticFieldInitializerOrderTest.cs
│       │   │   ├── StaticFieldVisibleTest.cs
│       │   │   ├── StaticFieldWrittenFromInstanceConstructorTest.cs
│       │   │   ├── StaticFieldWrittenFromInstanceMemberTest.cs
│       │   │   ├── StaticSealedClassProtectedMembersTest.cs
│       │   │   ├── StreamReadStatementTest.cs
│       │   │   ├── StringConcatenationInLoopTest.cs
│       │   │   ├── StringConcatenationWithPlusTest.cs
│       │   │   ├── StringFormatValidatorTest.cs
│       │   │   ├── StringLiteralShouldNotBeDuplicatedTest.cs
│       │   │   ├── StringOffsetMethodsTest.cs
│       │   │   ├── StringOperationWithoutCultureTest.cs
│       │   │   ├── StringOrIntegralTypesForIndexersTest.cs
│       │   │   ├── SuppressFinalizeUselessTest.cs
│       │   │   ├── SwaggerActionReturnTypeTest.cs
│       │   │   ├── SwitchCaseFallsThroughToDefaultTest.cs
│       │   │   ├── SwitchCasesMinimumThreeTest.cs
│       │   │   ├── SwitchDefaultClauseEmptyTest.cs
│       │   │   ├── SwitchSectionShouldNotHaveTooManyStatementsTest.cs
│       │   │   ├── SwitchShouldNotBeNestedTest.cs
│       │   │   ├── SwitchWithoutDefaultTest.cs
│       │   │   ├── TabCharacterTest.cs
│       │   │   ├── TaskConfigureAwaitTest.cs
│       │   │   ├── TestClassShouldHaveTestMethodTest.cs
│       │   │   ├── TestMethodShouldContainAssertionTest.cs
│       │   │   ├── TestMethodShouldHaveCorrectSignatureTest.cs
│       │   │   ├── TestMethodShouldNotBeIgnoredTest.cs
│       │   │   ├── TestsShouldNotUseThreadSleepTest.cs
│       │   │   ├── ThisShouldNotBeExposedFromConstructorsTest.cs
│       │   │   ├── ThreadResumeOrSuspendShouldNotBeCalledTest.cs
│       │   │   ├── ThreadStaticNonStaticFieldTest.cs
│       │   │   ├── ThreadStaticWithInitializerTest.cs
│       │   │   ├── ThrowReservedExceptionsTest.cs
│       │   │   ├── ToStringShouldNotReturnNullTest.cs
│       │   │   ├── TooManyGenericParametersTest.cs
│       │   │   ├── TooManyLabelsInSwitchTest.cs
│       │   │   ├── TooManyLoggingCallsTest.cs
│       │   │   ├── TooManyParametersTest.cs
│       │   │   ├── TrackNotImplementedExceptionTest.cs
│       │   │   ├── TryStatementsWithIdenticalCatchShouldBeMergedTest.cs
│       │   │   ├── TypeExaminationOnSystemTypeTest.cs
│       │   │   ├── TypeMemberVisibilityTest.cs
│       │   │   ├── TypeNamesShouldNotMatchNamespacesTest.cs
│       │   │   ├── TypeParameterNameTest.cs
│       │   │   ├── TypesShouldNotExtendOutdatedBaseTypesTest.cs
│       │   │   ├── UnaryPrefixOperatorRepeatedTest.cs
│       │   │   ├── UnchangedLocalVariablesShouldBeConstTest.cs
│       │   │   ├── UnconditionalJumpStatementTest.cs
│       │   │   ├── UninvokedEventDeclarationTest.cs
│       │   │   ├── UnnecessaryBitwiseOperationTest.cs
│       │   │   ├── UnnecessaryMathematicalComparisonTest.cs
│       │   │   ├── UnnecessaryUsingsTest.cs
│       │   │   ├── UnsignedTypesUsageTest.cs
│       │   │   ├── UnusedPrivateMemberTest.Constructors.cs
│       │   │   ├── UnusedPrivateMemberTest.Fields.cs
│       │   │   ├── UnusedPrivateMemberTest.Methods.cs
│       │   │   ├── UnusedPrivateMemberTest.Properties.cs
│       │   │   ├── UnusedPrivateMemberTest.Types.cs
│       │   │   ├── UnusedPrivateMemberTest.cs
│       │   │   ├── UnusedReturnValueTest.cs
│       │   │   ├── UnusedStringBuilderTest.cs
│       │   │   ├── UriShouldNotBeHardcodedTest.cs
│       │   │   ├── UseAwaitableMethodTest.cs
│       │   │   ├── UseCharOverloadOfStringMethodsTest.cs
│       │   │   ├── UseConstantLoggingTemplateTest.cs
│       │   │   ├── UseConstantsWhereAppropriateTest.cs
│       │   │   ├── UseCurlyBracesTest.cs
│       │   │   ├── UseDateTimeOffsetInsteadOfDateTimeTest.cs
│       │   │   ├── UseFindSystemTimeZoneByIdTest.cs
│       │   │   ├── UseGenericEventHandlerInstancesTest.cs
│       │   │   ├── UseGenericWithRefParametersTest.cs
│       │   │   ├── UseIFormatProviderForParsingDateAndTimeTest.cs
│       │   │   ├── UseIndexingInsteadOfLinqMethodsTest.cs
│       │   │   ├── UseLambdaParameterInConcurrentDictionaryTest.cs
│       │   │   ├── UseNumericLiteralSeparatorTest.cs
│       │   │   ├── UseParamsForVariableArgumentsTest.cs
│       │   │   ├── UsePascalCaseForNamedPlaceHoldersTest.cs
│       │   │   ├── UseReturnStatementTest.cs
│       │   │   ├── UseShortCircuitingOperatorTest.cs
│       │   │   ├── UseStringCreateTest.cs
│       │   │   ├── UseStringIsNullOrEmptyTest.cs
│       │   │   ├── UseTestableTimeProviderTest.cs
│       │   │   ├── UseTrueForAllTest.cs
│       │   │   ├── UseUnixEpochTest.cs
│       │   │   ├── UseUriInsteadOfStringTest.cs
│       │   │   ├── UseValueParameterTest.cs
│       │   │   ├── UseWhereBeforeOrderByTest.cs
│       │   │   ├── UseWhileLoopInsteadTest.cs
│       │   │   ├── UseWithStatementTest.cs
│       │   │   ├── Utilities/
│       │   │   │   ├── AnalysisWarningAnalyzerTest.cs
│       │   │   │   ├── CopyPasteTokenAnalyzerTest.cs
│       │   │   │   ├── FileMetadataAnalyzerTest.cs
│       │   │   │   ├── LogAnalyzerTest.cs
│       │   │   │   ├── MethodDeclarationInfoComparerTest.cs
│       │   │   │   ├── MetricsAnalyzerTest.cs
│       │   │   │   ├── SymbolReferenceAnalyzerTest.cs
│       │   │   │   ├── TelemetryAnalyzerTest.cs
│       │   │   │   ├── TestMethodDeclarationsAnalyzerTest.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.Classifier.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.ClassifierTestHarness.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.cs
│       │   │   │   └── UtilityAnalyzerBaseTest.cs
│       │   │   ├── ValueTypeShouldImplementIEquatableTest.cs
│       │   │   ├── ValuesUselesslyIncrementedTest.cs
│       │   │   ├── VariableShadowsFieldTest.cs
│       │   │   ├── VariableUnusedTest.cs
│       │   │   ├── VirtualEventFieldTest.cs
│       │   │   ├── WcfMissingContractAttributeTest.cs
│       │   │   ├── WcfNonVoidOneWayTest.cs
│       │   │   ├── WeakSslTlsProtocolsTest.cs
│       │   │   ├── XMLSignatureCheckTest.cs
│       │   │   └── XmlExternalEntityShouldNotBeParsedTest.cs
│       │   ├── SonarAnalyzer.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── IfStatementSyntaxExtensionsTest.cs
│       │   │   │   ├── SwitchSectionSyntaxExtensionsTest.cs
│       │   │   │   └── SyntaxNodeExtensionsTest.CSharp.cs
│       │   │   └── Utilities/
│       │   │       ├── EquivalenceCheckerTest.cs
│       │   │       ├── MethodParameterLookupTest.cs
│       │   │       ├── RemovableDeclarationCollectorTest.cs
│       │   │       ├── SymbolUsageCollectorTest.cs
│       │   │       └── SyntaxClassifierTest.cs
│       │   ├── TestCases/
│       │   │   ├── AbstractClassToInterface.Latest.Partial.cs
│       │   │   ├── AbstractClassToInterface.Latest.cs
│       │   │   ├── AbstractClassToInterface.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.Latest.Partial.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.Latest.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.TopLevelStatements.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.CSharp9.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.vb
│       │   │   ├── AlwaysSetDateTimeKind.cs
│       │   │   ├── AlwaysSetDateTimeKind.vb
│       │   │   ├── AnonymousDelegateEventUnsubscribe.Latest.cs
│       │   │   ├── AnonymousDelegateEventUnsubscribe.cs
│       │   │   ├── AppSettings/
│       │   │   │   ├── DatabasePasswordsShouldBeSecure/
│       │   │   │   │   ├── Corrupt/
│       │   │   │   │   │   └── appsettings.json
│       │   │   │   │   ├── UnexpectedContent/
│       │   │   │   │   │   ├── ArrayInside/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── ConnectionStringComment/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── EmptyArray/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── EmptyFile/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── Null/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── PropertyKinds/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── ValueKind/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   └── WrongStructure/
│       │   │   │   │   │       └── appsettings.json
│       │   │   │   │   └── Values/
│       │   │   │   │       └── appsettings.json
│       │   │   │   ├── DoNotHardcodeCredentials/
│       │   │   │   │   ├── Corrupt/
│       │   │   │   │   │   └── AppSettings.json
│       │   │   │   │   ├── UnexpectedContent/
│       │   │   │   │   │   └── AppSettings.json
│       │   │   │   │   └── Valid/
│       │   │   │   │       ├── AppSettings.Custom.json
│       │   │   │   │       ├── AppSettings.Development.json
│       │   │   │   │       ├── AppSettings.Production.json
│       │   │   │   │       ├── AppSettings.json
│       │   │   │   │       └── OtherFile.json
│       │   │   │   └── DoNotHardcodeSecrets/
│       │   │   │       ├── Corrupt/
│       │   │   │       │   └── AppSettings.json
│       │   │   │       ├── UnexpectedContent/
│       │   │   │       │   └── AppSettings.json
│       │   │   │       └── Valid/
│       │   │   │           ├── AppSettings.Custom.json
│       │   │   │           ├── AppSettings.Development.json
│       │   │   │           ├── AppSettings.Production.json
│       │   │   │           ├── AppSettings.json
│       │   │   │           └── OtherFile.json
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameter.Latest.cs
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameter.cs
│       │   │   ├── ArrayCovariance.CSharp9.cs
│       │   │   ├── ArrayCovariance.cs
│       │   │   ├── ArrayCreationLongSyntax.Fixed.vb
│       │   │   ├── ArrayCreationLongSyntax.vb
│       │   │   ├── ArrayDesignatorOnVariable.Fixed.vb
│       │   │   ├── ArrayDesignatorOnVariable.vb
│       │   │   ├── ArrayInitializationMultipleStatements.vb
│       │   │   ├── ArrayPassedAsParams.Latest.cs
│       │   │   ├── ArrayPassedAsParams.cs
│       │   │   ├── ArrayPassedAsParams.vb
│       │   │   ├── AspNet/
│       │   │   │   ├── AnnotateApiActionsWithHttpVerb.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromController.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.Fixed.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.cs
│       │   │   │   ├── AvoidUnderPosting.AutogeneratedModel.cs
│       │   │   │   ├── AvoidUnderPosting.Latest.Partial.cs
│       │   │   │   ├── AvoidUnderPosting.Latest.cs
│       │   │   │   ├── AvoidUnderPosting.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNet4x.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNet4x.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2AndAbove.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2x.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2x.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore3AndAbove.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore3AndAbove.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore8AndAbove.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore8AndAbove.vb
│       │   │   │   ├── CallModelStateIsValid.AutogeneratedController.cs
│       │   │   │   ├── CallModelStateIsValid.Latest.cs
│       │   │   │   ├── CallModelStateIsValid.cs
│       │   │   │   ├── ControllerReuseClient.CSharp12.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilities.Latest.Partial.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilities.Latest.cs
│       │   │   │   ├── ControllersReuseClient.CSharp9.cs
│       │   │   │   ├── ControllersReuseClient.Csharp8.cs
│       │   │   │   ├── ControllersReuseClient.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.PartialAutogenerated.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.vb
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.CSharp12.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.PartialAutogenerated.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.vb
│       │   │   │   ├── SpecifyRouteAttribute.CSharp12.cs
│       │   │   │   └── UseAspNetModelBinding_AspNetCore_Latest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.MsTest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.NUnit.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.NUnit4.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.Xunit.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.XunitV3.cs
│       │   │   ├── AssertionsShouldBeComplete.AllFrameworks.cs
│       │   │   ├── AssertionsShouldBeComplete.FluentAssertions.CSharp7.cs
│       │   │   ├── AssertionsShouldBeComplete.FluentAssertions.Latest.cs
│       │   │   ├── AssertionsShouldBeComplete.NFluent.Latest.cs
│       │   │   ├── AssertionsShouldBeComplete.NFluent.cs
│       │   │   ├── AssertionsShouldBeComplete.NSubstitute.cs
│       │   │   ├── AssignmentInsideSubExpression.Latest.cs
│       │   │   ├── AssignmentInsideSubExpression.TopLevelStatements.cs
│       │   │   ├── AssignmentInsideSubExpression.cs
│       │   │   ├── AsyncAwaitIdentifier.Latest.cs
│       │   │   ├── AsyncAwaitIdentifier.cs
│       │   │   ├── AsyncVoidMethod.Latest.cs
│       │   │   ├── AsyncVoidMethod.MsTestTestFramework.cs
│       │   │   ├── AsyncVoidMethod.VsUtFramework.cs
│       │   │   ├── AsyncVoidMethod.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarking.vb
│       │   │   ├── AvoidExcessiveClassCoupling.Latest.cs
│       │   │   ├── AvoidExcessiveClassCoupling.cs
│       │   │   ├── AvoidExcessiveInheritance_CustomValues.Records.cs
│       │   │   ├── AvoidExcessiveInheritance_CustomValues.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Concurrent.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.FileScopedTypes.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Records.Concurrent.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Records.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.LoopsWithNoBody.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.RenderFragment.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.RenderFragmentConsumer.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.razor
│       │   │   ├── AvoidUnsealedAttributes.cs
│       │   │   ├── AvoidUnsealedAttributes.vb
│       │   │   ├── BeginInvokePairedWithEndInvoke.Latest.Partial.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.Latest.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.Partial.vb
│       │   │   ├── BeginInvokePairedWithEndInvoke.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.vb
│       │   │   ├── BinaryOperationWithIdenticalExpressions.CSharpLatest.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressions.vb
│       │   │   ├── BlazorQueryParameterRoutableComponent.Compliant.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.1.razor.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.2.razor.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.razor
│       │   │   ├── BlazorQueryParameterRoutableComponent.NoRoute.razor
│       │   │   ├── BlazorQueryParameterRoutableComponent.Noncompliant.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.razor
│       │   │   ├── BooleanCheckInverted.Fixed.Batch.cs
│       │   │   ├── BooleanCheckInverted.Fixed.cs
│       │   │   ├── BooleanCheckInverted.Latest.cs
│       │   │   ├── BooleanCheckInverted.cs
│       │   │   ├── BooleanCheckInverted.vb
│       │   │   ├── BooleanLiteralUnnecessary.Fixed.cs
│       │   │   ├── BooleanLiteralUnnecessary.Latest.Fixed.cs
│       │   │   ├── BooleanLiteralUnnecessary.Latest.cs
│       │   │   ├── BooleanLiteralUnnecessary.cs
│       │   │   ├── BooleanLiteralUnnecessary.vb
│       │   │   ├── BreakOutsideSwitch.cs
│       │   │   ├── BypassingAccessibility.Latest.cs
│       │   │   ├── BypassingAccessibility.cs
│       │   │   ├── BypassingAccessibility.vb
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.Latest.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.TopLevelStatements.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.Latest.Partial.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.Latest.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.cs
│       │   │   ├── CallerInformationParametersShouldBeLastInvalidSyntax.cs
│       │   │   ├── CastConcreteTypeToInterface.cs
│       │   │   ├── CastShouldNotBeDuplicated.Latest.cs
│       │   │   ├── CastShouldNotBeDuplicated.cs
│       │   │   ├── CastShouldNotBeDuplicated.cshtml
│       │   │   ├── CatchEmpty.cs
│       │   │   ├── CatchRethrow.Fixed.cs
│       │   │   ├── CatchRethrow.cs
│       │   │   ├── CatchRethrow.vb
│       │   │   ├── CertificateValidationCheck.Latest.Partial.cs
│       │   │   ├── CertificateValidationCheck.Latest.cs
│       │   │   ├── CertificateValidationCheck.TopLevelStatements.cs
│       │   │   ├── CertificateValidationCheck.cs
│       │   │   ├── CertificateValidationCheck.vb
│       │   │   ├── CheckArgumentException.Latest.cs
│       │   │   ├── CheckArgumentException.TopLevelStatements.cs
│       │   │   ├── CheckArgumentException.cs
│       │   │   ├── CheckFileLicense_CSharp9.Fixed.cs
│       │   │   ├── CheckFileLicense_CSharp9.cs
│       │   │   ├── CheckFileLicense_ComplexRegex.cs
│       │   │   ├── CheckFileLicense_Compliant.vb
│       │   │   ├── CheckFileLicense_DefaultValues.Fixed.cs
│       │   │   ├── CheckFileLicense_DefaultValues.cs
│       │   │   ├── CheckFileLicense_EmptyFile.cs
│       │   │   ├── CheckFileLicense_ForcingEmptyLinesKo.cs
│       │   │   ├── CheckFileLicense_ForcingEmptyLinesOk.cs
│       │   │   ├── CheckFileLicense_MultiLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_MultiLineLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithAdditionalComment.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithAdditionalCommentOnSameLine.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithNamespace.Fixed.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithUsing.Fixed.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_NonCompliant.vb
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithNamespace.Fixed.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithUsing.Fixed.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_SingleLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_SingleLineLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_YearDifference.Fixed.cs
│       │   │   ├── CheckFileLicense_YearDifference.cs
│       │   │   ├── ClassAndMethodName.MethodName.Latest.Partial.cs
│       │   │   ├── ClassAndMethodName.MethodName.Latest.cs
│       │   │   ├── ClassAndMethodName.MethodName.Partial.cs
│       │   │   ├── ClassAndMethodName.MethodName.cs
│       │   │   ├── ClassAndMethodName.Partial.cs
│       │   │   ├── ClassAndMethodName.Tests.cs
│       │   │   ├── ClassAndMethodName.TopLevelStatement.Test.cs
│       │   │   ├── ClassAndMethodName.TopLevelStatement.cs
│       │   │   ├── ClassAndMethodName.cs
│       │   │   ├── ClassAndMethodName.vb
│       │   │   ├── ClassNamedException.Interop.cs
│       │   │   ├── ClassNamedException.Interop.vb
│       │   │   ├── ClassNamedException.Latest.cs
│       │   │   ├── ClassNamedException.cs
│       │   │   ├── ClassNamedException.vb
│       │   │   ├── ClassNotInstantiatable.Latest.Partial.cs
│       │   │   ├── ClassNotInstantiatable.Latest.cs
│       │   │   ├── ClassNotInstantiatable.cs
│       │   │   ├── ClassNotInstantiatable.vb
│       │   │   ├── ClassShouldNotBeEmpty.Inheritance.cs
│       │   │   ├── ClassShouldNotBeEmpty.Inheritance.vb
│       │   │   ├── ClassShouldNotBeEmpty.Latest.Partial.cs
│       │   │   ├── ClassShouldNotBeEmpty.Latest.cs
│       │   │   ├── ClassShouldNotBeEmpty.cs
│       │   │   ├── ClassShouldNotBeEmpty.vb
│       │   │   ├── ClassWithEqualityShouldImplementIEquatable.Latest.cs
│       │   │   ├── ClassWithEqualityShouldImplementIEquatable.cs
│       │   │   ├── ClassWithOnlyStaticMember.Latest.Partial.cs
│       │   │   ├── ClassWithOnlyStaticMember.Latest.cs
│       │   │   ├── ClassWithOnlyStaticMember.TopLevelStatements.cs
│       │   │   ├── ClassWithOnlyStaticMember.cs
│       │   │   ├── CloudNative/
│       │   │   │   ├── AzureFunctionsCatchExceptions.cs
│       │   │   │   ├── AzureFunctionsLogFailures.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ArmClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.CosmosClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.DocumentClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.HttpClient.CSharp9.cs
│       │   │   │   ├── AzureFunctionsReuseClients.HttpClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ServiceBusV5.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ServiceBusV7.cs
│       │   │   │   ├── AzureFunctionsReuseClients.Storage.cs
│       │   │   │   ├── AzureFunctionsStateless.Latest.Partial.cs
│       │   │   │   ├── AzureFunctionsStateless.Latest.cs
│       │   │   │   ├── AzureFunctionsStateless.cs
│       │   │   │   ├── DurableEntityInterfaceRestrictions.CSharp11.cs
│       │   │   │   └── DurableEntityInterfaceRestrictions.cs
│       │   │   ├── CognitiveComplexity.Latest.Partial.cs
│       │   │   ├── CognitiveComplexity.Latest.cs
│       │   │   ├── CognitiveComplexity.cs
│       │   │   ├── CognitiveComplexity.vb
│       │   │   ├── CollectionEmptinessChecking.Fixed.cs
│       │   │   ├── CollectionEmptinessChecking.Latest.cs
│       │   │   ├── CollectionEmptinessChecking.cs
│       │   │   ├── CollectionEmptinessChecking.vb
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.Latest.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.razor
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.razor.cs
│       │   │   ├── CollectionQuerySimplification.Latest.cs
│       │   │   ├── CollectionQuerySimplification.NetFx.cs
│       │   │   ├── CollectionQuerySimplification.TopLevelStatements.cs
│       │   │   ├── CollectionQuerySimplification.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.CSharp10.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.CSharp9.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.cs
│       │   │   ├── CommentFixme.cs
│       │   │   ├── CommentFixme.vb
│       │   │   ├── CommentLineEnd.vb
│       │   │   ├── CommentTodo.cs
│       │   │   ├── CommentTodo.vb
│       │   │   ├── CommentedOutCode.MultiLine.Fixed.cs
│       │   │   ├── CommentedOutCode.MultiLine.ToFix.cs
│       │   │   ├── CommentedOutCode.SingleLine.Fixed.cs
│       │   │   ├── CommentedOutCode.SingleLine.ToFix.cs
│       │   │   ├── CommentedOutCode.cs
│       │   │   ├── CommentedOutCode_Nonconcurrent.cs
│       │   │   ├── CommentsShouldNotBeEmpty.cs
│       │   │   ├── CommentsShouldNotBeEmpty.vb
│       │   │   ├── ComparableInterfaceImplementation.Latest.cs
│       │   │   ├── ComparableInterfaceImplementation.cs
│       │   │   ├── CompareNaN.Latest.cs
│       │   │   ├── CompareNaN.cs
│       │   │   ├── ConditionalSimplification.BeforeCSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.BeforeCSharp8.cs
│       │   │   ├── ConditionalSimplification.CSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.CSharp8.cs
│       │   │   ├── ConditionalSimplification.FromCSharp10.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp10.cs
│       │   │   ├── ConditionalSimplification.FromCSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp8.cs
│       │   │   ├── ConditionalSimplification.FromCSharp9.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp9.cs
│       │   │   ├── ConditionalStructureSameCondition.CSharp10.cs
│       │   │   ├── ConditionalStructureSameCondition.CSharp9.cs
│       │   │   ├── ConditionalStructureSameCondition.cs
│       │   │   ├── ConditionalStructureSameCondition.vb
│       │   │   ├── ConditionalStructureSameImplementation_If.Latest.cs
│       │   │   ├── ConditionalStructureSameImplementation_If.cs
│       │   │   ├── ConditionalStructureSameImplementation_If.vb
│       │   │   ├── ConditionalStructureSameImplementation_Switch.Latest.cs
│       │   │   ├── ConditionalStructureSameImplementation_Switch.cs
│       │   │   ├── ConditionalStructureSameImplementation_Switch.vb
│       │   │   ├── ConditionalsShouldStartOnNewLine.Latest.cs
│       │   │   ├── ConditionalsShouldStartOnNewLine.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp10.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp9.TopLevelStatements.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp9.cs
│       │   │   ├── ConditionalsWithSameCondition.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.Latest.Partial.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.Latest.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.vb
│       │   │   ├── ConstructorOverridableCall.Latest.Partial.cs
│       │   │   ├── ConstructorOverridableCall.Latest.cs
│       │   │   ├── ConstructorOverridableCall.Nancy.cs
│       │   │   ├── ConstructorOverridableCall.cs
│       │   │   ├── ConsumeValueTaskCorrectly.Latest.cs
│       │   │   ├── ConsumeValueTaskCorrectly.cs
│       │   │   ├── ControlCharacterInString.Latest.cs
│       │   │   ├── ControlCharacterInString.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.BeforeNet7.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.Latest.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.CSharp9.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.vb
│       │   │   ├── DatabasePasswordsShouldBeSecure.Latest.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.Net5.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.NetCore31.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.cs
│       │   │   ├── DateAndTimeShouldNotB

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
# Editor configuration, see http://editorconfig.org
# Visual studio supported code style syntax https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference
# Visual studio supported naming convention syntax https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-naming-conventions
# Undocumented https://kent-boogaart.com/blog/editorconfig-reference-for-c-developers
# Undocumented CS options https://github.com/dotnet/roslyn/blob/master/src/Workspaces/CSharp/Portable/Formatting/CSharpFormattingOptions.cs
# Undocumented .NET options https://github.com/dotnet/roslyn/blob/master/src/Workspaces/Core/Portable/CodeStyle/CodeStyleOptions.cs

# top-most EditorConfig file, hierarchy search will stop in this file
root = true

# ----------------------------------------------------------------------------------------------------------------------
# General settings
# ----------------------------------------------------------------------------------------------------------------------

# Don't use tabs for indentation.
[*]
indent_style = space
# (Please don't specify an indent_size here; that has too many unintended consequences.)

[*.md]
trim_trailing_whitespace = false
end_of_line = lf

# Code files
[*.{cs,csx,vb,vbx}]
charset = utf-8-bom
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
end_of_line = lf
max_line_length = 200

# Xml project files
[*.{csproj,vbproj,vcxproj,vcxproj.filters,proj,projitems,shproj}]
indent_size = 2

# Xml config files
[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}]
indent_size = 2

# JSON and YML files
[*.{json,yml}]
indent_size = 2

# Scripting files
[*.{ps1,bat,cmd}]
indent_size = 4

# Java code files
[*.java]
indent_size = 2

# Pom files
[pom.xml]
indent_size = 2

# ----------------------------------------------------------------------------------------------------------------------
# Coding styles
# ----------------------------------------------------------------------------------------------------------------------

# Dotnet code style settings:
[*.{cs,vb}]
tab_width = 4
# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:warning
dotnet_style_qualification_for_property = false:warning
dotnet_style_qualification_for_method = false:warning
dotnet_style_qualification_for_event = false:warning

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:warning
dotnet_style_predefined_type_for_member_access = true:warning

dotnet_style_require_accessibility_modifiers = for_non_interface_members:warning

# Suggest more modern language features when available
dotnet_style_coalesce_expression = true:warning
dotnet_style_collection_initializer = true:warning
dotnet_style_prefer_collection_expression = when_types_loosely_match:warning
dotnet_style_explicit_tuple_names = true:warning
dotnet_style_namespace_match_folder = true:warning    # This is activated only on production code below via IDE0130 settings
dotnet_style_null_propagation = true:warning
dotnet_style_object_initializer = true:warning
dotnet_style_operator_placement_when_wrapping = beginning_of_line:warning
dotnet_style_prefer_auto_properties = true:warning
dotnet_style_prefer_compound_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_assignment = true:warning
dotnet_style_prefer_conditional_expression_over_return = false:silent
dotnet_style_prefer_inferred_anonymous_type_member_names = true:warning
dotnet_style_prefer_inferred_tuple_names = true:warning
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning
dotnet_style_prefer_simplified_interpolation = true:warning
dotnet_style_prefer_simplified_boolean_expressions = true:warning
dotnet_style_readonly_field = true:warning

# Parameter preferences
dotnet_code_quality_unused_parameters = non_public:warning

# Parentheses
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:silent
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent

# CSharp code style settings:
[*.cs]
csharp_prefer_braces = true:warning

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:warning
csharp_style_var_when_type_is_apparent = true:warning
csharp_style_var_elsewhere = true:warning

# Prefer expression-body
csharp_style_expression_bodied_methods = true:warning
csharp_style_expression_bodied_constructors = true:warning
csharp_style_expression_bodied_operators = true:warning
csharp_style_expression_bodied_properties = true:warning
csharp_style_expression_bodied_indexers = true:warning
csharp_style_expression_bodied_accessors = true:warning
csharp_style_expression_bodied_lambdas = true:warning
csharp_style_expression_bodied_local_functions = true:warning

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:warning
csharp_style_pattern_matching_over_as_with_null_check = true:warning
csharp_style_inlined_variable_declaration = true:warning
csharp_prefer_simple_default_expression = true:warning
csharp_style_deconstructed_variable_declaration = true:warning
csharp_style_throw_expression = true:warning
csharp_style_conditional_delegate_call = true:warning

# IDE0055 configuration
# Newline settings
csharp_new_line_before_open_brace = all
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
csharp_new_line_between_query_expression_clauses = true

# Indent
csharp_indent_case_contents = true
csharp_indent_switch_labels = true
csharp_indent_labels = flush_left
csharp_indent_block_contents = true
csharp_indent_braces = false
csharp_indent_case_contents_when_block = true

# Spaces
csharp_space_after_cast = false
csharp_space_after_keywords_in_control_flow_statements = true
csharp_space_between_method_declaration_parameter_list_parentheses = false
csharp_space_between_method_call_parameter_list_parentheses = false
csharp_space_between_parentheses = false
csharp_space_between_method_call_name_and_opening_parenthesis = false
csharp_space_between_method_declaration_name_and_open_parenthesis = false
csharp_space_after_colon_in_inheritance_clause = true
csharp_space_before_colon_in_inheritance_clause = true
csharp_space_after_comma = true
csharp_space_before_comma = false
csharp_space_after_dot = false
csharp_space_before_dot = false
csharp_space_after_semicolon_in_for_statement = true
csharp_space_before_semicolon_in_for_statement = false
# Extra space before equals sign DOES MATTER https://github.com/dotnet/roslyn/issues/20355
csharp_space_around_binary_operators  = before_and_after
csharp_space_around_declaration_statements = false
csharp_space_before_open_square_brackets = false
csharp_space_between_empty_square_brackets = false
csharp_space_between_method_call_empty_parameter_list_parentheses = false
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false
csharp_space_between_square_brackets = false

# Wrapping
csharp_preserve_single_line_statements = false
csharp_preserve_single_line_blocks = true
# End of IDE0055 configuration

csharp_using_directive_placement = outside_namespace:warning
csharp_prefer_simple_using_statement = true:warning
csharp_style_namespace_declarations = file_scoped:warning
csharp_style_prefer_method_group_conversion = true:warning
csharp_style_prefer_top_level_statements = true:warning
csharp_style_prefer_primary_constructors = false:suggestion
csharp_prefer_system_threading_lock = true:warning
csharp_style_prefer_null_check_over_type_check = true:warning
csharp_style_prefer_local_over_anonymous_function = true:warning
csharp_style_prefer_index_operator = false:silent
csharp_style_prefer_range_operator = false:silent
csharp_style_implicit_object_creation_when_type_is_apparent = true:warning
csharp_style_prefer_tuple_swap = false:silent
csharp_style_prefer_unbound_generic_type_in_nameof = true:warning
csharp_style_prefer_utf8_string_literals = true:warning
csharp_style_unused_value_assignment_preference = unused_local_variable:silent
csharp_style_unused_value_expression_statement_preference = discard_variable:silent
csharp_prefer_static_local_function = true:warning
csharp_prefer_static_anonymous_function = true:warning
csharp_style_prefer_readonly_struct = true:warning
csharp_style_prefer_readonly_struct_member = true:warning
csharp_style_prefer_switch_expression = true:warning
csharp_style_prefer_pattern_matching = true:warning
csharp_style_prefer_not_pattern = true:warning
csharp_style_prefer_extended_property_pattern = true:warning
csharp_style_prefer_implicitly_typed_lambda_expression = true:warning

# ----------------------------------------------------------------------------------------------------------------------
# Naming conventions
# ----------------------------------------------------------------------------------------------------------------------

# ORDERING DOES MATTER!!!
# Naming conventions should be ordered from most-specific to least-specific in the .editorconfig file.
# The first rule encountered that can be applied is the only rule that is applied.

[*.{cs,vb}]

# Naming rules

dotnet_naming_rule.interface_must_start_with_i.severity = warning
dotnet_naming_rule.interface_must_start_with_I.symbols = interface_types
dotnet_naming_rule.interface_must_start_with_i.style = I_style

dotnet_naming_rule.variables_must_be_camel_style.severity = warning
dotnet_naming_rule.variables_must_be_camel_style.symbols = parameter_types
dotnet_naming_rule.variables_must_be_camel_style.style = camel_style

dotnet_naming_rule.types_should_be_pascal_case.severity = warning
dotnet_naming_rule.types_should_be_pascal_case.symbols = types
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case

dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = warning
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case

# Symbol specifications

dotnet_naming_symbols.interface_types.applicable_kinds = interface
dotnet_naming_symbols.interface_types.applicable_accessibilities = *

dotnet_naming_symbols.parameter_types.applicable_kinds = parameter

dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected

dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected

# Naming styles

dotnet_naming_style.pascal_case.capitalization = pascal_case

dotnet_naming_style.camel_style.capitalization = camel_case

dotnet_naming_style.I_style.required_prefix = I
dotnet_naming_style.I_style.capitalization = pascal_case

# ----------------------------------------------------------------------------------------------------------------------
# Rules
# ----------------------------------------------------------------------------------------------------------------------

dotnet_diagnostic.CS7035.severity = none    # CS7035: it expects the build number to fit in 16 bits, our build numbers are bigger https://github.com/dotnet/roslyn/issues/17024#issuecomment-1669503201
dotnet_diagnostic.CA1822.severity = warning # Increase visibility for Member 'xxx' does not access instance data and can be marked as static
dotnet_diagnostic.RS2008.severity = none    # Enable analyzer release tracking - we don't use the release tracking analyzer
dotnet_diagnostic.RS1036.severity = none    # A project containing analyzers or source generators should specify the property '<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>' - we're intentionally violating a lot of those types
dotnet_diagnostic.JSON002.severity = none   # Probable JSON string detected, noisy in UTs
dotnet_analyzer_diagnostic.category-Style.severity = warning # Default severity for analyzer diagnostics with category 'Style'
dotnet_diagnostic.IDE0008.severity = none   # Use explicit type instead of var
dotnet_diagnostic.IDE0009.severity = none   # Add this or Me qualification
dotnet_diagnostic.IDE0010.severity = none   # Add missing cases to switch statement
dotnet_diagnostic.IDE0017.severity = none   # Use object initializers
dotnet_diagnostic.IDE0046.severity = none   # Use conditional expression for return
dotnet_diagnostic.IDE0047.severity = none   # Remove unnecessary parentheses
dotnet_diagnostic.IDE0048.severity = none   # Add parentheses for clarity
dotnet_diagnostic.IDE0056.severity = none   # Use index operator
dotnet_diagnostic.IDE0057.severity = none   # Use range operator
dotnet_diagnostic.IDE0058.severity = none   # Remove unused expression value
dotnet_diagnostic.IDE0059.severity = none   # Remove unnecessary value assignment
dotnet_diagnostic.IDE0072.severity = none   # Add missing cases to switch expression
dotnet_diagnostic.IDE0073.severity = none   # Use file header
dotnet_diagnostic.IDE0160.severity = none   # Use block-scoped namespace
dotnet_diagnostic.IDE0180.severity = none   # Use tuple to swap values
dotnet_diagnostic.IDE0211.severity = none   # Convert to 'Program.Main' style program
dotnet_diagnostic.IDE0220.severity = none   # Add explicit cast in foreach loop
dotnet_diagnostic.IDE0290.severity = none   # Use primary constructor
resharper_convert_to_primary_constructor_highlighting = none
dotnet_diagnostic.IDE0303.severity = none   # Use collection expression for Create()
dotnet_diagnostic.IDE0304.severity = none   # Use collection expression for builder
dotnet_diagnostic.IDE0305.severity = none   # Use collection expression for fluent
dotnet_diagnostic.IDE2006.severity = none   # Blank line not allowed after arrow expression clause token

# ----------------------------------------------------------------------------------------------------------------------
# SyleCop.Analyzers rules - note that the URLs below are for tag 1.1.118
# ----------------------------------------------------------------------------------------------------------------------

# Spacing Rules (SA1000-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/SpacingRules.md

dotnet_diagnostic.SA1000.severity = warning
dotnet_diagnostic.SA1001.severity = warning
dotnet_diagnostic.SA1002.severity = warning
dotnet_diagnostic.SA1003.severity = warning
dotnet_diagnostic.SA1004.severity = warning
dotnet_diagnostic.SA1005.severity = warning
dotnet_diagnostic.SA1006.severity = warning
dotnet_diagnostic.SA1007.severity = warning
dotnet_diagnostic.SA1008.severity = warning
dotnet_diagnostic.SA1009.severity = warning
dotnet_diagnostic.SA1010.severity = warning
dotnet_diagnostic.SA1011.severity = warning
dotnet_diagnostic.SA1012.severity = none # noisy on collection initializers
dotnet_diagnostic.SA1013.severity = none # noisy on collection initializers
dotnet_diagnostic.SA1014.severity = warning
dotnet_diagnostic.SA1015.severity = warning
dotnet_diagnostic.SA1016.severity = warning
dotnet_diagnostic.SA1017.severity = warning
dotnet_diagnostic.SA1018.severity = warning
dotnet_diagnostic.SA1019.severity = warning
dotnet_diagnostic.SA1020.severity = warning
dotnet_diagnostic.SA1021.severity = warning
dotnet_diagnostic.SA1022.severity = warning
dotnet_diagnostic.SA1023.severity = warning
dotnet_diagnostic.SA1024.severity = warning
dotnet_diagnostic.SA1025.severity = none # noisy on aligned comments
dotnet_diagnostic.SA1026.severity = warning
dotnet_diagnostic.SA1027.severity = none # RSPEC-105
dotnet_diagnostic.SA1028.severity = warning

# Readability Rules (SA1100-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/DOCUMENTATION.md

dotnet_diagnostic.SA1100.severity = warning
dotnet_diagnostic.SA1101.severity = none    # Doesn't match our coding style, we don't use "this." when not neded
dotnet_diagnostic.SA1102.severity = warning
dotnet_diagnostic.SA1103.severity = warning
dotnet_diagnostic.SA1104.severity = warning
dotnet_diagnostic.SA1105.severity = warning
dotnet_diagnostic.SA1106.severity = warning
dotnet_diagnostic.SA1107.severity = warning
dotnet_diagnostic.SA1108.severity = none    # Noisy for short comments on short lines (if, for, foreach)
dotnet_diagnostic.SA1109.severity = warning
dotnet_diagnostic.SA1110.severity = warning
dotnet_diagnostic.SA1111.severity = warning
dotnet_diagnostic.SA1112.severity = warning
dotnet_diagnostic.SA1113.severity = warning
dotnet_diagnostic.SA1114.severity = none    # Prevents putting comment before first member in ImmutableArray.Create
dotnet_diagnostic.SA1115.severity = warning
dotnet_diagnostic.SA1116.severity = none    # Waste of new lines in simple scenarios
dotnet_diagnostic.SA1117.severity = none    # Waste of new lines in simple scenarios
dotnet_diagnostic.SA1118.severity = none    # Noisy in UTs
dotnet_diagnostic.SA1119.severity = warning
dotnet_diagnostic.SA1120.severity = warning
dotnet_diagnostic.SA1121.severity = warning
dotnet_diagnostic.SA1122.severity = warning
dotnet_diagnostic.SA1123.severity = warning
dotnet_diagnostic.SA1124.severity = none    # We need regions sometimes
dotnet_diagnostic.SA1125.severity = warning
dotnet_diagnostic.SA1126.severity = none    # Deprecated / not implemented rule
dotnet_diagnostic.SA1127.severity = none    # Noisy for single-line method declarations
dotnet_diagnostic.SA1128.severity = none    # Doesn't match our code base
dotnet_diagnostic.SA1129.severity = warning
dotnet_diagnostic.SA1130.severity = warning
dotnet_diagnostic.SA1131.severity = warning
dotnet_diagnostic.SA1132.severity = warning
dotnet_diagnostic.SA1133.severity = warning
dotnet_diagnostic.SA1134.severity = warning
dotnet_diagnostic.SA1135.severity = none    # Noisy for generics
dotnet_diagnostic.SA1136.severity = warning
dotnet_diagnostic.SA1137.severity = warning
dotnet_diagnostic.SA1138.severity = none    # Deprecated / not implemented rule
dotnet_diagnostic.SA1139.severity = warning

# Ordering Rules (SA1200-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/OrderingRules.md

dotnet_diagnostic.SA1200.severity = warning
dotnet_diagnostic.SA1201.severity = none # Doesn't match our coding style (properties before constructor)
dotnet_diagnostic.SA1202.severity = warning
dotnet_diagnostic.SA1203.severity = warning
dotnet_diagnostic.SA1204.severity = none # Doesn't match our coding style for private static methods
dotnet_diagnostic.SA1205.severity = warning
dotnet_diagnostic.SA1206.severity = warning
dotnet_diagnostic.SA1207.severity = warning
dotnet_diagnostic.SA1208.severity = warning
dotnet_diagnostic.SA1209.severity = warning
dotnet_diagnostic.SA1210.severity = warning
dotnet_diagnostic.SA1211.severity = warning
dotnet_diagnostic.SA1212.severity = warning
dotnet_diagnostic.SA1213.severity = warning
dotnet_diagnostic.SA1214.severity = warning
dotnet_diagnostic.SA1215.severity = warning
dotnet_diagnostic.SA1216.severity = warning
dotnet_diagnostic.SA1217.severity = warning

# Naming Rules (SA1300-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/NamingRules.md

dotnet_diagnostic.SA1300.severity = warning
dotnet_diagnostic.SA1301.severity = warning
dotnet_diagnostic.SA1302.severity = warning
dotnet_diagnostic.SA1303.severity = warning
dotnet_diagnostic.SA1304.severity = warning
dotnet_diagnostic.SA1305.severity = none # Noisy for other prefixes csFileName, orCondition
dotnet_diagnostic.SA1306.severity = warning
dotnet_diagnostic.SA1307.severity = warning
dotnet_diagnostic.SA1308.severity = warning
dotnet_diagnostic.SA1309.severity = warning
dotnet_diagnostic.SA1310.severity = warning
dotnet_diagnostic.SA1311.severity = warning
dotnet_diagnostic.SA1312.severity = warning
dotnet_diagnostic.SA1313.severity = warning
dotnet_diagnostic.SA1314.severity = warning

# Maintainability Rules (SA1400-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/MaintainabilityRules.md

dotnet_diagnostic.SA1400.severity = warning
dotnet_diagnostic.SA1401.severity = none # We have better rules S2357 and S1104
dotnet_diagnostic.SA1402.severity = none # we use the pattern of keeping 2 base classes in the same file to split generic from non-generic logic
dotnet_diagnostic.SA1403.severity = warning
dotnet_diagnostic.SA1404.severity = warning
dotnet_diagnostic.SA1405.severity = warning
dotnet_diagnostic.SA1406.severity = warning
dotnet_diagnostic.SA1407.severity = none # very noisy on hash calculations; can lead to less readable code
dotnet_diagnostic.SA1408.severity = warning
dotnet_diagnostic.SA1409.severity = none # Deprecated / not implemented rule
dotnet_diagnostic.SA1410.severity = warning
dotnet_diagnostic.SA1411.severity = warning
dotnet_diagnostic.SA1412.severity = warning
dotnet_diagnostic.SA1413.severity = none    # we do not want this
dotnet_diagnostic.SA1414.severity = warning

# Layout Rules (SA1500-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/LayoutRules.md

dotnet_diagnostic.SA1500.severity = warning
dotnet_diagnostic.SA1501.severity = warning
dotnet_diagnostic.SA1502.severity = none # noisy on empty constructors calling base
dotnet_diagnostic.SA1503.severity = warning
dotnet_diagnostic.SA1504.severity = warning
dotnet_diagnostic.SA1505.severity = warning
dotnet_diagnostic.SA1506.severity = warning
dotnet_diagnostic.SA1507.severity = warning
dotnet_diagnostic.SA1508.severity = warning
dotnet_diagnostic.SA1509.severity = warning
dotnet_diagnostic.SA1510.severity = warning
dotnet_diagnostic.SA1511.severity = warning
dotnet_diagnostic.SA1512.severity = warning
dotnet_diagnostic.SA1513.severity = none # on short methods, it does not apply
dotnet_diagnostic.SA1514.severity = warning
dotnet_diagnostic.SA1515.severity = none # we do not respect this
dotnet_diagnostic.SA1516.severity = none # we do not respect this for fields, properties and abstract members
dotnet_diagnostic.SA1517.severity = warning
dotnet_diagnostic.SA1518.severity = warning
dotnet_diagnostic.SA1519.severity = warning
dotnet_diagnostic.SA1520.severity = warning

# Documentation Rules (SA1600-) https://github.com/DotNetAnalyzers/StyleCopAnalyzers/blob/1.1.118/documentation/DocumentationRules.md
# We don't require code documentation, however, when we do add it, we want it to be valid.

dotnet_diagnostic.SA1600.severity = none
dotnet_diagnostic.SA1601.severity = none
dotnet_diagnostic.SA1602.severity = none
dotnet_diagnostic.SA1603.severity = warning
dotnet_diagnostic.SA1604.severity = none
dotnet_diagnostic.SA1605.severity = none
dotnet_diagnostic.SA1606.severity = warning
dotnet_diagnostic.SA1607.severity = warning
dotnet_diagnostic.SA1608.severity = none
dotnet_diagnostic.SA1609.severity = none
dotnet_diagnostic.SA1610.severity = none
dotnet_diagnostic.SA1611.severity = none
dotnet_diagnostic.SA1612.severity = none    # noisy when method has 3 parameters and only one has documentation
dotnet_diagnostic.SA1613.severity = warning
dotnet_diagnostic.SA1614.severity = warning
dotnet_diagnostic.SA1615.severity = none
dotnet_diagnostic.SA1616.severity = warning
dotnet_diagnostic.SA1617.severity = warning
dotnet_diagnostic.SA1618.severity = none
dotnet_diagnostic.SA1619.severity = none
dotnet_diagnostic.SA1620.severity = warning
dotnet_diagnostic.SA1621.severity = warning
dotnet_diagnostic.SA1622.severity = warning
dotnet_diagnostic.SA1623.severity = none
dotnet_diagnostic.SA1624.severity = none
dotnet_diagnostic.SA1625.severity = none
dotnet_diagnostic.SA1626.severity = none
dotnet_diagnostic.SA1627.severity = warning
dotnet_diagnostic.SA1628.severity = warning
dotnet_diagnostic.SA1629.severity = warning
dotnet_diagnostic.SA1630.severity = none
dotnet_diagnostic.SA1631.severity = none
dotnet_diagnostic.SA1632.severity = none
dotnet_diagnostic.SA1633.severity = none
dotnet_diagnostic.SA1634.severity = none
dotnet_diagnostic.SA1635.severity = none
dotnet_diagnostic.SA1636.severity = none
dotnet_diagnostic.SA1637.severity = none
dotnet_diagnostic.SA1638.severity = none
dotnet_diagnostic.SA1639.severity = none
dotnet_diagnostic.SA1640.severity = none
dotnet_diagnostic.SA1641.severity = none
dotnet_diagnostic.SA1642.severity = none
dotnet_diagnostic.SA1643.severity = none
dotnet_diagnostic.SA1644.severity = none
dotnet_diagnostic.SA1645.severity = none
dotnet_diagnostic.SA1646.severity = none
dotnet_diagnostic.SA1647.severity = none
dotnet_diagnostic.SA1648.severity = none
dotnet_diagnostic.SA1649.severity = none
dotnet_diagnostic.SA1650.severity = none
dotnet_diagnostic.SA1651.severity = none
dotnet_diagnostic.SA1652.severity = none

# Alternative Rules (SX0000-)

dotnet_diagnostic.SX1101.severity = none
dotnet_diagnostic.SX1309.severity = none
dotnet_diagnostic.SX1309S.severity = none
# IDE0130 Change namespace to match folder structure
[**.Test/**/*.cs]     # Do not raise in UTs, as we use .Test suffix after the whole namespace
dotnet_diagnostic.IDE0130.severity = none
resharper_check_namespace_highlighting = none

[*.Roslyn.cs]       # Do not raise on files copied from Roslyn repository
dotnet_diagnostic.IDE0130.severity = none
resharper_check_namespace_highlighting = none

[**/Rules/*/*.cs]      # Do not raise on files nested inside Rules (like Rules/AspNet/xxx.cs), as those are for logical separation and don't need a dedicated namespace
dotnet_diagnostic.IDE0130.severity = none
resharper_check_namespace_highlighting = none

[**/ITs.JsonParser/**]     # Do not raise in ITs.JsonParser as it is not production code.
dotnet_diagnostic.T0003.severity = none     # Do not use ValueTuple in the production code due to missing System.ValueTuple.dll.


================================================
FILE: .gitattributes
================================================
*.cs text eol=lf
*.vb text eol=lf
*.ps1 text eol=lf
*.verified.cs text eol=lf working-tree-encoding=UTF-8
packages.lock.json text eol=lf

================================================
FILE: .github/CODEOWNERS
================================================
.github/CODEOWNERS @SonarSource/quality-dotnet-squad


================================================
FILE: .github/GitHub.shproj
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <!-- This is a minimal Shared project to show the directory structure in Solution Explorer. This project should not be built nor referenced. -->
  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\CodeSharing\Microsoft.CodeSharing.CSharp.targets" />
  <ItemGroup>
    <None Include="**\*" />
  </ItemGroup>
</Project>


================================================
FILE: .github/ISSUE_TEMPLATE/1-FalsePositive.yml
================================================
name: Report False Positive
description: Analysis is raising an incorrect issue.
title: "Fix Sxxxx FP: "
body:
  - type: textarea
    attributes:
      label: Description
      description: Explain the issue and context, why it should not be raised, and do not forget to mention the rule ID.
      placeholder: Explain the issue and context, why it should not be raised, and do not forget to mention the rule ID.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Reproducer
      description: Minimal code snippet which reproduces the problem.
      value: |
        ```
        ```
    validations:
      required: true

  - type: input
    attributes:
      label: Product and Version
      description: What is the product name and version that you are using? SonarQube Cloud, SonarQube Server, SonarQube for Visual Studio, NuGet, etc.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/2-FalseNegative.yml
================================================
name: Report False Negative
description: Analysis is not raising an issue where it should.
title: "Fix Sxxxx FN: "
body:
  - type: textarea
    attributes:
      label: Description
      description: Explain the context, why the issue should be raised, and do not forget to mention rule ID.
      placeholder: Explain the context, why the issue should be raised, and do not forget to mention rule ID.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Reproducer
      description: Minimal code snippet which reproduces the problem.
      value: |
        ```
        ```
    validations:
      required: true

  - type: input
    attributes:
      label: Product and Version
      description: What is the product name and version that you are using? SonarQube Cloud, SonarQube Server, SonarQube for Visual Studio, NuGet, etc.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/3-AD0001.yml
================================================
name: Report AD0001
description: Analysis is throwing an AD0001 error.
title: "Fix AD0001: "
body:
  - type: textarea
    attributes:
      label: Description
      placeholder: Explain the issue you are facing, including the full error message.
    validations:
      required: true

  - type: textarea
    attributes:
      label: Reproducer
      description: Minimal code snippet which reproduces the problem, if possible.
      value: |
        ```
        ```
    validations:
      required: false   # Optional for AD0001 as those can be hard to find but important to report

  - type: input
    attributes:
      label: Product and Version
      description: What is the product name and version that you are using? SonarQube Cloud, SonarQube Server, SonarQube for Visual Studio, NuGet, etc.
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/4-NewRule.yml
================================================
name: Suggest New Rule
description: Suggest an idea for a new rule that does not exist yet.
title: "New Rule Idea: "
body:
  - type: markdown
    attributes:
      value: |
        Take a look at [existing New Rule ideas](https://github.com/SonarSource/sonar-dotnet/issues?q=is%3Aissue%20state%3Aopen%20label%3A%22Rule%20Idea%22&page=1) to avoid duplications. Leave a comment on rule ideas that you'd like to be implemented.

  - type: textarea
    attributes:
      label: Description
      description: Explain why the rule is needed and what it should detect.
      placeholder: Write rule description
    validations:
      required: true

  - type: textarea
    attributes:
      label: Noncompliant code snippet
      description: Minimal code snippet which illustrates what the issue should detect.
      value: |
        ```
        ```
    validations:
      required: true

  - type: textarea
    attributes:
      label: Compliant code snippet
      description: Minimal code snippet which illustrates the expected fixed code.
      value: |
        ```
        ```
    validations:
      required: true


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false

contact_links:

  - name: Request support or report a bug using SonarQube Cloud.
    url: https://community.sonarsource.com/c/sc/9
    about: Community Forum - SonarQube Cloud.

  - name: Request support or report a bug using SonarQube Server / Community Build.
    url: https://community.sonarsource.com/c/sq/10
    about: Community Forum - SonarQube Server / Community Build.

  - name: Request support or report a bug using SonarQube for IDE.
    url: https://community.sonarsource.com/c/sl/11
    about: Community Forum - SonarQube for IDE.


================================================
FILE: .github/workflows/LabelIssue.yml
================================================
name: Issue labeled

on:
  issues:
    types: ["labeled"]

jobs:
  CreateJiraIssue_job:
    name: Create Jira issue
    runs-on: github-ubuntu-latest-s
    permissions:
      id-token: write
      issues: write
    steps:
      - id: secrets
        uses: SonarSource/vault-action-wrapper@v3
        with:
          secrets: |
            development/kv/data/jira user | JIRA_USER;
            development/kv/data/jira token | JIRA_TOKEN;
      - uses: sonarsource/gh-action-lt-backlog/ImportIssue@v2
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          jira-user:    ${{ fromJSON(steps.secrets.outputs.vault).JIRA_USER }}
          jira-token:   ${{ fromJSON(steps.secrets.outputs.vault).JIRA_TOKEN }}
          jira-project: NET


================================================
FILE: .github/workflows/SlackNotification.yml
================================================
---
name: Slack Notifications
on:
  workflow_dispatch: # for testing
  check_suite:
    types: [completed]

jobs:
  notify:
    runs-on: github-ubuntu-latest-s # Public GitHub hosted runner required, Self-Hosted runners do not support Docker-in-Docker
    permissions:
      id-token: write
      checks: read
    if: github.event.check_suite.head_branch == 'master' && !contains(fromJson('["SUCCESS", "NEUTRAL", "SKIPPED"]'), github.event.check_suite.conclusion)
    steps:
      - name: Vault Secrets
        id: secrets
        uses: SonarSource/vault-action-wrapper@v3
        with:
          secrets: development/kv/data/slack token | SLACK_TOKEN;

      - name: Check run details
        id: failedRun
        env: 
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        shell: pwsh
        run: |
          $SuccessConclusions = @("SUCCESS", "NEUTRAL", "SKIPPED")
          $Event = Get-Content -Path $env:GITHUB_EVENT_PATH | ConvertFrom-Json -Depth 100
          $Request = gh api $Event.check_suite.check_runs_url
          $FailedRuns = $Request | ConvertFrom-Json | select -ExpandProperty check_runs | where { $SuccessConclusions -NotContains $_.conclusion } | foreach  { "* [$($_.name)]($($_.details_url))" }
          $OFS = [Environment]::NewLine # https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_preference_variables?view=powershell-7.5#ofs
          $EOF = (New-Guid).Guid        # https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-commands#multiline-strings
          $Message=@"
          message<<$EOF
          $($Event.check_suite.app.name ?? 'Pipeline') in [$($Event.repository.name)]($($Event.repository.html_url)) failed ($($Event.check_suite.conclusion)) on $($Event.check_suite.head_branch): $($Event.check_suite.head_commit.message -replace '[\n\r].*')
          $FailedRuns
          $EOF
          "@
          $Message

          $Message >> $env:GITHUB_OUTPUT

      - name: Slack Notification
        uses: rtCamp/action-slack-notify@e31e87e03dd19038e411e38ae27cbad084a90661 # v2.3.3
        if: always()
        env:
          SLACK_TOKEN: ${{ fromJSON(steps.secrets.outputs.vault).SLACK_TOKEN }}
          SLACK_CHANNEL: squad-dotnet # for testing: notification_tester
          SLACK_TITLE: Build failed
          SLACK_MESSAGE: ${{ steps.failedRun.outputs.message }}
          SLACK_USERNAME: NotifierBot
          SLACK_COLOR: danger
          MSG_MINIMAL: true
          SLACKIFY_MARKDOWN: true
          SLACK_FOOTER: ' '
          SLACK_MSG_AUTHOR: ' '
          SLACK_ICON_EMOJI: dotnet


================================================
FILE: .gitignore
================================================
# Maven
target/

# IntelliJ IDEA
*.iws
*.iml
*.ipr
.idea/

# Eclipse
.classpath
.project
.settings

# ---- Mac OS X
.DS_Store
Icon?
# Thumbnails
._*
# Files that might appear on external disk
.Spotlight-V100
.Trashes

# ---- Windows
# Windows image file caches
Thumbs.db
# Folder config file
Desktop.ini

# User-specific files + Visual Studio files
*.suo
*.user
*.sln.docstates
*.psess
*.vsp
.vs/

# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
x64/
bld/
[Bb]in/
[Oo]bj/

# NuGet
packages/
*.nupkg

# Roslyn
*.sln.ide/

# Sonar
.sonar/
.sonarqube/

# Product of its\projects\ScannerCli
.scannerwork/

# MSTest test results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*

# rule-api temp artifacts
*.restext
.generated/

# Analyzer binaries
analyzers/packaging/binaries/
analyzers/packaging/internal/

# Actual SARIF files
/private/analyzers/its/actual/

# MSBuild & other output
/private/analyzers/its/output/

# Temporary diff folder
/private/analyzers/its/diff/

/its/projects/WebApplication/.scannerwork/report-task.txt
/its/projects/WebApplication/.scannerwork/.sonar_lock

# ITs.JsonParser expects to be run from "sonar-dotnet-enterprise/private/analyzers/its".
# Feel free to configure your local launchSettings.json.
analyzers/src/ITs.JsonParser/Properties/launchSettings.json

# Claude Code
.claude/*
CLAUDE.local.md

# Codex
.codex

# Sonar Code Context
.sonar-code-context

#Verify https://github.com/VerifyTests/Verify/blob/main/docs/wiz/Windows_VisualStudio_Cli_MSTest_AzureDevOps.md#conventions
*.received.*

================================================
FILE: .globalconfig
================================================
# top-most GlobalConfig file, hierarchy search will stop in this file
root = true

# Issues produced from a source generators needs to be in global config, see https://github.com/dotnet/roslyn/issues/81479
dotnet_diagnostic.CS8784.severity = error   # Do not hide root cause for: Generator 'xxx' failed to initialize.      It will not contribute to the output and compilation errors may occur as a result. Exception was of type 'xxx' with message 'xxx'
dotnet_diagnostic.CS8785.severity = error   # Do not hide root cause for: Generator 'xxx' failed to generate source. It will not contribute to the output and compilation errors may occur as a result. Exception was of type 'xxx' with message 'xxx'


================================================
FILE: LICENSE.txt
================================================
SONAR Source-Available License v1.0
Last Updated November 13, 2024

1. DEFINITIONS

"Agreement" means this Sonar Source-Available License v1.0

"Competing" means marketing a product or service as a substitute for the
functionality or value of SonarQube. A product or service may compete regardless
of how it is designed or deployed. For example, a product or service may compete
even if it provides its functionality via any kind of interface (including
services, libraries, or plug-ins), even if it is ported to a different platform
or programming language, and even if it is provided free of charge.

"Contribution" means:

  a) in the case of the initial Contributor, the initial content Distributed under
this Agreement, and

  b) in the case of each subsequent Contributor:
    i) changes to the Program, and
    ii) additions to the Program;

where such changes and/or additions to the Program originate from and are
Distributed by that particular Contributor. A Contribution "originates" from a
Contributor if it was added to the Program by such Contributor itself or anyone
acting on such Contributor's behalf. Contributions do not include changes or
additions to the Program that are not Modified Works.

"Contributor" means any person or entity that Distributes the Program.

"Derivative Works" shall mean any work, whether in Source Code or other form,
that is based on (or derived from) the Program and for which the editorial
revisions, annotations, elaborations, or other modifications represent, as a
whole, an original work of authorship.

"Distribute" means the acts of a) distributing or b) making available in any
manner that enables the transfer of a copy.

"Licensed Patents" mean patent claims licensable by a Contributor that are
necessarily infringed by the use or sale of its Contribution alone or when
combined with the Program.

"Modified Works" shall mean any work in Source Code or other form that results
from an addition to, deletion from, or modification of the contents of the
Program, including, for purposes of clarity, any new file in Source Code form
that contains any contents of the Program. Modified Works shall not include
works that contain only declarations, interfaces, types, classes, structures, or
files of the Program solely in each case in order to link to, bind by name, or
subclass the Program or Modified Works thereof.

"Non-competitive Purpose" means any purpose except for (a) providing to others
any product or service that includes or offers the same or substantially similar
functionality as SonarQube, (b) Competing with SonarQube, and/or (c) employing,
using, or engaging artificial intelligence technology that is not part of the
Program to ingest, interpret, analyze, train on, or interact with the data
provided by the Program, or to engage with the Program in any manner.

"Notices" means any legal statements or attributions included with the Program,
including, without limitation, statements concerning copyright, patent,
trademark, disclaimers of warranty, or limitations of liability

"Program" means the Contributions Distributed in accordance with this Agreement.

"Recipient" means anyone who receives the Program under this Agreement,
including Contributors.

"SonarQube" means an open-source or commercial edition of software offered by
SonarSource that is branded "SonarQube".

"SonarSource" means SonarSource SA, a Swiss company registered in Switzerland
under UID No. CHE-114.587.664.

"Source Code" means the form of a Program preferred for making modifications,
including but not limited to software source code, documentation source, and
configuration files.

2. GRANT OF RIGHTS

  a) Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide, royalty-free copyright license, for any
Non-competitive Purpose, to reproduce, prepare Derivative Works of, publicly
display, publicly perform, Distribute and sublicense the Contribution of such
Contributor, if any, and such Derivative Works.

  b) Subject to the terms of this Agreement, each Contributor hereby grants
Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed
Patents, for any Non-competitive Purpose, to make, use, sell, offer to sell,
import, and otherwise transfer the Contribution of such Contributor, if any, in
Source Code or other form. This patent license shall apply to the combination of
the Contribution and the Program if, at the time the Contribution is added by
the Contributor, such addition of the Contribution causes such combination to be
covered by the Licensed Patents. The patent license shall not apply to any other
combinations that include the Contribution.

  c) Recipient understands that although each Contributor grants the licenses to
its Contributions set forth herein, no assurances are provided by any
Contributor that the Program does not infringe the patent or other intellectual
property rights of any other entity. Each Contributor disclaims any liability to
Recipient for claims brought by any other entity based on infringement of
intellectual property rights or otherwise. As a condition to exercising the
rights and licenses granted hereunder, each Recipient hereby assumes sole
responsibility to secure any other intellectual property rights needed, if any.
For example, if a third-party patent license is required to allow Recipient to
Distribute the Program, it is Recipient's responsibility to acquire that license
before distributing the Program.

  d) Each Contributor represents that to its knowledge it has sufficient copyright
rights in its Contribution, if any, to grant the copyright license set forth in
this Agreement.

3. REQUIREMENTS

3.1 If a Contributor Distributes the Program in any form, then the Program must
also be made available as Source Code, in accordance with section 3.2, and the
Contributor must accompany the Program with a statement that the Source Code for
the Program is available under this Agreement, and inform Recipients how to
obtain it in a reasonable manner on or through a medium customarily used for
software exchange; and

3.2 When the Program is Distributed as Source Code:

  a) it must be made available under this Agreement, and

  b) a copy of this Agreement must be included with each copy of the Program.

3.3 Contributors may not remove or alter any Notices contained within the
Program from any copy of the Program which they Distribute, provided that
Contributors may add their own appropriate Notices.

4. NO WARRANTY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY
APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES
OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT
LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
responsible for determining the appropriateness of using and distributing the
Program and assumes all risks associated with its exercise of rights under this
Agreement, including but not limited to the risks and costs of program errors,
compliance with applicable laws, damage to or loss of data, programs or
equipment, and unavailability or interruption of operations.

5. DISCLAIMER OF LIABILITY

EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED BY
APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF
THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES.

6. GENERAL

If any provision of this Agreement is invalid or unenforceable under applicable
law, it shall not affect the validity or enforceability of the remainder of the
terms of this Agreement, and without further action by the parties hereto, such
provision shall be reformed to the minimum extent necessary to make such
provision valid and enforceable.

If Recipient institutes patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Program itself
(excluding combinations of the Program with other software or hardware)
infringes such Recipient’s patent(s), then such Recipient’s rights granted under
Section 2(b) shall terminate as of the date such litigation is filed.

All Recipient’s rights under this Agreement shall terminate if it fails to
comply with any of the material terms or conditions of this Agreement and does
not cure such failure in a reasonable period of time after becoming aware of
such noncompliance. If all Recipient’s rights under this Agreement terminate,
Recipient agrees to cease use and distribution of the Program as soon as
reasonably practicable. However, Recipient’s obligations under this Agreement
and any licenses granted by Recipient relating to the Program shall continue and
survive.

Except as expressly stated in Sections 2(a) and 2(b) above, Recipient receives
no rights or licenses to the intellectual property of any Contributor under this
Agreement, whether expressly, by implication, estoppel, or otherwise. All rights
in the Program not expressly granted under this Agreement are reserved. Nothing
in this Agreement is intended to be enforceable by any entity that is not a
Contributor or Recipient. No third-party beneficiary rights are created under
this Agreement.


================================================
FILE: NOTICE.txt
================================================
Copyright (C) SonarSource Sàrl
mailto:info AT sonarsource DOT com

This product includes software developed at
SonarSource (https://sonarsource.com/).

See LICENSE.txt file for details of the 
applicable license.

For further legal information, see 
https://sonarsource.com/legal/


================================================
FILE: README.md
================================================
# Code Quality and Security for C\# and VB.NET

[![Build Status](https://dev.azure.com/sonarsource/DotNetTeam%20Project/_apis/build/status/Sonar.Net?branchName=master)](https://dev.azure.com/sonarsource/DotNetTeam%20Project/_build/latest?definitionId=77&branchName=master)

|Product|Quality Gate|Coverage|
|:--:|:--:|:--:|
|Analyzer|[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=sonaranalyzer-dotnet&metric=alert_status)](https://sonarcloud.io/dashboard?id=sonaranalyzer-dotnet)|[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=sonaranalyzer-dotnet&metric=coverage)](https://sonarcloud.io/component_measures?id=sonaranalyzer-dotnet&metric=coverage)|
|Plugin|[![Quality Gate](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.dotnet%3Asonar-dotnet&metric=alert_status)](https://sonarcloud.io/dashboard?id=org.sonarsource.dotnet%3Asonar-dotnet)|[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=org.sonarsource.dotnet%3Asonar-dotnet&metric=coverage)](https://sonarcloud.io/component_measures?id=org.sonarsource.dotnet%3Asonar-dotnet&metric=coverage)|

[Static analysis](https://en.wikipedia.org/wiki/Static_program_analysis) of C# and VB.NET
languages in [SonarQube server](https://www.sonarsource.com/products/sonarqube), [SonarQube cloud](https://www.sonarsource.com/products/sonarcloud) and [SonarQube for IDE](https://www.sonarsource.com/products/sonarlint) code quality and security products. These Roslyn analyzers allow you to deliver code with integrated code quality and security that is safe, reliable and maintainable by helping you find and correct bugs, vulnerabilities and code smells in your codebase.

## Features

* 470+ C# rules and 210+ VB.&#8203;NET rules
* Metrics (cognitive complexity, duplications, number of lines, etc.)
* Import of [test coverage reports](https://community.sonarsource.com/t/9871) from Visual Studio Code Coverage, dotCover, OpenCover, Coverlet, Altcover.
* Import of third-party Roslyn Analyzers results
* Support for [custom rules](https://github.com/SonarSource/sonarqube-roslyn-sdk)

## Useful public resources

* [Project homepage](https://redirect.sonarsource.com/plugins/csharp.html)
* [Issue tracking](./docs/issues.md)

### Nuget.org packages

* [SonarAnalyzer.CSharp](https://www.nuget.org/packages/SonarAnalyzer.CSharp/)
* [SonarAnalyzer.VisualBasic](https://www.nuget.org/packages/SonarAnalyzer.VisualBasic/)

### Integration with SonarQube

* [Analyze projects with SonarScanner for .NET](https://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html)
* [Importing code coverage](https://community.sonarsource.com/t/9871)
* [SonarQube and the code coverage](https://community.sonarsource.com/t/4725)

## Do you have a question or feedback?

* Contact us on [our Community Forum](https://community.sonarsource.com/) to provide feedback, ask for help, and request new rules or features.
* [Create a GitHub Issue](https://github.com/SonarSource/sonar-dotnet/issues/new/choose) if you've found a bug, False-Positive or False-Negative.

## Get started

* [Building, testing and debugging the .NET analyzer](./docs/contributing-analyzer.md)
* [Building, testing and debugging the Java plugin](./docs/contributing-plugin.md)
* [How to re-generate NuGet lock files](./docs/regenerate-lock-files.md)
* [Using the rspec.ps1 script](./scripts/rspec/README.md)

## How to contribute

There are many ways you can contribute to the `sonar-dotnet` project.
When contributing, please respect our [Code of Conduct](./docs/code-of-conduct.md).

### Join the discussions

One of the easiest ways to contribute is to share your feedback with us (see [give feedback](#do-you-have-a-question-or-feedback)) and also answer questions from [our community forum](https://community.sonarsource.com/).
You can also monitor the activity on this repository (opened issues, opened PRs) to get more acquainted with what we do.

### Pull Request (PR)

If you want to fix [an issue](https://github.com/SonarSource/sonar-dotnet/issues),
please read the [Get started](#get-started) pages first and make sure that you follow [our coding style](./docs/coding-style.md).
We suggest avoiding the implementation of new rules, as a specification process is required first.


Before submitting the PR, make sure [all tests](./docs/contributing-analyzer.md#running-unit-tests) are passing (all checks must be green).

If you did not sign the Contributor License Agreement in the past, please let us know in the PR your user handle from our [Community Forum](https://community.sonarsource.com/). We will arrange the signing via private message.

Note: Our CI does not get automatically triggered on the PRs from external contributors.
A member of our team will review the code and trigger the CI on demand by adding a comment on the PR (see [Azure Pipelines Comment triggers docs](https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/github?view=azure-devops&tabs=yaml#comment-triggers)):
- `/azp run Sonar.Net` - It will run the full pipeline, including plugin tests and promotion

## Custom Rules

To request new rules, Contact us on [our Community Forum](https://community.sonarsource.com/c/suggestions/).

If you have an idea for a rule but you are not sure that everyone needs it, you can implement your own Roslyn analyzer.
- You can start with [this tutorial from Microsoft](https://docs.microsoft.com/en-us/dotnet/csharp/roslyn-sdk/tutorials/how-to-write-csharp-analyzer-code-fix) to write an analyzer.
- All Roslyn-based issues are picked up by the [SonarScanner for .NET](https://redirect.sonarsource.com/doc/install-configure-scanner-msbuild.html)
and pushed to SonarQube as external issues.
- Also check out [SonarQube Roslyn SDK](https://github.com/SonarSource-VisualStudio/sonarqube-roslyn-sdk) to embed
your Roslyn analyzer in a SonarQube plugin, if you want to manage your rules from SonarQube.

## Configuring Rules

### SonarQube for IDE

The easiest way is to configure a Quality Profile in SonarQube. Use SonarQube for IDE Connected Mode to connect to SonarQube Server or Cloud.

### Standalone NuGet

The rules from standalone NuGet packages can be enabled or disabled in the same way as the other analyzers based on Roslyn, by using the `.globalconfig` or `.editorconfig` files.
See: https://learn.microsoft.com/en-us/visualstudio/code-quality/use-roslyn-analyzers?view=vs-2022#set-rule-severity-in-an-editorconfig-file

If the rules are parameterized, the parameter values can be changed using `SonarLint.xml` additional files.

The first step is to create a new file, named `SonarLint.xml`, that has the following structure:

```xml
<?xml version="1.0" encoding="utf-8"?>
<AnalysisInput xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Settings>
    <Setting>
      <Key>sonar.cs.analyzeGeneratedCode</Key>
      <Value>false</Value>
    </Setting>
  </Settings>
  <Rules>
    <Rule>
      <Key>S107</Key>
      <Parameters>
        <Parameter>
          <Key>max</Key>
          <Value>2</Value>
        </Parameter>
      </Parameters>
    </Rule>
  </Rules>
</AnalysisInput>
```
Then, update the projects to include this additional file:
```xml
<ItemGroup>
  <AdditionalFiles Include="SonarLint.xml" />
</ItemGroup>
```

## Security Issues

If you believe you have discovered a security vulnerability in Sonar's products, please check [this document](./SECURITY.md).

## License

Copyright SonarSource Sàrl.

Licensed under the [SONAR Source-Available License v1.0](https://www.sonarsource.com/license/ssal/)



================================================
FILE: SECURITY.md
================================================
# Reporting Security Issues

A mature software vulnerability treatment process is a cornerstone of a robust information security management system. Contributions from the community play an important role in the evolution and security of our products, and in safeguarding the security and privacy of our users.

If you believe you have discovered a security vulnerability in Sonar's products, we encourage you to report it immediately.

To responsibly report a security issue, please email us at [security@sonarsource.com](mailto:security@sonarsource.com). Sonar’s security team will acknowledge your report, guide you through the next steps, or request additional information if necessary. Customers with a support contract can also report the vulnerability directly through the support channel.

For security vulnerabilities found in third-party libraries, please also contact the library's owner or maintainer directly.

## Responsible Disclosure Policy

For more information about disclosing a security vulnerability to Sonar, please refer to our community post: [Responsible Vulnerability Disclosure](https://community.sonarsource.com/t/9317).


================================================
FILE: analyzers/.runsettings
================================================
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <RunConfiguration>
    <!-- 0 will run all Test DLL in parallel locally -->
    <MaxCpuCount>0</MaxCpuCount>
  </RunConfiguration>
</RunSettings>

================================================
FILE: analyzers/CI.NuGet.Config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear />
    <add key="Repox" value="https://repox.jfrog.io/artifactory/api/nuget/v3/nuget/index.json" protocolVersion="3" />
  </packageSources>
  <packageSourceCredentials>
    <Repox>
      <add key="Username" value="%ARTIFACTORY_USER%" />
      <add key="ClearTextPassword" value="%ARTIFACTORY_PASSWORD%" />
    </Repox>
  </packageSourceCredentials>
  <config>
    <clear />
    <add key="signatureValidationMode" value="require" />
  </config>
  <trustedSigners>
    <clear />
    <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
      <!-- Subject Name: CN=NuGet.org Repository by Microsoft, valid from 2018-04-10 -->
      <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <!-- Subject Name: CN=NuGet.org Repository by Microsoft, valid from 2021-02-16 -->
      <certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <!-- Subject Name: CN=NuGet.org Repository by Microsoft, valid from 2024-02-23 -->
      <certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
      <!-- sharwell = author of StyleCop.Analyzers -->
      <!-- test dependencies: -->
      <!-- meirb = Meir Blachman, author of FluentAssertions.Analyzers -->
      <!-- jonorossi = Jonathon Rossi, maintainer of Castle Project -->
      <!-- onovotny = Claire Novotny, author of Humanizer.Core -->
      <!-- SteveGilham = author of AltCover-->
      <!-- jamesnk = author of Newtonsoft.Json -->
      <!-- commandlineparser = author of CommandLineParser -->
      <!-- grpc-packages = author of Grpc.Tools -->
      <!-- Nsubstitute = author of NSubstitute -->
      <!-- simoncropp = author of Verify -->
      <!-- Youssef1313 = Youssef Korani, author of Combinatorial.MSTest -->
      <owners>Youssef1313;protobuf-packages;Microsoft;sharwell;meirb;dotnetfoundation;castleproject;jonorossi;onovotny;fluentassertions;SteveGilham;jamesnk;commandlineparser;grpc-packages;Fody;NSubstitute;jetbrains;simoncropp</owners>
    </repository>
    <author name="SonarSource">
      <!-- Subject Name: CN=SonarSource SA, O=SonarSource SA, L=Vernier, S=Genève, C=CH, valid from 2025-01-23 -->
      <certificate fingerprint="404ADA6248101C569ED40D7B6D621878F1A5DCF66D900368894CBAE6DCE10A29" hashAlgorithm="SHA256" allowUntrustedRoot="false" />
    </author>
  </trustedSigners>
</configuration>


================================================
FILE: analyzers/CodeAnalysis.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <ItemGroup>
    <PackageReference Include="SonarAnalyzer.CSharp.Styling" Version="10.21.0.135717">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.CodeAnalysis.PerformanceSensitiveAnalyzers" Version="3.3.1">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <AdditionalFiles Include="$(MSBuildThisFileDirectory)stylecop.json">
      <Link>stylecop.json</Link>
    </AdditionalFiles>
  </ItemGroup>
</Project>


================================================
FILE: analyzers/Common.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <!-- This file is included in all projects inside src and tests directories. -->
  <Import Project="$(MSBuildThisFileDirectory)\CodeAnalysis.targets" />
  <Import Project="$(MSBuildThisFileDirectory)\Version.targets" />

  <PropertyGroup>
    <LangVersion>14</LangVersion>
    <RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
    <!-- Store output of Source Generators in obj\debug\net46\generated for easier debugging -->
    <EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
    <CompilerGeneratedFilesOutputPath>$(IntermediateOutputPath)generated</CompilerGeneratedFilesOutputPath>
    <RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
    <!-- Disable package pruning to ensure consistent lock files between Renovate (csproj restore) and CI (sln restore).
         Pruning is applied during csproj restore but not during sln restore (NuGet bug), causing NU1004 in locked mode.
         See NET-3274 and https://github.com/NuGet/Home/issues/14272 -->
    <RestoreEnablePackagePruning>false</RestoreEnablePackagePruning>
    <DisableImplicitNuGetFallbackFolder>true</DisableImplicitNuGetFallbackFolder>
    <!-- Generation of Assembly Attributes that are visible in the DLL properties -->
    <Company>SonarSource Sàrl</Company>
    <Version>$(ShortVersion)</Version>
    <FileVersion>$(FullVersion)</FileVersion>
    <InformationalVersion>Version:$(FullVersion) Branch:$(Branch) Sha1:$(Sha1)</InformationalVersion>
    <Copyright>Copyright © SonarSource Sàrl</Copyright>
    <Product>SonarAnalyzer</Product>
    <Trademark>SonarLint, SonarQube, SonarSource</Trademark>
    <NeutralLanguage>en</NeutralLanguage>
    <!-- This prevents appending of additional "+sha" at the end of InformationalVersion -->
    <IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>
  </PropertyGroup>

  <ItemGroup>
    <Using Include="System" />
    <Using Include="System.Collections.Generic" />
    <Using Include="System.Collections.Immutable" />
    <Using Include="System.Diagnostics" />
    <Using Include="System.Linq" />
    <Using Include="System.Threading" />
    <Using Include="System.Threading.Tasks" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="$(MSBuildThisFileDirectory)\src\AssemblyInfo.Shared.cs" Link="Properties\AssemblyInfo.Shared.cs" />
  </ItemGroup>

  <PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
    <ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
    <Deterministic>true</Deterministic>
  </PropertyGroup>

  <ItemGroup Condition="'$(TF_BUILD)' == 'true'">
    <SourceRoot Include="$(MSBuildThisFileDirectory)/"/>
  </ItemGroup>

</Project>


================================================
FILE: analyzers/README.md
================================================
# SonarAnalyzer for C# and Visual Basic .NET

This folder contains the code specific to the Roslyn based analyzer for C# and VB.NET.

To get more information please read the repository main [README](../README.md).


================================================
FILE: analyzers/SonarAnalyzer.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
VisualStudioVersion = 18.0.11205.157 d18.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{B7233F78-E142-4882-B084-7C83BE472109}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.Core", "src\SonarAnalyzer.Core\SonarAnalyzer.Core.csproj", "{8A8A663E-1318-4361-BC97-2E63666FEADB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.Test", "tests\SonarAnalyzer.Test\SonarAnalyzer.Test.csproj", "{E11606CA-A186-4FEE-BA30-B1688747CD1A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RuleDescriptorGenerator", "src\RuleDescriptorGenerator\RuleDescriptorGenerator.csproj", "{07E31F39-7419-4B4E-998E-C2BF1A6BB91C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.CSharp", "src\SonarAnalyzer.CSharp\SonarAnalyzer.CSharp.csproj", "{CA8EEC07-8775-42E3-91EB-E51F4DB72A48}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.VisualBasic", "src\SonarAnalyzer.VisualBasic\SonarAnalyzer.VisualBasic.csproj", "{7CFA8FA5-8842-4E89-BB90-39D5C0F20BA8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.CFG", "src\SonarAnalyzer.CFG\SonarAnalyzer.CFG.csproj", "{F766F556-CB91-408A-9149-EB963DE1B817}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "SonarAnalyzer.Shared", "src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.shproj", "{892CF3FA-3BE2-42E8-A7E6-76AE72864DEC}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.ShimLayer.CodeGeneration", "src\SonarAnalyzer.ShimLayer.CodeGeneration\SonarAnalyzer.ShimLayer.CodeGeneration.csproj", "{684F0AD7-BBC9-40C8-9E54-D9C2B57560D9}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.SourceGenerators", "src\SonarAnalyzer.SourceGenerators\SonarAnalyzer.SourceGenerators.csproj", "{76D6EBB8-D2B0-41C1-8880-027EC78CB7FF}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.TestFramework.Test", "tests\SonarAnalyzer.TestFramework.Test\SonarAnalyzer.TestFramework.Test.csproj", "{ADBE6CFE-980F-4D4F-8E25-E391581D291E}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.TestFramework", "tests\SonarAnalyzer.TestFramework\SonarAnalyzer.TestFramework.csproj", "{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.CSharp.Styling", "src\SonarAnalyzer.CSharp.Styling\SonarAnalyzer.CSharp.Styling.csproj", "{7F1A25AD-2EEF-4CF9-92D9-FE5B203EECE3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SonarAnalyzer.CSharp.Styling.Test", "tests\SonarAnalyzer.CSharp.Styling.Test\SonarAnalyzer.CSharp.Styling.Test.csproj", "{6F4F7666-8A0D-47FE-A312-56010C4CE082}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.ShimLayer.Lightup", "src\SonarAnalyzer.ShimLayer.Lightup\SonarAnalyzer.ShimLayer.Lightup.csproj", "{93AF346B-C43A-4A42-AD5B-72681367180E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.CSharp.Core", "src\SonarAnalyzer.CSharp.Core\SonarAnalyzer.CSharp.Core.csproj", "{6841D9C0-1B5D-4853-87A5-9D846A165948}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.VisualBasic.Core", "src\SonarAnalyzer.VisualBasic.Core\SonarAnalyzer.VisualBasic.Core.csproj", "{6273FCC8-CD1C-4C50-B1C8-CCA1A26BFB3C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.Core.Test", "tests\SonarAnalyzer.Core.Test\SonarAnalyzer.Core.Test.csproj", "{F97BFB85-443A-45D1-98AB-119BE9A1D121}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.CSharp.Core.Test", "tests\SonarAnalyzer.CSharp.Core.Test\SonarAnalyzer.CSharp.Core.Test.csproj", "{04CA2E3F-D46B-4178-B198-EB170C1685AC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.VisualBasic.Core.Test", "tests\SonarAnalyzer.VisualBasic.Core.Test\SonarAnalyzer.VisualBasic.Core.Test.csproj", "{5624BF83-AA2B-4D55-97FB-BB8B0158C92A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.ShimLayer.Generator", "src\SonarAnalyzer.ShimLayer.Generator\SonarAnalyzer.ShimLayer.Generator.csproj", "{3DB9C3E6-E845-F032-3E92-9F3D90FBF1A6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.ShimLayer", "src\SonarAnalyzer.ShimLayer\SonarAnalyzer.ShimLayer.csproj", "{F38DD14C-BD40-F98B-93CC-635BFD353558}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SonarAnalyzer.ShimLayer.Generator.Test", "tests\SonarAnalyzer.ShimLayer.Generator.Test\SonarAnalyzer.ShimLayer.Generator.Test.csproj", "{ECAEE259-90AD-50B6-BA9C-110A0CC40D30}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{8A8A663E-1318-4361-BC97-2E63666FEADB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{8A8A663E-1318-4361-BC97-2E63666FEADB}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{8A8A663E-1318-4361-BC97-2E63666FEADB}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{8A8A663E-1318-4361-BC97-2E63666FEADB}.Release|Any CPU.Build.0 = Release|Any CPU
		{E11606CA-A186-4FEE-BA30-B1688747CD1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{E11606CA-A186-4FEE-BA30-B1688747CD1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{E11606CA-A186-4FEE-BA30-B1688747CD1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{E11606CA-A186-4FEE-BA30-B1688747CD1A}.Release|Any CPU.Build.0 = Release|Any CPU
		{07E31F39-7419-4B4E-998E-C2BF1A6BB91C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{07E31F39-7419-4B4E-998E-C2BF1A6BB91C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{07E31F39-7419-4B4E-998E-C2BF1A6BB91C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{07E31F39-7419-4B4E-998E-C2BF1A6BB91C}.Release|Any CPU.Build.0 = Release|Any CPU
		{CA8EEC07-8775-42E3-91EB-E51F4DB72A48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{CA8EEC07-8775-42E3-91EB-E51F4DB72A48}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{CA8EEC07-8775-42E3-91EB-E51F4DB72A48}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{CA8EEC07-8775-42E3-91EB-E51F4DB72A48}.Release|Any CPU.Build.0 = Release|Any CPU
		{7CFA8FA5-8842-4E89-BB90-39D5C0F20BA8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{7CFA8FA5-8842-4E89-BB90-39D5C0F20BA8}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{7CFA8FA5-8842-4E89-BB90-39D5C0F20BA8}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{7CFA8FA5-8842-4E89-BB90-39D5C0F20BA8}.Release|Any CPU.Build.0 = Release|Any CPU
		{F766F556-CB91-408A-9149-EB963DE1B817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{F766F556-CB91-408A-9149-EB963DE1B817}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{F766F556-CB91-408A-9149-EB963DE1B817}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{F766F556-CB91-408A-9149-EB963DE1B817}.Release|Any CPU.Build.0 = Release|Any CPU
		{684F0AD7-BBC9-40C8-9E54-D9C2B57560D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{684F0AD7-BBC9-40C8-9E54-D9C2B57560D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{684F0AD7-BBC9-40C8-9E54-D9C2B57560D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{684F0AD7-BBC9-40C8-9E54-D9C2B57560D9}.Release|Any CPU.Build.0 = Release|Any CPU
		{76D6EBB8-D2B0-41C1-8880-027EC78CB7FF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{76D6EBB8-D2B0-41C1-8880-027EC78CB7FF}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{76D6EBB8-D2B0-41C1-8880-027EC78CB7FF}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{76D6EBB8-D2B0-41C1-8880-027EC78CB7FF}.Release|Any CPU.Build.0 = Release|Any CPU
		{ADBE6CFE-980F-4D4F-8E25-E391581D291E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{ADBE6CFE-980F-4D4F-8E25-E391581D291E}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{ADBE6CFE-980F-4D4F-8E25-E391581D291E}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{ADBE6CFE-980F-4D4F-8E25-E391581D291E}.Release|Any CPU.Build.0 = Release|Any CPU
		{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8}.Release|Any CPU.Build.0 = Release|Any CPU
		{7F1A25AD-2EEF-4CF9-92D9-FE5B203EECE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{7F1A25AD-2EEF-4CF9-92D9-FE5B203EECE3}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{7F1A25AD-2EEF-4CF9-92D9-FE5B203EECE3}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{7F1A25AD-2EEF-4CF9-92D9-FE5B203EECE3}.Release|Any CPU.Build.0 = Release|Any CPU
		{6F4F7666-8A0D-47FE-A312-56010C4CE082}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{6F4F7666-8A0D-47FE-A312-56010C4CE082}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{6F4F7666-8A0D-47FE-A312-56010C4CE082}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{6F4F7666-8A0D-47FE-A312-56010C4CE082}.Release|Any CPU.Build.0 = Release|Any CPU
		{93AF346B-C43A-4A42-AD5B-72681367180E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{93AF346B-C43A-4A42-AD5B-72681367180E}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{93AF346B-C43A-4A42-AD5B-72681367180E}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{93AF346B-C43A-4A42-AD5B-72681367180E}.Release|Any CPU.Build.0 = Release|Any CPU
		{6841D9C0-1B5D-4853-87A5-9D846A165948}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{6841D9C0-1B5D-4853-87A5-9D846A165948}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{6841D9C0-1B5D-4853-87A5-9D846A165948}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{6841D9C0-1B5D-4853-87A5-9D846A165948}.Release|Any CPU.Build.0 = Release|Any CPU
		{6273FCC8-CD1C-4C50-B1C8-CCA1A26BFB3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{6273FCC8-CD1C-4C50-B1C8-CCA1A26BFB3C}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{6273FCC8-CD1C-4C50-B1C8-CCA1A26BFB3C}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{6273FCC8-CD1C-4C50-B1C8-CCA1A26BFB3C}.Release|Any CPU.Build.0 = Release|Any CPU
		{F97BFB85-443A-45D1-98AB-119BE9A1D121}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{F97BFB85-443A-45D1-98AB-119BE9A1D121}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{F97BFB85-443A-45D1-98AB-119BE9A1D121}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{F97BFB85-443A-45D1-98AB-119BE9A1D121}.Release|Any CPU.Build.0 = Release|Any CPU
		{04CA2E3F-D46B-4178-B198-EB170C1685AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{04CA2E3F-D46B-4178-B198-EB170C1685AC}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{04CA2E3F-D46B-4178-B198-EB170C1685AC}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{04CA2E3F-D46B-4178-B198-EB170C1685AC}.Release|Any CPU.Build.0 = Release|Any CPU
		{5624BF83-AA2B-4D55-97FB-BB8B0158C92A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{5624BF83-AA2B-4D55-97FB-BB8B0158C92A}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{5624BF83-AA2B-4D55-97FB-BB8B0158C92A}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{5624BF83-AA2B-4D55-97FB-BB8B0158C92A}.Release|Any CPU.Build.0 = Release|Any CPU
		{3DB9C3E6-E845-F032-3E92-9F3D90FBF1A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{3DB9C3E6-E845-F032-3E92-9F3D90FBF1A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{3DB9C3E6-E845-F032-3E92-9F3D90FBF1A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{3DB9C3E6-E845-F032-3E92-9F3D90FBF1A6}.Release|Any CPU.Build.0 = Release|Any CPU
		{F38DD14C-BD40-F98B-93CC-635BFD353558}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{F38DD14C-BD40-F98B-93CC-635BFD353558}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{F38DD14C-BD40-F98B-93CC-635BFD353558}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{F38DD14C-BD40-F98B-93CC-635BFD353558}.Release|Any CPU.Build.0 = Release|Any CPU
		{ECAEE259-90AD-50B6-BA9C-110A0CC40D30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{ECAEE259-90AD-50B6-BA9C-110A0CC40D30}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{ECAEE259-90AD-50B6-BA9C-110A0CC40D30}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{ECAEE259-90AD-50B6-BA9C-110A0CC40D30}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{E11606CA-A186-4FEE-BA30-B1688747CD1A} = {B7233F78-E142-4882-B084-7C83BE472109}
		{ADBE6CFE-980F-4D4F-8E25-E391581D291E} = {B7233F78-E142-4882-B084-7C83BE472109}
		{4C1DB1C4-C1FC-4AA1-B855-0D1948E68FB8} = {B7233F78-E142-4882-B084-7C83BE472109}
		{6F4F7666-8A0D-47FE-A312-56010C4CE082} = {B7233F78-E142-4882-B084-7C83BE472109}
		{F97BFB85-443A-45D1-98AB-119BE9A1D121} = {B7233F78-E142-4882-B084-7C83BE472109}
		{04CA2E3F-D46B-4178-B198-EB170C1685AC} = {B7233F78-E142-4882-B084-7C83BE472109}
		{5624BF83-AA2B-4D55-97FB-BB8B0158C92A} = {B7233F78-E142-4882-B084-7C83BE472109}
		{ECAEE259-90AD-50B6-BA9C-110A0CC40D30} = {B7233F78-E142-4882-B084-7C83BE472109}
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {4259CA71-C565-42DD-8D58-F59819A11065}
	EndGlobalSection
	GlobalSection(SharedMSBuildProjectFiles) = preSolution
		src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.projitems*{6273fcc8-cd1c-4c50-b1c8-cca1a26bfb3c}*SharedItemsImports = 5
		src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.projitems*{6841d9c0-1b5d-4853-87a5-9d846a165948}*SharedItemsImports = 5
		src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.projitems*{7cfa8fa5-8842-4e89-bb90-39d5c0f20ba8}*SharedItemsImports = 5
		src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.projitems*{892cf3fa-3be2-42e8-a7e6-76ae72864dec}*SharedItemsImports = 13
		src\SonarAnalyzer.Shared\SonarAnalyzer.Shared.projitems*{ca8eec07-8775-42e3-91eb-e51f4db72a48}*SharedItemsImports = 5
	EndGlobalSection
EndGlobal


================================================
FILE: analyzers/Version.targets
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <!-- These 4 values are set via set-version.ps1 -->
    <ShortVersion>10.26</ShortVersion>
    <BuildNumber>0</BuildNumber>
    <Branch>
    </Branch>
    <Sha1>
    </Sha1>
    <!-- Computed values -->
    <ShortVersionSuffix Condition="$(ShortVersion.IndexOf('.')) == $(ShortVersion.LastIndexOf('.'))">.0</ShortVersionSuffix>
    <FullVersion>$(ShortVersion)$(ShortVersionSuffix).$(BuildNumber)</FullVersion>
  </PropertyGroup>
</Project>

================================================
FILE: analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/Google.Protobuf-LICENSE.txt
================================================
Copyright 2008 Google Inc.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

    * Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following disclaimer
in the documentation and/or other materials provided with the
distribution.
    * Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Code generated by the Protocol Buffer compiler is owned by the owner
of the input file used when generating it.  This code is not
standalone and requires a support library to be linked with it.  This
support library is itself covered by the above license.

================================================
FILE: analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/Roslyn-LICENSE.txt
================================================
The MIT License (MIT)

Copyright (c) .NET Foundation and Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/StyleCop.Analyzers-LICENSE.txt
================================================
MIT License

Copyright (c) Tunnel Vision Laboratories, LLC

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================
FILE: analyzers/packaging/SonarAnalyzer.CFG.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>SonarAnalyzer.CFG</id>
    <version>$Version$</version>
    <title>CFG library for SonarAnalyzer</title>
    <authors>SonarSource</authors>
    <owners>SonarSource</owners>
    <license type="file">licenses\LICENSE.txt</license>
    <repository type="git" url="https://github.com/SonarSource/sonar-dotnet" />
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>SonarSource CFG library</description>
    <releaseNotes>https://github.com/SonarSource/sonar-dotnet/releases/tag/$Version$</releaseNotes>
    <language>en-US</language>
    <copyright>Copyright © SonarSource Sàrl</copyright>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System" targetFramework="" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="binaries\SonarAnalyzer.CFG\*.dll" target="lib\netstandard2.0" />
    <file src="licenses\THIRD_PARTY_LICENSES\StyleCop.Analyzers-LICENSE.txt" target="licenses\THIRD_PARTY_LICENSES\" />
    <file src="..\..\LICENSE.txt" target="licenses\" />
  </files>
</package>


================================================
FILE: analyzers/packaging/SonarAnalyzer.CSharp.Styling.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>SonarAnalyzer.CSharp.Styling</id>
    <version>$Version$</version>
    <title>Internal Sonar styling analyzer for C#</title>
    <authors>SonarSource</authors>
    <owners>SonarSource</owners>
    <license type="file">licenses\LICENSE.txt</license>
    <projectUrl>https://redirect.sonarsource.com/doc/sonar-visualstudio.html</projectUrl>
    <repository type="git" url="https://github.com/SonarSource/sonar-dotnet" />
    <icon>images\sonarsource_64.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <summary>Internal Sonar styling analyzer for C#</summary>
    <description>This package contains a set of coding style rules to follow in Sonar code base. Coding style changes as well as breaking changes will appear between minor versions without prior notice. We do not provide support for this package.</description>
    <releaseNotes>https://github.com/SonarSource/sonar-dotnet/releases/tag/$Version$</releaseNotes>
    <language>en-US</language>
    <copyright>Copyright © SonarSource Sàrl</copyright>
    <developmentDependency>true</developmentDependency>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System" targetFramework="" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="binaries\SonarAnalyzer.CSharp.Styling\Internal.SonarAnalyzer.CSharp.Styling.dll" target="analyzers" />
    <file src="logos\sonarsource_64.png" target="images\" />
    <file src="licenses\THIRD_PARTY_LICENSES\*" target="licenses\THIRD_PARTY_LICENSES\" />
    <file src="..\..\LICENSE.txt" target="licenses\" />
  </files>
</package>


================================================
FILE: analyzers/packaging/SonarAnalyzer.CSharp.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>SonarAnalyzer.CSharp</id>
    <version>$Version$</version>
    <title>SonarAnalyzer for C#</title>
    <authors>SonarSource</authors>
    <owners>SonarSource</owners>
    <license type="file">licenses\LICENSE.txt</license>
    <projectUrl>https://redirect.sonarsource.com/doc/sonar-visualstudio.html</projectUrl>
    <repository type="git" url="https://github.com/SonarSource/sonar-dotnet" />
    <icon>images\sonarsource_64.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <summary>Roslyn analyzers that spot Bugs, Vulnerabilities and Code Smells in your code. For an even better overall experience, you can use SonarQube for IDE (Visual Studio, Rider), which is a free extension that can be used standalone or with SonarQube (Server, Cloud).</summary>
    <description>Roslyn analyzers that spot Bugs, Vulnerabilities and Code Smells in your code. For an even better overall experience, you can use SonarQube for IDE (Visual Studio, Rider, see https://www.sonarsource.com/products/sonarlint), which is a free extension that can be used standalone or with SonarQube (Server, Cloud, see: https://www.sonarsource.com/products/sonarqube/ and https://www.sonarsource.com/products/sonarcloud/).</description>
    <releaseNotes>https://github.com/SonarSource/sonar-dotnet/releases/tag/$Version$</releaseNotes>
    <language>en-US</language>
    <copyright>Copyright © SonarSource Sàrl</copyright>
    <tags>Roslyn Analyzer Analyzers Refactoring CodeAnalysis CleanCode Clean Code Sonar SonarAnalyzer Dotnet CSharp CodeQuality CodeReview StaticCodeAnalysis SonarQube SonarCloud SonarLint SonarQubeServer SonarQubeCloud SonarQubeIDE</tags>
    <developmentDependency>true</developmentDependency>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System" targetFramework="" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="binaries\SonarAnalyzer.CSharp\*.dll" target="analyzers" />
    <file src="tools-cs\*.ps1" target="tools\" />
    <file src="logos\sonarsource_64.png" target="images\" />
    <file src="licenses\THIRD_PARTY_LICENSES\*" target="licenses\THIRD_PARTY_LICENSES\" />
    <file src="..\..\LICENSE.txt" target="licenses\" />
  </files>
</package>


================================================
FILE: analyzers/packaging/SonarAnalyzer.VisualBasic.nuspec
================================================
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
  <metadata>
    <id>SonarAnalyzer.VisualBasic</id>
    <version>$Version$</version>
    <title>SonarAnalyzer for Visual Basic</title>
    <authors>SonarSource</authors>
    <owners>SonarSource</owners>
    <license type="file">licenses\LICENSE.txt</license>
    <projectUrl>https://redirect.sonarsource.com/doc/sonar-visualstudio.html</projectUrl>
    <repository type="git" url="https://github.com/SonarSource/sonar-dotnet" />
    <icon>images\sonarsource_64.png</icon>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <summary>Roslyn analyzers that spot Bugs, Vulnerabilities and Code Smells in your code. For an even better overall experience, you can use SonarQube for IDE (Visual Studio, Rider), which is a free extension that can be used standalone or with SonarQube (Server, Cloud).</summary>
    <description>Roslyn analyzers that spot Bugs, Vulnerabilities and Code Smells in your code. For an even better overall experience, you can use SonarQube for IDE (Visual Studio, Rider, see https://www.sonarsource.com/products/sonarlint), which is a free extension that can be used standalone or with SonarQube (Server, Cloud, see: https://www.sonarsource.com/products/sonarqube/ and https://www.sonarsource.com/products/sonarcloud/).</description>
    <releaseNotes>https://github.com/SonarSource/sonar-dotnet/releases/tag/$Version$</releaseNotes>
    <language>en-US</language>
    <copyright>Copyright © SonarSource Sàrl</copyright>
    <tags>Roslyn Analyzer Analyzers Refactoring CodeAnalysis CleanCode Clean Code Sonar SonarAnalyzer Dotnet VisualBasic CodeQuality CodeReview StaticCodeAnalysis SonarQube SonarCloud SonarLint</tags>
    <developmentDependency>true</developmentDependency>
    <frameworkAssemblies>
      <frameworkAssembly assemblyName="System" targetFramework="" />
    </frameworkAssemblies>
  </metadata>
  <files>
    <file src="binaries\SonarAnalyzer.VisualBasic\*.dll" target="analyzers" />
    <file src="tools-vbnet\*.ps1" target="tools\" />
    <file src="logos\sonarsource_64.png" target="images\" />
    <file src="licenses\THIRD_PARTY_LICENSES\*" target="licenses\THIRD_PARTY_LICENSES\" />
    <file src="..\..\LICENSE.txt" target="licenses\" />
  </files>
</package>


================================================
FILE: analyzers/packaging/tools-cs/install.ps1
================================================
param($installPath, $toolsPath, $package, $project)

$invalidVsVersion = $false

if ([Version]$project.DTE.Version -lt [Version]"14.0") {
    $invalidVsVersion = $true
}

if ($project.DTE.Version -eq '14.0') {
    $currentAppDomainBaseDir = [System.AppDomain]::CurrentDomain.BaseDirectory
    $path = Join-Path $currentAppDomainBaseDir "msenv.dll"

    if (Test-Path $path) {
        $versionInfo = (Get-Item $path).VersionInfo
        $fullVersion =  New-Object System.Version -ArgumentList @(
            $versionInfo.FileMajorPart
            $versionInfo.FileMinorPart
            $versionInfo.FileBuildPart
            $versionInfo.FilePrivatePart
        )
        $minVersion = [version]"14.0.25420.00"
        if ($fullVersion -lt $minVersion) {
            $invalidVsVersion = $true
        }
    } else {
        $invalidVsVersion = $true
    }
}

if ($invalidVsVersion) {
    throw 'This package can only be installed on Visual Studio 2015 Update 3 or later.'
}

if ($project.Object.AnalyzerReferences -eq $null) {
    throw 'This package cannot be installed without an analyzer reference.'
}

if ($project.Type -ne "C#") {
    throw 'This package can only be installed on C# projects.'
}

$analyzersPath = Split-Path -Path $toolsPath -Parent
$analyzersPath = Join-Path $analyzersPath "analyzers"

$analyzerFilePath = Join-Path $analyzersPath "SonarAnalyzer.CSharp.dll"
$project.Object.AnalyzerReferences.Add($analyzerFilePath)



================================================
FILE: analyzers/packaging/tools-cs/uninstall.ps1
================================================
param($installPath, $toolsPath, $package, $project)

if ($project.Type -ne "C#") {
    return
}

if ([Version]$project.DTE.Version -lt [Version]"14.0") {
    return
}

if ($project.Object.AnalyzerReferences -eq $null) {
    return
}

$analyzersPath = Split-Path -Path $toolsPath -Parent
$analyzersPath = Join-Path $analyzersPath "analyzers"

$analyzerFilePath = Join-Path $analyzersPath "SonarAnalyzer.CSharp.dll"
try {
    $project.Object.AnalyzerReferences.Remove($analyzerFilePath)
}
catch {
}




================================================
FILE: analyzers/packaging/tools-vbnet/install.ps1
================================================
param($installPath, $toolsPath, $package, $project)

$invalidVsVersion = $false

if ([Version]$project.DTE.Version -lt [Version]"14.0") {
    $invalidVsVersion = $true
}

if ($project.DTE.Version -eq '14.0') {
    $currentAppDomainBaseDir = [System.AppDomain]::CurrentDomain.BaseDirectory
    $path = Join-Path $currentAppDomainBaseDir "msenv.dll"

    if (Test-Path $path) {
        $versionInfo = (Get-Item $path).VersionInfo
        $fullVersion =  New-Object System.Version -ArgumentList @(
            $versionInfo.FileMajorPart
            $versionInfo.FileMinorPart
            $versionInfo.FileBuildPart
            $versionInfo.FilePrivatePart
        )
        $minVersion = [version]"14.0.25420.00"
        if ($fullVersion -lt $minVersion) {
            $invalidVsVersion = $true
        }
    } else {
        $invalidVsVersion = $true
    }
}

if ($invalidVsVersion) {
    throw 'This package can only be installed on Visual Studio 2015 Update 3 or later.'
}

if ($project.Object.AnalyzerReferences -eq $null) {
    throw 'This package cannot be installed without an analyzer reference.'
}

if ($project.Type -ne "VB.NET") {
    throw 'This package can only be installed on VB.NET projects.'
}

$analyzersPath = Split-Path -Path $toolsPath -Parent
$analyzersPath = Join-Path $analyzersPath "analyzers"

$analyzerFilePath = Join-Path $analyzersPath "SonarAnalyzer.VisualBasic.dll"
$project.Object.AnalyzerReferences.Add($analyzerFilePath)


================================================
FILE: analyzers/packaging/tools-vbnet/uninstall.ps1
================================================
param($installPath, $toolsPath, $package, $project)

if ($project.Type -ne "VB.NET") {
    return
}

if ([Version]$project.DTE.Version -lt [Version]"14.0") {
    return
}

if ($project.Object.AnalyzerReferences -eq $null) {
    return
}

$analyzersPath = Split-Path -Path $toolsPath -Parent
$analyzersPath = Join-Path $analyzersPath "analyzers"

$analyzerFilePath = Join-Path $analyzersPath "SonarAnalyzer.VisualBasic.dll"
try {
    $project.Object.AnalyzerReferences.Remove($analyzerFilePath)
}
catch {
}


================================================
FILE: analyzers/rspec/cs/S100.html
================================================
<h2>Why is this an issue?</h2>
<p>Shared naming conventions allow teams to collaborate efficiently.</p>
<p>This rule raises an issue when a method or a property name is not PascalCased.</p>
<p>For example, the method</p>
<pre>
public int doSomething() {...} // Noncompliant
</pre>
<p>should be renamed to</p>
<pre>
public int DoSomething() {...}
</pre>
<h3>Exceptions</h3>
<ul>
  <li>The rule ignores members in types marked with <code>ComImportAttribute</code> or <code>InterfaceTypeAttribute</code>.</li>
  <li>The rule ignores <code>extern</code> methods.</li>
  <li>To reduce noise, two consecutive upper-case characters are allowed unless they form the full name. So, <code>MyXMethod</code> is compliant, but
  <code>XM</code> is not.</li>
  <li>The camel casing is not enforced when a name contains the <code>'_'</code> character.</li>
</ul>
<pre>
void My_method_(){...} // Noncompliant, leading and trailing underscores are reported

void My_method(){...} // Compliant by exception
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<p><a href="https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions">Microsoft Capitalization
Conventions</a></p>



================================================
FILE: analyzers/rspec/cs/S100.json
================================================
{
  "title": "Methods and properties should be named in PascalCase",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "IDENTIFIABLE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-100",
  "sqKey": "S100",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1006.html
================================================
<h2>Why is this an issue?</h2>
<p><a
href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments#optional-arguments">Default
arguments</a> are determined by the static type of the object.</p>
<pre>
class Base
{
    public virtual void Run(int distance = 42) { /* ... */ }
}

class Derived : Base
{
    public override void Run(int distance = 5) { /* ... */ }
}

Base x = new Base();
x.Run(); // Here the default value of distance is 42
Derived d = new Derived();
d.Run(); // Here the default value of distance is 5
Base b = new Derived();
b.Run(); // Here the default value of distance is 42, not 5
</pre>
<p>If a default argument is different for a parameter in an overriding method, the value used in the call will be different when calls are made via
the base or derived object, which may be contrary to developer expectations.</p>
<p>Default parameter values in <a
href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/interfaces/explicit-interface-implementation">explicit interface
implementations</a> will be never used, because the static type of the object will always be the implemented interface. Thus, specifying default
values in this case is confusing.</p>
<pre>
interface IRunner
{
    void Run(int distance = 42) { /* ... */ }
}

class Runner : IRunner
{
    void IRunner.Run(int distance = 5) { /* ... */ }
}

IRunner x = new Runner();
x.Run(); // Here the default value of distance is 42
Runner d = new Runner();
d.Run(); // This will not compile as the Run method is only visible through the specified interface
</pre>
<h3>Noncompliant code example</h3>
<pre data-diff-id="1" data-diff-type="noncompliant">
using System;

public class Base
{
    public virtual void Write(int i = 42)
    {
        Console.WriteLine(i);
    }
}

public class Derived : Base
{
    public override void Write(int i = 5) // Noncompliant
    {
        Console.WriteLine(i);
    }
}

public class Program
{
    public static void Main()
    {
        var derived = new Derived();
        derived.Write(); // writes 5
        Print(derived); // writes 42; was that expected?
    }

    private static void Print(Base item)
    {
        item.Write();
    }
}
</pre>
<h3>Compliant solution</h3>
<pre data-diff-id="1" data-diff-type="compliant">
using System;

public class Base
{
    public virtual void Write(int i = 42)
    {
        Console.WriteLine(i);
    }
}

public class Derived : Base
{
    public override void Write(int i = 42)
    {
        Console.WriteLine(i);
    }
}

public class Program
{
    public static void Main()
    {
        var derived = new Derived();
        derived.Write(); // writes 42
        Print(derived);  // writes 42
    }

    private static void Print(Base item)
    {
        item.Write();
    }
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li><a
  href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/named-and-optional-arguments#optional-arguments">Optional arguments</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/interfaces/explicit-interface-implementation">Explicit Interface
  Implementation</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1006.json
================================================
{
  "title": "Method overrides should not change parameter defaults",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "HIGH"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "pitfall"
  ],
  "defaultSeverity": "Critical",
  "ruleSpecification": "RSPEC-1006",
  "sqKey": "S1006",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S101.html
================================================
<h2>Why is this an issue?</h2>
<p>Shared naming conventions allow teams to collaborate efficiently.</p>
<p>This rule raises an issue when a type name is not PascalCased.</p>
<p>For example, the classes</p>
<pre>
class my_class {...}
class SOMEName42 {...}
</pre>
<p>should be renamed to</p>
<pre>
class MyClass {...}
class SomeName42 {...}
</pre>
<h3>Exceptions</h3>
<ul>
  <li>The rule ignores types marked with <code>ComImportAttribute</code> or <code>InterfaceTypeAttribute</code>.</li>
  <li>To reduce noise, two consecutive upper case characters are allowed unless they form the full type name. So, <code>MyXClass</code> is compliant,
  but <code>XC</code> is not.</li>
  <li>The rule allows having <code>'_'</code> characters in class names inside test projects: in that case, each word separated by <code>'_'</code>
  should be PascalCased.</li>
</ul>
<pre>
class Some_Name___42 {...} // Compliant in tests
class Some_name___42 {...} // Noncompliant
class Some_Name_XC {...} // Noncompliant because of XC, should be Some_Name_Xc
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li><a href="https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/capitalization-conventions">Microsoft Capitalization
  Conventions</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S101.json
================================================
{
  "title": "Types should be named in PascalCase",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "IDENTIFIABLE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-101",
  "sqKey": "S101",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S103.html
================================================
<h2>Why is this an issue?</h2>
<p>Scrolling horizontally to see a full line of code lowers the code readability.</p>



================================================
FILE: analyzers/rspec/cs/S103.json
================================================
{
  "title": "Lines should not be too long",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FORMATTED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-103",
  "sqKey": "S103",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S104.html
================================================
<h2>Why is this an issue?</h2>
<p>When a source file grows too much, it can accumulate numerous responsibilities and become challenging to understand and maintain.</p>
<p>Above a specific threshold, refactor the file into smaller files whose code focuses on well-defined tasks. Those smaller files will be easier to
understand and test.</p>



================================================
FILE: analyzers/rspec/cs/S104.json
================================================
{
  "title": "Files should not have too many lines of code",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1h"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-104",
  "sqKey": "S104",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1048.html
================================================
<h2>Why is this an issue?</h2>
<p>The <a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/finalizers">finalizers</a> are used to perform
<a href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals#unmanaged-resources">any necessary final clean-up</a> when
the garbage collector is collecting a class instance. The programmer has no control over when the finalizer is called; the garbage collector decides
when to call it.</p>
<p>When creating a finalizer, it should never throw an exception, as there is a high risk of having the application terminated leaving unmanaged
resources without a graceful cleanup.</p>
<p>The rule raises an issue on <code>throw</code> statements used in a finalizer.</p>
<h2>How to fix it</h2>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
class MyClass
{
    ~MyClass()
    {
        throw new NotImplementedException(); // Noncompliant: finalizer throws an exception
    }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
class MyClass
{
    ~MyClass()
    {
        // Compliant: finalizer does not throw an exception
    }
}
</pre>
<h3>Going the extra mile</h3>
<p>In general object finalization can be a complex and error-prone operation and should not be implemented except within the <a
href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose">dispose pattern</a>.</p>
<p>When <a href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/unmanaged">cleaning up unmanaged resources</a>, it is
recommended to implement the dispose pattern or, to cover uncalled <a
href="https://learn.microsoft.com/en-us/dotnet/api/system.idisposable.dispose"><code>Dispose</code></a> method by the consumer, implement <a
href="https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.safehandle"><code>SafeHandle</code></a>.</p>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/fundamentals">Fundamentals of garbage
  collection</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/unmanaged">Cleaning up unmanaged
  resources</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/standard/garbage-collection/implementing-dispose">Implement a Dispose
  method</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.safehandle"><code>SafeHandle</code>
  Class</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/api/system.idisposable.dispose"><code>IDisposable.Dispose</code>
  Method</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/finalizers">Finalizers
  (destructors)</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1048.json
================================================
{
  "title": "Finalizers should not throw exceptions",
  "type": "BUG",
  "code": {
    "impacts": {
      "RELIABILITY": "BLOCKER"
    },
    "attribute": "LOGICAL"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "30min"
  },
  "tags": [],
  "defaultSeverity": "Blocker",
  "ruleSpecification": "RSPEC-1048",
  "sqKey": "S1048",
  "scope": "Main",
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S105.html
================================================
<h2>Why is this an issue?</h2>
<p>The tab width can differ from one development environment to another. Using tabs may require other developers to configure their environment (text
editor, preferences, etc.) to read source code.</p>
<p>That is why using spaces is preferable.</p>



================================================
FILE: analyzers/rspec/cs/S105.json
================================================
{
  "title": "Tabulation characters should not be used",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "FORMATTED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-105",
  "sqKey": "S105",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S106.html
================================================
<h2>Why is this an issue?</h2>
<p>In software development, logs serve as a record of events within an application, providing crucial insights for debugging. When logging, it is
essential to ensure that the logs are:</p>
<ul>
  <li>easily accessible</li>
  <li>uniformly formatted for readability</li>
  <li>properly recorded</li>
  <li>securely logged when dealing with sensitive data</li>
</ul>
<p>Those requirements are not met if a program directly writes to the standard outputs (e.g., Console). That is why defining and using a dedicated
logger is highly recommended.</p>
<h3>Exceptions</h3>
<p>The rule doesn’t raise an issue for:</p>
<ul>
  <li>Console Applications</li>
  <li>Calls in methods decorated with <code>[Conditional ("DEBUG")]</code></li>
  <li>Calls included in DEBUG preprocessor branches (<code>#if DEBUG</code>)</li>
</ul>
<h3>Code examples</h3>
<p>The following noncompliant code:</p>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class MyClass
{
    private void DoSomething()
    {
        // ...
        Console.WriteLine("My Message"); // Noncompliant
        // ...
    }
}
</pre>
<p>Could be replaced by:</p>
<pre data-diff-id="1" data-diff-type="compliant">
public class MyClass
{
    private readonly ILogger _logger;

    // ...

    private void DoSomething()
    {
        // ...
        _logger.LogInformation("My Message");
        // ...
    }
}
</pre>
<h2>Resources</h2>
<ul>
  <li>OWASP - <a href="https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/">Top 10 2021 Category A9 - Security Logging and
  Monitoring Failures</a></li>
  <li>OWASP - <a href="https://www.owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure">Top 10 2017 Category A3 - Sensitive Data
  Exposure</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S106.json
================================================
{
  "title": "Standard outputs should not be used directly to log anything",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "MODULAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "10min"
  },
  "tags": [
    "bad-practice"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-106",
  "sqKey": "S106",
  "scope": "Main",
  "securityStandards": {
    "OWASP": [
      "A3"
    ],
    "OWASP Top 10 2021": [
      "A9"
    ]
  },
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1066.html
================================================
<h2>Why is this an issue?</h2>
<p>Nested code - blocks of code inside blocks of code - is eventually necessary, but increases complexity. This is why keeping the code as flat as
possible, by avoiding unnecessary nesting, is considered a good practice.</p>
<p>Merging <code>if</code> statements when possible will decrease the nesting of the code and improve its readability.</p>
<p>Code like</p>
<pre>
if (condition1)
{
    if (condition2)           // Noncompliant
    {
        // ...
    }
}
</pre>
<p>Will be more readable as</p>
<pre>
if (condition1 &amp;&amp; condition2) // Compliant
{
    // ...
}
</pre>
<h2>How to fix it</h2>
<p>If merging the conditions seems to result in a more complex code, extracting the condition or part of it in a named function or variable is a
better approach to fix readability.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre>
if (file != null)
{
  if (file.isFile() || file.isDirectory())    // Noncompliant
  {
    /* ... */
  }
}
</pre>
<h4>Compliant solution</h4>
<pre>
bool isFileOrDirectory(File file)
{
  return file.isFile() || file.isDirectory();
}

/* ... */

if (file != null &amp;&amp; isFileOrDirectory(file))  // Compliant
{
  /* ... */
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1066.json
================================================
{
  "title": "Mergeable \"if\" statements should be combined",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "clumsy"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1066",
  "sqKey": "S1066",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1067.html
================================================
<h2>Why is this an issue?</h2>
<p>The complexity of an expression is defined by the number of <code>&amp;&amp;</code>, <code>||</code> and <code>condition ? ifTrue : ifFalse</code>
operators it contains.</p>
<p>A single expression’s complexity should not become too high to keep the code readable.</p>
<h3>Noncompliant code example</h3>
<p>With the default threshold value of 3</p>
<pre>
if (((condition1 &amp;&amp; condition2) || (condition3 &amp;&amp; condition4)) &amp;&amp; condition5) { ... }
</pre>
<h3>Compliant solution</h3>
<pre>
if ((MyFirstCondition() || MySecondCondition()) &amp;&amp; MyLastCondition()) { ... }
</pre>



================================================
FILE: analyzers/rspec/cs/S1067.json
================================================
{
  "title": "Expressions should not be too complex",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "HIGH"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "3min"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Critical",
  "ruleSpecification": "RSPEC-1067",
  "sqKey": "S1067",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S107.html
================================================
<h2>Why is this an issue?</h2>
<p>Methods with a long parameter list are difficult to use because maintainers must figure out the role of each parameter and keep track of their
position.</p>
<pre>
void SetCoordinates(int x1, int y1, int z1, int x2, int y2, int z2) // Noncompliant
{
   // ...
}
</pre>
<p>The solution can be to:</p>
<ul>
  <li>Split the method into smaller ones</li>
</ul>
<pre>
// Each function does a part of what the original setCoordinates function was doing, so confusion risks are lower
void SetOrigin(int x, int y, int z)
{
   // ...
}

void SetSize(int width, int height, int depth)
{
   //
}
</pre>
<ul>
  <li>Find a better data structure for the parameters that group data in a way that makes sense for the specific application domain</li>
</ul>
<pre>
// In geometry, Point is a logical structure to group data
readonly record struct Point(int X, int Y, int Z);

void SetCoordinates(Point p1, Point p2)
{
    // ...
}
</pre>
<p>This rule raises an issue when a method has more parameters than the provided threshold.</p>
<h3>Exceptions</h3>
<p>The rule does not count the parameters intended for a base class constructor.</p>
<p>With a maximum number of 4 parameters:</p>
<pre>
public class BaseClass
{
    public BaseClass(int param1)
    {
        // ...
    }
}

public class DerivedClass : BaseClass
{
    public DerivedClass(int param1, int param2, int param3, string param4, long param5) : base(param1) // Compliant by exception
    {
        // ...
    }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S107.json
================================================
{
  "title": "Methods should not have too many parameters",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "20min"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-107",
  "sqKey": "S107",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1075.html
================================================
<h2>Why is this an issue?</h2>
<p>Hard-coding a URI makes it difficult to test a program for a variety of reasons:</p>
<ul>
  <li>path literals are not always portable across operating systems</li>
  <li>a given absolute path may not exist in a specific test environment</li>
  <li>a specified Internet URL may not be available when executing the tests</li>
  <li>production environment filesystems usually differ from the development environment</li>
</ul>
<p>In addition, hard-coded URIs can contain sensitive information, like IP addresses, and they should not be stored in the code.</p>
<p>For all those reasons, a URI should never be hard coded. Instead, it should be replaced by a customizable parameter.</p>
<p>Further, even if the elements of a URI are obtained dynamically, portability can still be limited if the path delimiters are hard-coded.</p>
<p>This rule raises an issue when URIs or path delimiters are hard-coded.</p>
<h3>Exceptions</h3>
<p>This rule does not raise an issue when an ASP.NET virtual path is passed as an argument to one of the following:</p>
<ul>
  <li>methods: <code>System.Web.HttpServerUtilityBase.MapPath()</code>, <code>System.Web.HttpRequestBase.MapPath()</code>,
  <code>System.Web.HttpResponseBase.ApplyAppPathModifier()</code>, <code>System.Web.Mvc.UrlHelper.Content()</code></li>
  <li>all methods of: <code>System.Web.VirtualPathUtility</code></li>
  <li>constructors of: <code>Microsoft.AspNetCore.Mvc.VirtualFileResult</code>, <code>Microsoft.AspNetCore.Routing.VirtualPathData</code></li>
</ul>
<h2>How to fix it</h2>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class Foo {
  public List&lt;User&gt; ListUsers() {
    string userListPath = "/home/mylogin/Dev/users.txt"; // Noncompliant
    return ParseUsers(userListPath);
  }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public class Foo {
  // Configuration is a class that returns customizable properties: it can be mocked to be injected during tests.
  private Configuration config;
  public Foo(Configuration myConfig) {
    this.config = myConfig;
  }
  public List&lt;User&gt; ListUsers() {
    // Find here the way to get the correct folder, in this case using the Configuration object
    string listingFolder = config.GetProperty("myApplication.listingFolder");
    // and use this parameter instead of the hard coded path
    string userListPath = Path.Combine(listingFolder, "users.txt"); // Compliant
    return ParseUsers(userListPath);
  }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1075.json
================================================
{
  "title": "URIs should not be hardcoded",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CONVENTIONAL"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "20min"
  },
  "tags": [],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1075",
  "sqKey": "S1075",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S108.html
================================================
<h2>Why is this an issue?</h2>
<p>An empty code block is confusing. It will require some effort from maintainers to determine if it is intentional or indicates the implementation is
incomplete.</p>
<pre>
for (int i = 0; i &lt; 42; i++){}  // Noncompliant: is the block empty on purpose, or is code missing?
</pre>
<p>Removing or filling the empty code blocks takes away ambiguity and generally results in a more straightforward and less surprising code.</p>
<h3>Exceptions</h3>
<p>The rule ignores code blocks that contain comments.</p>



================================================
FILE: analyzers/rspec/cs/S108.json
================================================
{
  "title": "Nested blocks of code should not be left empty",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "suspicious"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-108",
  "sqKey": "S108",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S109.html
================================================
<p>A magic number is a hard-coded numerical value that may lack context or meaning. They should not be used because they can make the code less
readable and maintainable.</p>
<h2>Why is this an issue?</h2>
<p>Magic numbers make the code more complex to understand as it requires the reader to have knowledge about the global context to understand the
number itself. Their usage may seem obvious when writing the code, but it may not be the case for another developer or later once the context faded
away. -1, 0, and 1 are not considered magic numbers.</p>
<h3>Exceptions</h3>
<p>This rule doesn’t raise an issue when the magic number is used as part of:</p>
<ul>
  <li>the <code>GetHashCode</code> method</li>
  <li>a variable/field declaration</li>
  <li>the single argument of an attribute</li>
  <li>a named argument for a method or attribute</li>
  <li>a constructor call</li>
  <li>a default value for a method argument</li>
</ul>
<h2>How to fix it</h2>
<p>Replacing them with a constant allows us to provide a meaningful name associated with the value. Instead of adding complexity to the code, it
brings clarity and helps to understand the context and the global meaning.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public void DoSomething()
{
    for (int i = 0; i &lt; 4; i++)  // Noncompliant, 4 is a magic number
    {
        ...
    }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
private const int NUMBER_OF_CYCLES = 4;

public void DoSomething()
{
    for (int i = 0; i &lt; NUMBER_OF_CYCLES; i++)  // Compliant
    {
        ...
    }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S109.json
================================================
{
  "title": "Magic numbers should not be used",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-109",
  "sqKey": "S109",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S110.html
================================================
<h2>Why is this an issue?</h2>
<p>Inheritance is one of the most valuable concepts in object-oriented programming. It’s a way to categorize and reuse code by creating collections of
attributes and behaviors called classes, which can be based on previously created classes.</p>
<p>But abusing this concept by creating a deep inheritance tree can lead to complex and unmaintainable source code. Often, an inheritance tree
becoming too deep is the symptom of systematic use of "inheritance" when other approaches like "composition" would be better suited.</p>
<p>This rule raises an issue when the inheritance tree, starting from <code>Object</code>, has a greater depth than is allowed.</p>
<h2>Resources</h2>
<h3>Documentation</h3>
<p><a href="https://en.wikipedia.org/wiki/Composition_over_inheritance">Composition over inheritance: difference between composition and inheritance
in object-oriented programming</a></p>



================================================
FILE: analyzers/rspec/cs/S110.json
================================================
{
  "title": "Inheritance tree of classes should not be too deep",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Linear with offset",
    "linearDesc": "Number of parents above the defined threshold",
    "linearOffset": "4h",
    "linearFactor": "30min"
  },
  "tags": [],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-110",
  "sqKey": "S110",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1104.html
================================================
<h2>Why is this an issue?</h2>
<p>Public fields in public classes do not respect the encapsulation principle and have three main disadvantages:</p>
<ul>
  <li>Additional behavior such as validation cannot be added.</li>
  <li>The internal representation is exposed, and cannot be changed afterwards.</li>
  <li>Member values are subject to change from anywhere in the code and may not meet the programmer’s assumptions.</li>
</ul>
<p>To prevent unauthorized modifications, private attributes and accessor methods (set and get) should be used.</p>
<p>Note that due to optimizations on simple properties, public fields provide only very little performance gain.</p>
<h3>What is the potential impact?</h3>
<p>Public fields can be modified by any part of the code and this can lead to unexpected changes and hard-to-trace bugs.</p>
<p>Public fields don’t hide the implementation details. As a consequence, it is no longer possible to change how the data is stored internally without
impacting the client code of the class.</p>
<p>The code is harder to maintain.</p>
<h3>Exceptions</h3>
<p>Fields marked as <code>readonly</code> or <code>const</code> are ignored by this rule.</p>
<p>Fields inside classes or structs annotated with <code>[StructLayout]</code> are ignored by this rule.</p>
<p>Fields inside classes or structs annotated with <code>[Serializable]</code> are ignored by this rule unless they are annotated with
<code>[NonSerialized]</code>.</p>
<h2>How to fix it</h2>
<p>Depending on your needs:</p>
<ul>
  <li>Use auto-implemented properties:
    <br>
    For common cases, where no validation is required, auto-implemented properties are a good alternative to fields: these allows fine grained access
    control and offers the flexibility to add validation or change internal storage afterwards. <em>Note:</em> as a bonus it is now possible to
    monitor value changes using breakpoints.</li>
  <li>Encapsulate the fields in your class. To do so:
    <ol>
      <li>Make the field private.</li>
      <li>Use public properties (set and get) to access and modify the field.</li>
    </ol></li>
  <li>Mark field as <code>readonly</code> or <code>const</code>.</li>
</ul>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class Foo
{
    public int InstanceData = 32; // Noncompliant
    public int AnotherInstanceData = 32; // Noncompliant

}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public class Foo
{
    // using auto-implemented properties
    public int InstanceData { get; set; } = 32;

    // using field encapsulation
    private int _anotherInstanceData = 32;

    public int AnotherInstanceData
    {
        get { return _anotherInstanceData; }
        set
        {
            // perform validation
            _anotherInstanceData = value;
        }
    }

}
</pre>
<h3>Pitfalls</h3>
<p>Please be aware that changing a field by a property in a software that uses serialization could lead to binary incompatibility.</p>
<h2>Resources</h2>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/493">CWE-493 - Critical Public Variable Without Final Modifier</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1104.json
================================================
{
  "title": "Fields should not have public accessibility",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "MODULAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "10min"
  },
  "tags": [
    "cwe"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1104",
  "sqKey": "S1104",
  "scope": "Main",
  "securityStandards": {
    "CWE": [
      493
    ]
  },
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1109.html
================================================
<h2>Why is this an issue?</h2>
<p>Shared coding conventions make it possible for a team to efficiently collaborate. This rule makes it mandatory to place a close curly brace at the
beginning of a line.</p>
<h3>Noncompliant code example</h3>
<pre>
if(condition)
{
  doSomething();}
</pre>
<h3>Compliant solution</h3>
<pre>
if(condition)
{
  doSomething();
}
</pre>
<h3>Exceptions</h3>
<p>When blocks are inlined (open and close curly braces on the same line), no issue is triggered.</p>
<pre>
if(condition) {doSomething();}
</pre>



================================================
FILE: analyzers/rspec/cs/S1109.json
================================================
{
  "title": "A close curly brace should be located at the beginning of a line",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "FORMATTED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1109",
  "sqKey": "S1109",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1110.html
================================================
<h2>Why is this an issue?</h2>
<p>Parentheses can disambiguate the order of operations in complex expressions and make the code easier to understand.</p>
<pre>
a = (b * c) + (d * e); // Compliant: the intent is clear.
</pre>
<p>Redundant parentheses are parenthesis that do not change the behavior of the code, and do not clarify the intent. They can mislead and complexify
the code. They should be removed.</p>
<h3>Noncompliant code example</h3>
<pre data-diff-id="1" data-diff-type="noncompliant">
int x = ((y / 2 + 1)); // Noncompliant

if (a &amp;&amp; ((x + y &gt; 0))) { // Noncompliant
  return ((x + 1)); // Noncompliant
}
</pre>
<h3>Compliant solution</h3>
<pre data-diff-id="1" data-diff-type="compliant">
int x = (y / 2 + 1);

if (a &amp;&amp; (x + y &gt; 0)) {
  return (x + 1);
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1110.json
================================================
{
  "title": "Redundant pairs of parentheses should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1min"
  },
  "tags": [
    "confusing"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1110",
  "sqKey": "S1110",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1116.html
================================================
<h2>Why is this an issue?</h2>
<p>Empty statements represented by a semicolon <code>;</code> are statements that do not perform any operation. They are often the result of a typo or
a misunderstanding of the language syntax. It is a good practice to remove empty statements since they don’t add value and lead to confusion and
errors.</p>
<h3>Exceptions</h3>
<p>This rule does not raise when an empty statement is the only statement in a loop.</p>
<pre>
for (int i = 0; i &lt; 3; Console.WriteLine(i), i++);
</pre>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
void DoSomething()
{
    ; // Noncompliant - was used as a kind of TODO marker
}

void DoSomethingElse()
{
    Console.WriteLine("Hello, world!");;  // Noncompliant - double ;
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
void DoSomething()
{
}

void DoSomethingElse()
{
    Console.WriteLine("Hello, world!");
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1116.json
================================================
{
  "title": "Empty statements should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "unused"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1116",
  "sqKey": "S1116",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1117.html
================================================
<h2>Why is this an issue?</h2>
<p>Shadowing occurs when a local variable has the same name as a variable, field, or property in an outer scope.</p>
<p>This can lead to three main problems:</p>
<ul>
  <li>Confusion: The same name can refer to different variables in different parts of the scope, making the code hard to read and understand.</li>
  <li>Unintended Behavior: You might accidentally use the wrong variable, leading to hard-to-detect bugs.</li>
  <li>Maintenance Issues: If the inner variable is removed or renamed, the code’s behavior might change unexpectedly because the outer variable is now
  being used.</li>
</ul>
<p>To avoid these problems, rename the shadowing, shadowed, or both variables/fields/properties to accurately represent their purpose with unique and
meaningful names. It improves clarity and allows reasoning locally about the code without considering other software parts.</p>
<p>This rule focuses on variables shadowing fields or properties.</p>
<h3>Noncompliant code example</h3>
<pre>
class Foo
{
  public int myField;
  public int MyProperty { get; set; }

  public void DoSomething()
  {
    int myField = 0;    // Noncompliant
    int MyProperty = 0; // Noncompliant
  }
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/fields">Fields</a></li>
  <li>Microsoft Learn - <a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/properties">Properties</a></li>
</ul>
<h3>Related rules</h3>
<ul>
  <li>{rule:csharpsquid:S2387} - Child class fields should not shadow parent class fields</li>
  <li>{rule:csharpsquid:S3218} - Inner class members should not shadow outer class "static" or type members</li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1117.json
================================================
{
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "suspicious",
    "pitfall"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1117",
  "sqKey": "S1117",
  "scope": "All",
  "quickfix": "infeasible",
  "title": "Local variables should not shadow class fields or properties"
}


================================================
FILE: analyzers/rspec/cs/S1118.html
================================================
<h2>Why is this an issue?</h2>
<p>Whenever there are portions of code that are duplicated and do not depend on the state of their container class, they can be centralized inside a
"utility class". A utility class is a class that only has static members, hence it should not be instantiated.</p>
<h2>How to fix it</h2>
<p>To prevent the class from being instantiated, you should define a non-public constructor. This will prevent the compiler from implicitly generating
a public parameterless constructor.</p>
<p>Alternatively, adding the <code>static</code> keyword as class modifier will also prevent it from being instantiated.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class StringUtils // Noncompliant: implicit public constructor
{
  public static string Concatenate(string s1, string s2)
  {
    return s1 + s2;
  }
}
</pre>
<p>or</p>
<pre data-diff-id="2" data-diff-type="noncompliant">
public class StringUtils // Noncompliant: explicit public constructor
{
  public StringUtils()
  {
  }

  public static string Concatenate(string s1, string s2)
  {
    return s1 + s2;
  }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public static class StringUtils // Compliant: the class is static
{
  public static string Concatenate(string s1, string s2)
  {
    return s1 + s2;
  }
}
</pre>
<p>or</p>
<pre data-diff-id="2" data-diff-type="compliant">
public class StringUtils // Compliant: the constructor is not public
{
  private StringUtils()
  {
  }

  public static string Concatenate(string s1, string s2)
  {
    return s1 + s2;
  }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1118.json
================================================
{
  "title": "Utility classes should not have public constructors",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "10min"
  },
  "tags": [
    "design"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1118",
  "sqKey": "S1118",
  "scope": "All",
  "quickfix": "targeted"
}


================================================
FILE: analyzers/rspec/cs/S112.html
================================================
<p>This rule raises an issue when a general or reserved exception is thrown.</p>
<h2>Why is this an issue?</h2>
<p>Throwing general exceptions such as <code>Exception</code>, <code>SystemException</code> and <code>ApplicationException</code> will have a negative
impact on any code trying to catch these exceptions.</p>
<p>From a consumer perspective, it is generally a best practice to only catch exceptions you intend to handle. Other exceptions should ideally be let
to propagate up the stack trace so that they can be dealt with appropriately. When a general exception is thrown, it forces consumers to catch
exceptions they do not intend to handle, which they then have to re-throw.</p>
<p>Besides, when working with a general type of exception, the only way to distinguish between multiple exceptions is to check their message, which is
error-prone and difficult to maintain. Legitimate exceptions may be unintentionally silenced and errors may be hidden.</p>
<p>For instance, if an exception such as <code>StackOverflowException</code> is caught and not re-thrown, it may prevent the program from terminating
gracefully.</p>
<p>When throwing an exception, it is therefore recommended to throw the most specific exception possible so that it can be handled intentionally by
consumers.</p>
<p>Additionally, some reserved exceptions should not be thrown manually. Exceptions such as <code>IndexOutOfRangeException</code>,
<code>NullReferenceException</code>, <code>OutOfMemoryException</code> or <code>ExecutionEngineException</code> will be thrown automatically by the
runtime when the corresponding error occurs. Many of them indicate serious errors, which the application may not be able to recover from. It is
therefore recommended to avoid throwing them as well as using them as base classes.</p>
<h2>How to fix it</h2>
<p>To fix this issue, make sure to throw specific exceptions that are relevant to the context in which they arise. It is recommended to either:</p>
<ul>
  <li>Throw a subtype of <code>Exception</code> when one matches. For instance <code>ArgumentException</code> could be raised when an unexpected
  argument is provided to a function.</li>
  <li>Define a custom exception type that derives from <code>Exception</code> or one of its subclasses.</li>
</ul>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public void DoSomething(object obj)
{
  if (obj == null)
  {
    throw new NullReferenceException("obj");  // Noncompliant: This reserved exception should not be thrown manually
  }
  // ...
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public void DoSomething(object obj)
{
  if (obj == null)
  {
    throw new ArgumentNullException("obj");  // Compliant: this is a specific and non-reserved exception type
  }
  // ...
}
</pre>
<h2>Resources</h2>
<h3>Standards</h3>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/397">CWE-397 Declaration of Throws for Generic Exception</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S112.json
================================================
{
  "title": "General or reserved exceptions should never be thrown",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "20min"
  },
  "tags": [
    "cwe",
    "error-handling"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-112",
  "sqKey": "S112",
  "scope": "Main",
  "securityStandards": {
    "CWE": [
      397
    ]
  },
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S1121.html
================================================
<h2>Why is this an issue?</h2>
<p>A common code smell that can hinder the clarity of source code is making assignments within sub-expressions. This practice involves assigning a
value to a variable inside a larger expression, such as within a loop or a conditional statement.</p>
<p>This practice essentially gives a side-effect to a larger expression, thus making it less readable. This often leads to confusion and potential
errors.</p>
<h3>Exceptions</h3>
<p>Assignments inside lambda and delegate expressions are allowed.</p>
<pre>
var result = Foo(() =&gt;
{
   int x = 100; // dead store, but ignored
   x = 200;
   return x;
}
</pre>
<p>The rule also ignores the following patterns:</p>
<ul>
  <li>Chained assignments</li>
</ul>
<pre>
var a = b = c = 10;
</pre>
<ul>
  <li>Assignments that are part of a condition of an <code>if</code> statement or a loop</li>
</ul>
<pre>
while ((val = GetNewValue()) &gt; 0)
{
...
}
</pre>
<ul>
  <li>Assignment in the right-hand side of a coalescing operator</li>
</ul>
<pre>
private MyClass instance;
public MyClass Instance =&gt; instance ?? (instance = new MyClass());
</pre>
<h2>How to fix it</h2>
<p>Making assignments within sub-expressions can hinder the clarity of source code.</p>
<p>This practice essentially gives a side-effect to a larger expression, thus making it less readable. This often leads to confusion and potential
errors.</p>
<p>Extracting assignments into separate statements is encouraged to keep the code clear and straightforward.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
if (string.IsNullOrEmpty(result = str.Substring(index, length))) // Noncompliant
{
  // do something with "result"
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
var result = str.Substring(index, length);
if (string.IsNullOrEmpty(result))
{
  // do something with "result"
}
</pre>
<h2>Resources</h2>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/481">CWE-481 - Assigning instead of Comparing</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1121.json
================================================
{
  "title": "Assignments should not be made from within sub-expressions",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "cwe",
    "suspicious"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1121",
  "sqKey": "S1121",
  "scope": "All",
  "securityStandards": {
    "CWE": [
      481
    ]
  },
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1123.html
================================================
<h2>Why is this an issue?</h2>
<p>The <code>Obsolete</code> attribute can be applied with or without a message argument. Marking something <code>Obsolete</code> without including
advice on why it’s obsolete or what to use instead will lead maintainers to waste time trying to figure those things out.</p>
<h3>Noncompliant code example</h3>
<pre>
public class Car
{

  [Obsolete]  // Noncompliant
  public void CrankEngine(int turnsOfCrank)
  { ... }
}
</pre>
<h3>Compliant solution</h3>
<pre>
public class Car
{

  [Obsolete("Replaced by the automatic starter")]
  public void CrankEngine(int turnsOfCrank)
  { ... }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1123.json
================================================
{
  "title": "\"Obsolete\" attributes should include explanations",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "obsolete",
    "bad-practice"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1123",
  "sqKey": "S1123",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1125.html
================================================
<h2>Why is this an issue?</h2>
<p>A boolean literal can be represented in two different ways: <code>true</code> or <code>false</code>. They can be combined with logical operators
(<code>!, &amp;&amp;, ||, ==, !=</code>) to produce logical expressions that represent truth values. However, comparing a boolean literal to a
variable or expression that evaluates to a boolean value is unnecessary and can make the code harder to read and understand. The more complex a
boolean expression is, the harder it will be for developers to understand its meaning and expected behavior, and it will favour the introduction of
new bugs.</p>
<h2>How to fix it</h2>
<p>Remove redundant boolean literals from expressions to improve readability and make the code more maintainable.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
if (booleanMethod() == true) { /* ... */ }
if (booleanMethod() == false) { /* ... */ }
if (booleanMethod() || false) { /* ... */ }
doSomething(!false);
doSomething(booleanMethod() == true);

booleanVariable = booleanMethod() ? true : false;
booleanVariable = booleanMethod() ? true : exp;
booleanVariable = booleanMethod() ? false : exp;
booleanVariable = booleanMethod() ? exp : true;
booleanVariable = booleanMethod() ? exp : false;

for (var x = 0; true; x++)
{
 ...
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
if (booleanMethod()) { /* ... */ }
if (!booleanMethod()) { /* ... */ }
if (booleanMethod()) { /* ... */ }
doSomething(true);
doSomething(booleanMethod());

booleanVariable = booleanMethod();
booleanVariable = booleanMethod() || exp;
booleanVariable = !booleanMethod() &amp;&amp; exp;
booleanVariable = !booleanMethod() || exp;
booleanVariable = booleanMethod() &amp;&amp; exp;

for (var x = 0; ; x++)
{
 ...
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1125.json
================================================
{
  "title": "Boolean literals should not be redundant",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CONVENTIONAL"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "clumsy"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1125",
  "sqKey": "S1125",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1128.html
================================================
<h2>Why is this an issue?</h2>
<p>Unnecessary <code>using</code> directives refer to importing namespaces, types or creating aliases that are not used or referenced anywhere in the
code.</p>
<p>Although they don’t affect the runtime behavior of the application after compilation, removing them will:</p>
<ul>
  <li>Improve the readability and maintainability of the code.</li>
  <li>Help avoid potential naming conflicts.</li>
  <li>Improve the build time, as the compiler has fewer lines to read and fewer types to resolve.</li>
  <li>Reduce the number of items the code editor will show for auto-completion, thereby showing fewer irrelevant suggestions.</li>
</ul>
<p>Starting with C# 10, it’s possible to define <a
href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive#global-modifier">global usings</a> for an entire
project. They reduce the need for repetitive namespace inclusions, but can also mask which namespaces are truly necessary for the code at hand.
Over-relying on them can lead to less transparent code dependencies, especially for newcomers to the project.</p>
<h3>Exceptions</h3>
<p>The rule will not raise a warning for <code>global using</code> directives, even if none of the types of that namespace are used in the
project:</p>
<pre>
global using System.Net.Sockets; // Compliant by exception
</pre>
<p>Unnecessary <code>using</code> directives are ignored in ASP.NET Core projects in the following files:</p>
<ul>
  <li><code>_Imports.razor</code></li>
  <li><code>_ViewImports.cshtml</code></li>
</ul>
<h2>How to fix it</h2>
<p>While it’s not difficult to remove these unneeded lines manually, modern code editors support the removal of every unnecessary <code>using</code>
directive with a single click from every file of the project.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
using System.IO;
using System.Linq;
using System.Collections.Generic;   // Noncompliant - no types are used from this namespace
using MyApp.Helpers;                // Noncompliant - FileHelper is in the same namespace
using MyCustomNamespace;            // Noncompliant - no types are used from this namespace

namespace MyApp.Helpers
{
    public class FileHelper
    {
        public static string ReadFirstLine(string filePath) =&gt;
            File.ReadAllLines(filePath).First();
    }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
using System.IO;
using System.Linq;

namespace MyApp.Helpers
{
    public class FileHelper
    {
        public static string ReadFirstLine(string filePath) =&gt;
            File.ReadAllLines(filePath).First();
    }
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/using-directive">MSDN - using directives</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/namespace">MSDN - namespaces</a></li>
</ul>
<h3>Related rules</h3>
<ul>
  <li>{rule:csharpsquid:S1144} - Unused private types or members should be removed</li>
  <li>{rule:csharpsquid:S1481} - Unused local variables should be removed</li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1128.json
================================================
{
  "title": "Unnecessary \"using\" should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1min"
  },
  "tags": [
    "unused"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1128",
  "sqKey": "S1128",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S113.html
================================================
<h2>Why is this an issue?</h2>
<p>Some tools work better when files end with an empty line.</p>
<p>This rule simply generates an issue if it is missing.</p>
<p>For example, a Git diff looks like this if the empty line is missing at the end of the file:</p>
<pre>
+class Test
+{
+}
\ No newline at end of file
</pre>



================================================
FILE: analyzers/rspec/cs/S113.json
================================================
{
  "title": "Files should end with a newline",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CONVENTIONAL"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "1min"
  },
  "tags": [
    "convention"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-113",
  "sqKey": "S113",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1133.html
================================================
<h2>Why is this an issue?</h2>
<p>This rule is meant to be used as a way to track code which is marked as being deprecated. Deprecated code should eventually be removed.</p>
<h3>Noncompliant code example</h3>
<pre>
[Obsolete] // Noncompliant
void Method()
{
    // ..
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1133.json
================================================
{
  "title": "Deprecated code should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "INFO"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "10min"
  },
  "tags": [
    "obsolete"
  ],
  "defaultSeverity": "Info",
  "ruleSpecification": "RSPEC-1133",
  "sqKey": "S1133",
  "scope": "All",
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S1134.html
================================================
<h2>Why is this an issue?</h2>
<p><code>FIXME</code> tags are commonly used to mark places where a bug is suspected, but which the developer wants to deal with later.</p>
<p>Sometimes the developer will not have the time or will simply forget to get back to that tag.</p>
<p>This rule is meant to track those tags and to ensure that they do not go unnoticed.</p>
<pre>
private int Divide(int numerator, int denominator)
{
    return numerator / denominator; // FIXME denominator value might be 0
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/546">CWE-546 - Suspicious Comment</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1134.json
================================================
{
  "title": "Track uses of \"FIXME\" tags",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "0min"
  },
  "tags": [
    "cwe"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1134",
  "sqKey": "S1134",
  "scope": "All",
  "securityStandards": {
    "CWE": [
      546
    ]
  },
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S1135.html
================================================
<h2>Why is this an issue?</h2>
<p>Developers often use <code>TODO</code> tags to mark areas in the code where additional work or improvements are needed but are not implemented
immediately. However, these <code>TODO</code> tags sometimes get overlooked or forgotten, leading to incomplete or unfinished code. This rule aims to
identify and address unattended <code>TODO</code> tags to ensure a clean and maintainable codebase. This description explores why this is a problem
and how it can be fixed to improve the overall code quality.</p>
<h3>What is the potential impact?</h3>
<p>Unattended <code>TODO</code> tags in code can have significant implications for the development process and the overall codebase.</p>
<p>Incomplete Functionality: When developers leave <code>TODO</code> tags without implementing the corresponding code, it results in incomplete
functionality within the software. This can lead to unexpected behavior or missing features, adversely affecting the end-user experience.</p>
<p>Missed Bug Fixes: If developers do not promptly address <code>TODO</code> tags, they might overlook critical bug fixes and security updates.
Delayed bug fixes can result in more severe issues and increase the effort required to resolve them later.</p>
<p>Impact on Collaboration: In team-based development environments, unattended <code>TODO</code> tags can hinder collaboration. Other team members
might not be aware of the intended changes, leading to conflicts or redundant efforts in the codebase.</p>
<p>Codebase Bloat: The accumulation of unattended <code>TODO</code> tags over time can clutter the codebase and make it difficult to distinguish
between work in progress and completed code. This bloat can make it challenging to maintain an organized and efficient codebase.</p>
<p>Addressing this code smell is essential to ensure a maintainable, readable, reliable codebase and promote effective collaboration among
developers.</p>
<h3>Noncompliant code example</h3>
<pre>
private void DoSomething()
{
  // TODO
}
</pre>
<h2>Resources</h2>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/546">CWE-546 - Suspicious Comment</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1135.json
================================================
{
  "title": "Track uses of \"TODO\" tags",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "INFO"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "0min"
  },
  "tags": [
    "cwe"
  ],
  "defaultSeverity": "Info",
  "ruleSpecification": "RSPEC-1135",
  "sqKey": "S1135",
  "scope": "All",
  "securityStandards": {
    "CWE": [
      546
    ]
  },
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S1144.html
================================================
<p>This rule raises an issue when a private/internal type or member is never referenced in the code.</p>
<h2>Why is this an issue?</h2>
<p>A type or member that is never called is dead code, and should be removed. Cleaning out dead code decreases the size of the maintained codebase,
making it easier to understand the program and preventing bugs from being introduced.</p>
<p>This rule detects type or members that are never referenced from inside a translation unit, and cannot be referenced from the outside.</p>
<h3>Exceptions</h3>
<p>This rule doesn’t raise issues on:</p>
<ul>
  <li>empty constructors</li>
  <li>members with attributes</li>
  <li>the <code>Main</code> method of the application</li>
  <li><code>void</code> methods with two parameters when the second parameter type derives from <a
  href="https://learn.microsoft.com/en-us/dotnet/api/system.eventargs">EventArgs</a></li>
  <li>empty serialization constructor on type with <a
  href="https://learn.microsoft.com/en-us/dotnet/api/system.serializableattribute">System.SerializableAttribute</a> attribute.</li>
  <li>field and property members of types marked with <a
  href="https://learn.microsoft.com/en-us/dotnet/api/system.serializableattribute">System.SerializableAttribute</a> attribute</li>
  <li>internal members in assemblies that have a <a
  href="https://learn.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.internalsvisibletoattribute">System.Runtime.CompilerServices.InternalsVisibleToAttribute</a> attribute.</li>
  <li>types and members decorated with the <a
  href="https://learn.microsoft.com/en-us/dotnet/api/system.diagnostics.codeanalysis.dynamicallyaccessedmembersattribute">System.Diagnostics.CodeAnalysis.DynamicallyAccessedMembersAttribute</a> attribute (available in .NET 5.0+) or a custom attribute named <code>DynamicallyAccessedMembersAttribute</code>.</li>
</ul>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class Foo
{
    private void UnusedPrivateMethod(){...} // Noncompliant, this private method is unused and can be removed.

    private class UnusedClass {...} // Noncompliant, unused private class that can be removed.
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public class Foo
{
    public Foo()
    {
        UsedPrivateMethod();
    }

    private void UsedPrivateMethod()
    {
        var c = new UsedClass();
    }

    private class UsedClass {...}
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/access-modifiers">Access Modifiers (C#
  Programming Guide)</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1144.json
================================================
{
  "title": "Unused private types or members should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "unused"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1144",
  "sqKey": "S1144",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1147.html
================================================
<h2>Why is this an issue?</h2>
<p>Calling <code>Environment.Exit(exitCode)</code> or <code>Application.Exit()</code> terminates the process and returns an exit code to the operating
system..</p>
<p>Each of these methods should be used with extreme care, and only when the intent is to stop the whole application.</p>
<h3>Noncompliant code example</h3>
<pre>
Environment.Exit(0);
Application.Exit();
</pre>
<h3>Exceptions</h3>
<p>These methods are ignored inside <code>Main</code>.</p>



================================================
FILE: analyzers/rspec/cs/S1147.json
================================================
{
  "title": "Exit methods should not be called",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "BLOCKER"
    },
    "attribute": "CONVENTIONAL"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "30min"
  },
  "tags": [
    "cwe",
    "suspicious"
  ],
  "defaultSeverity": "Blocker",
  "ruleSpecification": "RSPEC-1147",
  "sqKey": "S1147",
  "scope": "Main",
  "securityStandards": {
    "CWE": [
      382
    ]
  },
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1151.html
================================================
<h2>Why is this an issue?</h2>
<p>The <code>switch</code> statement should be used only to clearly define some new branches in the control flow. As soon as a <code>case</code>
clause contains too many statements this highly decreases the readability of the overall control flow statement. In such case, the content of the
<code>case</code> clause should be extracted into a dedicated method.</p>
<h3>Noncompliant code example</h3>
<p>With the default threshold of 8:</p>
<pre>
switch (myVariable)
{
    case 0: // Noncompliant: 9 statements in the case
        methodCall1("");
        methodCall2("");
        methodCall3("");
        methodCall4("");
        methodCall5("");
        methodCall6("");
        methodCall7("");
        methodCall8("");
        methodCall9("");
        break;
    case 1:
        ...
}
</pre>
<h3>Compliant solution</h3>
<pre>
switch (myVariable)
{
    case 0:
        DoSomething()
        break;
    case 1:
        ...
}
...
private void DoSomething()
{
    methodCall1("");
    methodCall2("");
    methodCall3("");
    methodCall4("");
    methodCall5("");
    methodCall6("");
    methodCall7("");
    methodCall8("");
    methodCall9("");
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1151.json
================================================
{
  "title": "\"switch case\" clauses should not have too many lines of code",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1151",
  "sqKey": "S1151",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1155.html
================================================
<h2>Why is this an issue?</h2>
<p>When you call <code>Any()</code>, it clearly communicates the code’s intention, which is to check if the collection is empty. Using <code>Count()
== 0</code> for this purpose is less direct and makes the code slightly more complex. However, there are some cases where special attention should be
paid:</p>
<ul>
  <li>if the collection is an <code>EntityFramework</code> or other ORM query, calling <code>Count()</code> will cause executing a potentially massive
  SQL query and could put a large overhead on the application database. Calling <code>Any()</code> will also connect to the database, but will
  generate much more efficient SQL.</li>
  <li>if the collection is part of a LINQ query that contains <code>Select()</code> statements that create objects, a large amount of memory could be
  unnecessarily allocated. Calling <code>Any()</code> will be much more efficient because it will execute fewer iterations of the enumerable.</li>
</ul>
<h2>How to fix it</h2>
<p>Prefer using <code>Any()</code> to test for emptiness over <code>Count()</code>.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
private static bool HasContent(IEnumerable&lt;string&gt; strings)
{
  return strings.Count() &gt; 0;  // Noncompliant
}

private static bool HasContent2(IEnumerable&lt;string&gt; strings)
{
  return strings.Count() &gt;= 1;  // Noncompliant
}

private static bool IsEmpty(IEnumerable&lt;string&gt; strings)
{
  return strings.Count() == 0;  // Noncompliant
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
private static bool HasContent(IEnumerable&lt;string&gt; strings)
{
  return strings.Any();
}

private static bool HasContent2(IEnumerable&lt;string&gt; strings)
{
  return strings.Any();
}

private static bool IsEmpty(IEnumerable&lt;string&gt; strings)
{
  return !strings.Any();
}
</pre>
<h2>Resources</h2>
<h3>Benchmarks</h3>
<table>
  <colgroup>
    <col style="width: 25%;">
    <col style="width: 25%;">
    <col style="width: 25%;">
    <col style="width: 25%;">
  </colgroup>
  <thead>
    <tr>
      <th>Method</th>
      <th>Runtime</th>
      <th>Mean</th>
      <th>Standard Deviation</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>
        <p>Count</p>
      </td>
      <td>
        <p>.NET 9.0</p>
      </td>
      <td>
        <p>2,841.003 ns</p>
      </td>
      <td>
        <p>266.0238 ns</p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Any</p>
      </td>
      <td>
        <p>.NET 9.0</p>
      </td>
      <td>
        <p>1.749 ns</p>
      </td>
      <td>
        <p>0.1242 ns</p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Count</p>
      </td>
      <td>
        <p>.NET Framework 4.8.1</p>
      </td>
      <td>
        <p>71,125.275 ns</p>
      </td>
      <td>
        <p>731.0382 ns</p>
      </td>
    </tr>
    <tr>
      <td>
        <p>Any</p>
      </td>
      <td>
        <p>.NET Framework 4.8.1</p>
      </td>
      <td>
        <p>31.774 ns</p>
      </td>
      <td>
        <p>0.3196 ns</p>
      </td>
    </tr>
  </tbody>
</table>
<h4>Glossary</h4>
<ul>
  <li><a href="https://en.wikipedia.org/wiki/Arithmetic_mean">Mean</a></li>
  <li><a href="https://en.wikipedia.org/wiki/Standard_deviation">Standard Deviation</a></li>
</ul>
<p>The results were generated by running the following snippet with <a href="https://github.com/dotnet/BenchmarkDotNet">BenchmarkDotNet</a>:</p>
<pre>
private IEnumerable&lt;int&gt; collection;

public const int N = 10_000;

[GlobalSetup]
public void GlobalSetup()
{
    collection = Enumerable.Range(0, N).Select(x =&gt; N - x);
}

[Benchmark(Baseline = true)]
public bool Count() =&gt;
    collection.Count() &gt; 0;

[Benchmark]
public bool Any() =&gt;
    collection.Any();
</pre>
<p>Hardware Configuration:</p>
<pre>
BenchmarkDotNet v0.14.0, Windows 10 (10.0.19045.5247/22H2/2022Update)
12th Gen Intel Core i7-12800H, 1 CPU, 20 logical and 14 physical cores
  [Host]               : .NET Framework 4.8.1 (4.8.9282.0), X64 RyuJIT VectorSize=256
  .NET 9.0             : .NET 9.0.0 (9.0.24.52809), X64 RyuJIT AVX2
  .NET Framework 4.8.1 : .NET Framework 4.8.1 (4.8.9282.0), X64 RyuJIT VectorSize=256
</pre>



================================================
FILE: analyzers/rspec/cs/S1155.json
================================================
{
  "title": "\"Any()\" should be used to test for emptiness",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "performance"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1155",
  "sqKey": "S1155",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1163.html
================================================
<h2>Why is this an issue?</h2>
<p>If an exception is already being thrown within the <code>try</code> block or caught in a <code>catch</code> block, throwing another exception in
the <code>finally</code> block will override the original exception. This means that the original exception’s message and stack trace will be lost,
potentially making it challenging to diagnose and troubleshoot the root cause of the problem.</p>
<pre data-diff-id="1" data-diff-type="noncompliant">
try
{
  // Some work which end up throwing an exception
  throw new ArgumentException();
}
finally
{
  // Cleanup
  throw new InvalidOperationException(); // Noncompliant: will mask the ArgumentException
}
</pre>
<pre data-diff-id="1" data-diff-type="compliant">
try
{
  // Some work which end up throwing an exception
  throw new ArgumentException();
}
finally
{
  // Cleanup without throwing
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li><a href="https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/exceptions/">Exceptions and Exception Handling</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/standard/exceptions/how-to-use-finally-blocks">Finally blocks</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/exceptions/how-to-execute-cleanup-code-using-finally">How to execute
  cleanup code using finally</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1163.json
================================================
{
  "title": "Exceptions should not be thrown in finally blocks",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "HIGH"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "30min"
  },
  "tags": [
    "error-handling",
    "suspicious"
  ],
  "defaultSeverity": "Critical",
  "ruleSpecification": "RSPEC-1163",
  "sqKey": "S1163",
  "scope": "Main",
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S1168.html
================================================
<h2>Why is this an issue?</h2>
<p>Returning <code>null</code> or <code>default</code> instead of an actual collection forces the method callers to explicitly test for null, making
the code more complex and less readable.</p>
<p>Moreover, in many cases, <code>null</code> or <code>default</code> is used as a synonym for empty.</p>
<h3>Noncompliant code example</h3>
<pre>
public Result[] GetResults()
{
    return null; // Noncompliant
}

public IEnumerable&lt;Result&gt; GetResults(bool condition)
{
    var results = GenerateResults();
    return condition
        ? results
        : null; // Noncompliant
}

public IEnumerable&lt;Result&gt; GetResults() =&gt; null; // Noncompliant

public IEnumerable&lt;Result&gt; Results
{
    get
    {
        return default(IEnumerable&lt;Result&gt;); // Noncompliant
    }
}

public IEnumerable&lt;Result&gt; Results =&gt; default; // Noncompliant
</pre>
<h3>Compliant solution</h3>
<pre>
public Result[] GetResults()
{
    return new Result[0];
}

public IEnumerable&lt;Result&gt; GetResults(bool condition)
{
    var results = GenerateResults();
    return condition
        ? results
        : Enumerable.Empty&lt;Result&gt;();
}

public IEnumerable&lt;Result&gt; GetResults() =&gt; Enumerable.Empty&lt;Result&gt;();

public IEnumerable&lt;Result&gt; Results
{
    get
    {
        return Enumerable.Empty&lt;Result&gt;();
    }
}

public IEnumerable&lt;Result&gt; Results =&gt; Enumerable.Empty&lt;Result&gt;();
</pre>
<h3>Exceptions</h3>
<p>Although <code>string</code> is a collection, the rule won’t report on it.</p>



================================================
FILE: analyzers/rspec/cs/S1168.json
================================================
{
  "title": "Empty arrays and collections should be returned instead of null",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "30min"
  },
  "tags": [],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1168",
  "sqKey": "S1168",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1172.html
================================================
<h2>Why is this an issue?</h2>
<p>A typical code smell known as unused function parameters refers to parameters declared in a function but not used anywhere within the function’s
body. While this might seem harmless at first glance, it can lead to confusion and potential errors in your code. Disregarding the values passed to
such parameters, the function’s behavior will be the same, but the programmer’s intention won’t be clearly expressed anymore. Therefore, removing
function parameters that are not being utilized is considered best practice.</p>
<p>This rule raises an issue when a <code>private</code> method or constructor of a class/struct takes a parameter without using it.</p>
<h3>Exceptions</h3>
<p>This rule doesn’t raise any issue in the following contexts:</p>
<ul>
  <li>The <code>this</code> parameter of extension methods.</li>
  <li>Methods decorated with attributes.</li>
  <li>Empty methods.</li>
  <li>Methods which only throw <code>NotImplementedException</code>.</li>
  <li>The Main method of the application.</li>
  <li><code>virtual</code>, <code>override</code> methods.</li>
  <li>interface implementations.</li>
</ul>
<h2>How to fix it</h2>
<p>Having unused function parameters in your code can lead to confusion and misunderstanding of a developer’s intention. They reduce code readability
and introduce the potential for errors. To avoid these problems, developers should remove unused parameters from function declarations.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
private void DoSomething(int a, int b) // Noncompliant, "b" is unused
{
    Compute(a);
}

private void DoSomething2(int a) // Noncompliant, the value of "a" is unused
{
    a = 10;
    Compute(a);
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
private void DoSomething(int a)
{
    Compute(a);
}

private void DoSomething2()
{
    var a = 10;
    Compute(a);
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1172.json
================================================
{
  "title": "Unused method parameters should be removed",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "unused"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1172",
  "sqKey": "S1172",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1185.html
================================================
<h2>Why is this an issue?</h2>
<p>Overriding a method just to call the same method from the base class without performing any other actions is useless and misleading. The only time
this is justified is in <code>sealed</code> overriding methods, where the effect is to lock in the parent class behavior. This rule ignores overrides
of <code>Equals</code> and <code>GetHashCode</code>.</p>
<p>NOTE: In some cases it might be dangerous to add or remove empty overrides, as they might be breaking changes.</p>
<h3>Noncompliant code example</h3>
<pre>
public override void Method() // Noncompliant
{
  base.Method();
}
</pre>
<h3>Compliant solution</h3>
<pre>
public override void Method()
{
  //do something else
}
</pre>
<h3>Exceptions</h3>
<p>If there is an attribute in any level of the overriding chain, then the overridden member is ignored.</p>
<pre>
public class Base
{
  [Required]
  public virtual string Name { get; set; }
}

public class Derived : Base
{
  public override string Name
  {
    get
    {
      return base.Name;
    }
    set
    {
      base.Name = value;
    }
  }
}
</pre>
<p>If there is a documentation comment on the overriding method, it will be ignored:</p>
<pre>
public class Foo : Bar
{
    /// &lt;summary&gt;
    /// Keep this method for backwards compatibility.
    /// &lt;/summary&gt;
    public override void DoSomething()
    {
        base.DoSomething();
    }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1185.json
================================================
{
  "title": "Overriding members should do more than simply call the same member in the base class",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "redundant",
    "clumsy"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1185",
  "sqKey": "S1185",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1186.html
================================================
<h2>Why is this an issue?</h2>
<p>An empty method is generally considered bad practice and can lead to confusion, readability, and maintenance issues. Empty methods bring no
functionality and are misleading to others as they might think the method implementation fulfills a specific and identified requirement.</p>
<p>There are several reasons for a method not to have a body:</p>
<ul>
  <li>It is an unintentional omission, and should be fixed to prevent an unexpected behavior in production.</li>
  <li>It is not yet, or never will be, supported. In this case an exception should be thrown.</li>
  <li>The method is an intentionally-blank override. In this case a nested comment should explain the reason for the blank override.</li>
</ul>
<h3>Exceptions</h3>
<p>The following empty methods are considered compliant:</p>
<ul>
  <li>empty <code>virtual</code> methods as the implementation might not be required in the base class</li>
  <li>empty methods that override an <code>abstract</code> method as the implementation is mandatory for child class</li>
  <li>empty overrides in test assemblies for mocking purposes</li>
</ul>
<h2>How to fix it</h2>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public void ShouldNotBeEmpty() {  // Noncompliant - method is empty
}

public void NotImplementedYet() {  // Noncompliant - method is empty
}

public void WillNeverBeImplemented() {  // Noncompliant - method is empty
}

public void EmptyOnPurpose() {  // Noncompliant - method is empty
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public void ShouldNotBeEmpty() {
    DoSomething();
}

public void NotImplementedYet() {
    throw new NotImplementedException();
}

public void WillNeverBeImplemented() {
    throw new NotSupportedException();
}

public void EmptyOnPurpose() {
  // comment explaining why the method is empty
}
</pre>
<h4>Compliant solution</h4>



================================================
FILE: analyzers/rspec/cs/S1186.json
================================================
{
  "title": "Methods should not be empty",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "HIGH"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "5min"
  },
  "tags": [
    "suspicious"
  ],
  "defaultSeverity": "Critical",
  "ruleSpecification": "RSPEC-1186",
  "sqKey": "S1186",
  "scope": "All",
  "quickfix": "covered"
}


================================================
FILE: analyzers/rspec/cs/S1192.html
================================================
<h2>Why is this an issue?</h2>
<p>Duplicated string literals make the process of refactoring complex and error-prone, as any change would need to be propagated on all
occurrences.</p>
<h3>Exceptions</h3>
<p>The following are ignored:</p>
<ul>
  <li>literals with fewer than 5 characters</li>
  <li>literals matching one of the parameter names</li>
  <li>literals used in attributes</li>
</ul>
<h2>How to fix it</h2>
<p>Use constants to replace the duplicated string literals. Constants can be referenced from many places, but only need to be updated in a single
place.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public class Foo
{
    private string name = "foobar"; // Noncompliant

    public string DefaultName { get; } = "foobar"; // Noncompliant

    public Foo(string value = "foobar") // Noncompliant
    {
        var something = value ?? "foobar"; // Noncompliant
    }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public class Foo
{
    private const string Foobar = "foobar";

    private string name = Foobar;

    public string DefaultName { get; } = Foobar;

    public Foo(string value = Foobar)
    {
        var something = value ?? Foobar;
    }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1192.json
================================================
{
  "title": "String literals should not be duplicated",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "DISTINCT"
  },
  "status": "ready",
  "remediation": {
    "func": "Linear with offset",
    "linearDesc": "per duplicate instance",
    "linearOffset": "2min",
    "linearFactor": "2min"
  },
  "tags": [
    "design"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1192",
  "sqKey": "S1192",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1199.html
================================================
<h2>Why is this an issue?</h2>
<p>Nested code blocks create new scopes where variables declared within are inaccessible from the outside, and their lifespan ends with the block.</p>
<p>Although this may appear beneficial, their usage within a function often suggests that the function is overloaded. Thus, it may violate the Single
Responsibility Principle, and the function needs to be broken down into smaller functions.</p>
<p>The presence of nested blocks that don’t affect the control flow might suggest possible mistakes in the code.</p>
<h3>Exceptions</h3>
<p>The usage of a code block after a <code>case</code> is allowed.</p>
<h2>How to fix it</h2>
<p>The nested code blocks should be extracted into separate methods.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
public void Evaluate()
{
    /* ... */
    {     // Noncompliant - nested code block '{' ... '}'
          int a = stack.pop();
          int b = stack.pop();
          int result = a + b;
          stack.push(result);
    }
    /* ... */
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
public void Evaluate()
{
    /* ... */
    StackAdd();
    /* ... */
}

private void StackAdd()
{
      int a = stack.pop();
      int b = stack.pop();
      int result = a + b;
      stack.push(result);
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li>Wikipedia - <a href="https://en.wikipedia.org/wiki/Single-responsibility_principle">Single Responsibility Principle</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1199.json
================================================
{
  "title": "Nested code blocks should not be used",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "10min"
  },
  "tags": [
    "bad-practice"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1199",
  "sqKey": "S1199",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1200.html
================================================
<h2>Why is this an issue?</h2>
<p>According to the Single Responsibility Principle, introduced by Robert C. Martin in his book "Principles of Object Oriented Design", a class should
have only one responsibility:</p>
<blockquote>
  <p>If a class has more than one responsibility, then the responsibilities become coupled.</p>
  <p>Changes to one responsibility may impair or inhibit the class' ability to meet the others.</p>
  <p>This kind of coupling leads to fragile designs that break in unexpected ways when changed.</p>
</blockquote>
<p>Classes which rely on many other classes tend to aggregate too many responsibilities and should be split into several smaller ones.</p>
<p>Nested classes dependencies are not counted as dependencies of the outer class.</p>
<h3>Noncompliant code example</h3>
<p>With a threshold of 5:</p>
<pre>
public class Foo    // Noncompliant - Foo depends on too many classes: T1, T2, T3, T4, T5, T6 and T7
{
  private T1 a1;    // Foo is coupled to T1
  private T2 a2;    // Foo is coupled to T2
  private T3 a3;    // Foo is coupled to T3

  public T4 Compute(T5 a, T6 b)    // Foo is coupled to T4, T5 and T6
  {
    T7 result = a.Process(b);    // Foo is coupled to T7
    return result;
  }

  public static class Bar    // Compliant - Bar depends on 2 classes: T8 and T9
  {
    public T8 a8;
    public T9 a9;
  }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1200.json
================================================
{
  "title": "Classes should not be coupled to too many other classes",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "MEDIUM"
    },
    "attribute": "FOCUSED"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2h"
  },
  "tags": [
    "brain-overload"
  ],
  "defaultSeverity": "Major",
  "ruleSpecification": "RSPEC-1200",
  "sqKey": "S1200",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1206.html
================================================
<h2>Why is this an issue?</h2>
<p>Suppose you override <a href="https://learn.microsoft.com/en-us/dotnet/api/system.object.equals">Object.Equals</a> in a type, you must also
override <a href="https://learn.microsoft.com/en-us/dotnet/api/system.object.gethashcode">Object.GetHashCode</a>. If two objects are equal according
to the <code>Equals</code> method, then calling <code>GetHashCode</code> on each of them must yield the same integer. If this is not the case, many
collections, such as a <a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.hashtable">Hashtable</a> or a <a
href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2">Dictionary</a> won’t handle class instances correctly.</p>
<p>In order to not have unpredictable behavior, <code>Equals</code> and <code>GetHashCode</code> should be either both inherited, or both
overridden.</p>
<h2>How to fix it</h2>
<p>When you override <code>Equals</code> then you have to also override <code>GetHashCode</code>. You have to override both of them, or simply inherit
them.</p>
<h3>Code examples</h3>
<h4>Noncompliant code example</h4>
<pre data-diff-id="1" data-diff-type="noncompliant">
class MyClass   // Noncompliant: should also override GetHashCode
{
    public override bool Equals(object obj)
    {
        // ...
    }
}
</pre>
<h4>Compliant solution</h4>
<pre data-diff-id="1" data-diff-type="compliant">
class MyClass
{
    public override bool Equals(object obj)
    {
        // ...
    }

    public override int GetHashCode()
    {
        // ...
    }
}
</pre>
<h2>Resources</h2>
<h3>Documentation</h3>
<ul>
  <li>CWE - <a href="https://cwe.mitre.org/data/definitions/581">CWE-581 - Object Model Violation: Just One of Equals and Hashcode Defined</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/api/system.object.equals">Object.Equals Method</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/api/system.object.gethashcode">Object.GetHashCode Method</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.hashtable">Hashtable class</a></li>
  <li><a href="https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.dictionary-2">Dictionary&lt;TKey,TValue&gt; Class</a></li>
</ul>



================================================
FILE: analyzers/rspec/cs/S1206.json
================================================
{
  "title": "\"Equals(Object)\" and \"GetHashCode()\" should be overridden in pairs",
  "type": "BUG",
  "code": {
    "impacts": {
      "RELIABILITY": "LOW"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "15 min"
  },
  "tags": [
    "cwe"
  ],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1206",
  "sqKey": "S1206",
  "scope": "Main",
  "securityStandards": {
    "CWE": [
      581
    ]
  },
  "quickfix": "infeasible"
}


================================================
FILE: analyzers/rspec/cs/S121.html
================================================
<p>Control structures are code statements that impact the program’s control flow (e.g., if statements, for loops, etc.)</p>
<h2>Why is this an issue?</h2>
<p>While not technically incorrect, the omission of curly braces can be misleading and may lead to the introduction of errors during maintenance.</p>
<p>In the following example, the two calls seem to be attached to the <code>if</code> statement, but only the first one is, and
<code>CheckSomething</code> will always be executed:</p>
<pre>
if (condition) // Noncompliant
  ExecuteSomething();
  CheckSomething();
</pre>
<p>Adding curly braces improves the code readability and its robustness:</p>
<pre>
if (condition)
{
  ExecuteSomething();
  CheckSomething();
}
</pre>
<p>The rule raises an issue when a control structure has no curly braces.</p>



================================================
FILE: analyzers/rspec/cs/S121.json
================================================
{
  "title": "Control structures should use curly braces",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "HIGH"
    },
    "attribute": "CLEAR"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "2min"
  },
  "tags": [
    "pitfall"
  ],
  "defaultSeverity": "Critical",
  "ruleSpecification": "RSPEC-121",
  "sqKey": "S121",
  "scope": "All",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1210.html
================================================
<h2>Why is this an issue?</h2>
<p>When you implement <code>IComparable</code> or <code>IComparable&lt;T&gt;</code> on a class you should also override <code>Equals(object)</code>
and overload the comparison operators (<code>==</code>, <code>!=</code>, <code>&lt;</code>, <code>&lt;=</code>, <code>&gt;</code>,
<code>&gt;=</code>). That’s because the CLR cannot automatically call your <code>CompareTo</code> implementation from <code>Equals(object)</code> or
from the base comparison operator implementations. Additionally, it is best practice to override <code>GetHashCode</code> along with
<code>Equals</code>.</p>
<p>This rule raises an issue when a class implements <code>IComparable</code> without also overriding <code>Equals(object)</code> and the comparison
operators.</p>
<h3>Noncompliant code example</h3>
<pre>
public class Foo: IComparable  // Noncompliant
{
  public int CompareTo(object obj) { /* ... */ }
}
</pre>
<h3>Compliant solution</h3>
<pre>
public class Foo: IComparable
{
  public int CompareTo(object obj) { /* ... */ }
  public override bool Equals(object obj)
  {
    var other = obj as Foo;
    if (object.ReferenceEquals(other, null))
    {
      return false;
    }
    return this.CompareTo(other) == 0;
  }
  public int GetHashCode() { /* ... */ }
  public static bool operator == (Foo left, Foo right)
  {
    if (object.ReferenceEquals(left, null))
    {
      return object.ReferenceEquals(right, null);
    }
    return left.Equals(right);
  }
  public static bool operator &gt; (Foo left, Foo right)
  {
    return Compare(left, right) &gt; 0;
  }
  public static bool operator &lt; (Foo left, Foo right)
  {
    return Compare(left, right) &lt; 0;
  }
  public static bool operator != (Foo left, Foo right)
  {
    return !(left == right);
  }
}
</pre>



================================================
FILE: analyzers/rspec/cs/S1210.json
================================================
{
  "title": "\"Equals\" and the comparison operators should be overridden when implementing \"IComparable\"",
  "type": "CODE_SMELL",
  "code": {
    "impacts": {
      "MAINTAINABILITY": "LOW"
    },
    "attribute": "COMPLETE"
  },
  "status": "ready",
  "remediation": {
    "func": "Constant\/Issue",
    "constantCost": "15min"
  },
  "tags": [],
  "defaultSeverity": "Minor",
  "ruleSpecification": "RSPEC-1210",
  "sqKey": "S1210",
  "scope": "Main",
  "quickfix": "unknown"
}


================================================
FILE: analyzers/rspec/cs/S1215.html
===============
Download .txt
Showing preview only (417K chars total). Download the full file or copy to clipboard to get everything.
gitextract_opbg6mf9/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── CODEOWNERS
│   ├── GitHub.shproj
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-FalsePositive.yml
│   │   ├── 2-FalseNegative.yml
│   │   ├── 3-AD0001.yml
│   │   ├── 4-NewRule.yml
│   │   └── config.yml
│   └── workflows/
│       ├── LabelIssue.yml
│       └── SlackNotification.yml
├── .gitignore
├── .globalconfig
├── LICENSE.txt
├── NOTICE.txt
├── README.md
├── SECURITY.md
├── analyzers/
│   ├── .runsettings
│   ├── CI.NuGet.Config
│   ├── CodeAnalysis.targets
│   ├── Common.targets
│   ├── README.md
│   ├── SonarAnalyzer.sln
│   ├── Version.targets
│   ├── packaging/
│   │   ├── Licenses/
│   │   │   └── THIRD_PARTY_LICENSES/
│   │   │       ├── Google.Protobuf-LICENSE.txt
│   │   │       ├── Roslyn-LICENSE.txt
│   │   │       └── StyleCop.Analyzers-LICENSE.txt
│   │   ├── SonarAnalyzer.CFG.nuspec
│   │   ├── SonarAnalyzer.CSharp.Styling.nuspec
│   │   ├── SonarAnalyzer.CSharp.nuspec
│   │   ├── SonarAnalyzer.VisualBasic.nuspec
│   │   ├── tools-cs/
│   │   │   ├── install.ps1
│   │   │   └── uninstall.ps1
│   │   └── tools-vbnet/
│   │       ├── install.ps1
│   │       └── uninstall.ps1
│   ├── rspec/
│   │   ├── cs/
│   │   │   ├── S100.html
│   │   │   ├── S100.json
│   │   │   ├── S1006.html
│   │   │   ├── S1006.json
│   │   │   ├── S101.html
│   │   │   ├── S101.json
│   │   │   ├── S103.html
│   │   │   ├── S103.json
│   │   │   ├── S104.html
│   │   │   ├── S104.json
│   │   │   ├── S1048.html
│   │   │   ├── S1048.json
│   │   │   ├── S105.html
│   │   │   ├── S105.json
│   │   │   ├── S106.html
│   │   │   ├── S106.json
│   │   │   ├── S1066.html
│   │   │   ├── S1066.json
│   │   │   ├── S1067.html
│   │   │   ├── S1067.json
│   │   │   ├── S107.html
│   │   │   ├── S107.json
│   │   │   ├── S1075.html
│   │   │   ├── S1075.json
│   │   │   ├── S108.html
│   │   │   ├── S108.json
│   │   │   ├── S109.html
│   │   │   ├── S109.json
│   │   │   ├── S110.html
│   │   │   ├── S110.json
│   │   │   ├── S1104.html
│   │   │   ├── S1104.json
│   │   │   ├── S1109.html
│   │   │   ├── S1109.json
│   │   │   ├── S1110.html
│   │   │   ├── S1110.json
│   │   │   ├── S1116.html
│   │   │   ├── S1116.json
│   │   │   ├── S1117.html
│   │   │   ├── S1117.json
│   │   │   ├── S1118.html
│   │   │   ├── S1118.json
│   │   │   ├── S112.html
│   │   │   ├── S112.json
│   │   │   ├── S1121.html
│   │   │   ├── S1121.json
│   │   │   ├── S1123.html
│   │   │   ├── S1123.json
│   │   │   ├── S1125.html
│   │   │   ├── S1125.json
│   │   │   ├── S1128.html
│   │   │   ├── S1128.json
│   │   │   ├── S113.html
│   │   │   ├── S113.json
│   │   │   ├── S1133.html
│   │   │   ├── S1133.json
│   │   │   ├── S1134.html
│   │   │   ├── S1134.json
│   │   │   ├── S1135.html
│   │   │   ├── S1135.json
│   │   │   ├── S1144.html
│   │   │   ├── S1144.json
│   │   │   ├── S1147.html
│   │   │   ├── S1147.json
│   │   │   ├── S1151.html
│   │   │   ├── S1151.json
│   │   │   ├── S1155.html
│   │   │   ├── S1155.json
│   │   │   ├── S1163.html
│   │   │   ├── S1163.json
│   │   │   ├── S1168.html
│   │   │   ├── S1168.json
│   │   │   ├── S1172.html
│   │   │   ├── S1172.json
│   │   │   ├── S1185.html
│   │   │   ├── S1185.json
│   │   │   ├── S1186.html
│   │   │   ├── S1186.json
│   │   │   ├── S1192.html
│   │   │   ├── S1192.json
│   │   │   ├── S1199.html
│   │   │   ├── S1199.json
│   │   │   ├── S1200.html
│   │   │   ├── S1200.json
│   │   │   ├── S1206.html
│   │   │   ├── S1206.json
│   │   │   ├── S121.html
│   │   │   ├── S121.json
│   │   │   ├── S1210.html
│   │   │   ├── S1210.json
│   │   │   ├── S1215.html
│   │   │   ├── S1215.json
│   │   │   ├── S122.html
│   │   │   ├── S122.json
│   │   │   ├── S1226.html
│   │   │   ├── S1226.json
│   │   │   ├── S1227.html
│   │   │   ├── S1227.json
│   │   │   ├── S1244.html
│   │   │   ├── S1244.json
│   │   │   ├── S125.html
│   │   │   ├── S125.json
│   │   │   ├── S126.html
│   │   │   ├── S126.json
│   │   │   ├── S1264.html
│   │   │   ├── S1264.json
│   │   │   ├── S127.html
│   │   │   ├── S127.json
│   │   │   ├── S1301.html
│   │   │   ├── S1301.json
│   │   │   ├── S1309.html
│   │   │   ├── S1309.json
│   │   │   ├── S131.html
│   │   │   ├── S131.json
│   │   │   ├── S1312.html
│   │   │   ├── S1312.json
│   │   │   ├── S1313.html
│   │   │   ├── S1313.json
│   │   │   ├── S134.html
│   │   │   ├── S134.json
│   │   │   ├── S138.html
│   │   │   ├── S138.json
│   │   │   ├── S1449.html
│   │   │   ├── S1449.json
│   │   │   ├── S1450.html
│   │   │   ├── S1450.json
│   │   │   ├── S1451.html
│   │   │   ├── S1451.json
│   │   │   ├── S1479.html
│   │   │   ├── S1479.json
│   │   │   ├── S1481.html
│   │   │   ├── S1481.json
│   │   │   ├── S1541.html
│   │   │   ├── S1541.json
│   │   │   ├── S1607.html
│   │   │   ├── S1607.json
│   │   │   ├── S1643.html
│   │   │   ├── S1643.json
│   │   │   ├── S1656.html
│   │   │   ├── S1656.json
│   │   │   ├── S1659.html
│   │   │   ├── S1659.json
│   │   │   ├── S1694.html
│   │   │   ├── S1694.json
│   │   │   ├── S1696.html
│   │   │   ├── S1696.json
│   │   │   ├── S1698.html
│   │   │   ├── S1698.json
│   │   │   ├── S1699.html
│   │   │   ├── S1699.json
│   │   │   ├── S1751.html
│   │   │   ├── S1751.json
│   │   │   ├── S1764.html
│   │   │   ├── S1764.json
│   │   │   ├── S1821.html
│   │   │   ├── S1821.json
│   │   │   ├── S1848.html
│   │   │   ├── S1848.json
│   │   │   ├── S1854.html
│   │   │   ├── S1854.json
│   │   │   ├── S1858.html
│   │   │   ├── S1858.json
│   │   │   ├── S1862.html
│   │   │   ├── S1862.json
│   │   │   ├── S1871.html
│   │   │   ├── S1871.json
│   │   │   ├── S1905.html
│   │   │   ├── S1905.json
│   │   │   ├── S1939.html
│   │   │   ├── S1939.json
│   │   │   ├── S1940.html
│   │   │   ├── S1940.json
│   │   │   ├── S1944.html
│   │   │   ├── S1944.json
│   │   │   ├── S1994.html
│   │   │   ├── S1994.json
│   │   │   ├── S2053.html
│   │   │   ├── S2053.json
│   │   │   ├── S2068.html
│   │   │   ├── S2068.json
│   │   │   ├── S2077.html
│   │   │   ├── S2077.json
│   │   │   ├── S2092.html
│   │   │   ├── S2092.json
│   │   │   ├── S2094.html
│   │   │   ├── S2094.json
│   │   │   ├── S2114.html
│   │   │   ├── S2114.json
│   │   │   ├── S2115.html
│   │   │   ├── S2115.json
│   │   │   ├── S2123.html
│   │   │   ├── S2123.json
│   │   │   ├── S2139.html
│   │   │   ├── S2139.json
│   │   │   ├── S2148.html
│   │   │   ├── S2148.json
│   │   │   ├── S2156.html
│   │   │   ├── S2156.json
│   │   │   ├── S2166.html
│   │   │   ├── S2166.json
│   │   │   ├── S2178.html
│   │   │   ├── S2178.json
│   │   │   ├── S2183.html
│   │   │   ├── S2183.json
│   │   │   ├── S2184.html
│   │   │   ├── S2184.json
│   │   │   ├── S2187.html
│   │   │   ├── S2187.json
│   │   │   ├── S2190.html
│   │   │   ├── S2190.json
│   │   │   ├── S2197.html
│   │   │   ├── S2197.json
│   │   │   ├── S2198.html
│   │   │   ├── S2198.json
│   │   │   ├── S2201.html
│   │   │   ├── S2201.json
│   │   │   ├── S2219.html
│   │   │   ├── S2219.json
│   │   │   ├── S2221.html
│   │   │   ├── S2221.json
│   │   │   ├── S2222.html
│   │   │   ├── S2222.json
│   │   │   ├── S2223.html
│   │   │   ├── S2223.json
│   │   │   ├── S2225.html
│   │   │   ├── S2225.json
│   │   │   ├── S2234.html
│   │   │   ├── S2234.json
│   │   │   ├── S2245.html
│   │   │   ├── S2245.json
│   │   │   ├── S2251.html
│   │   │   ├── S2251.json
│   │   │   ├── S2252.html
│   │   │   ├── S2252.json
│   │   │   ├── S2257.html
│   │   │   ├── S2257.json
│   │   │   ├── S2259.html
│   │   │   ├── S2259.json
│   │   │   ├── S2275.html
│   │   │   ├── S2275.json
│   │   │   ├── S2290.html
│   │   │   ├── S2290.json
│   │   │   ├── S2291.html
│   │   │   ├── S2291.json
│   │   │   ├── S2292.html
│   │   │   ├── S2292.json
│   │   │   ├── S2302.html
│   │   │   ├── S2302.json
│   │   │   ├── S2306.html
│   │   │   ├── S2306.json
│   │   │   ├── S2325.html
│   │   │   ├── S2325.json
│   │   │   ├── S2326.html
│   │   │   ├── S2326.json
│   │   │   ├── S2327.html
│   │   │   ├── S2327.json
│   │   │   ├── S2328.html
│   │   │   ├── S2328.json
│   │   │   ├── S2330.html
│   │   │   ├── S2330.json
│   │   │   ├── S2333.html
│   │   │   ├── S2333.json
│   │   │   ├── S2339.html
│   │   │   ├── S2339.json
│   │   │   ├── S2342.html
│   │   │   ├── S2342.json
│   │   │   ├── S2344.html
│   │   │   ├── S2344.json
│   │   │   ├── S2345.html
│   │   │   ├── S2345.json
│   │   │   ├── S2346.html
│   │   │   ├── S2346.json
│   │   │   ├── S2357.html
│   │   │   ├── S2357.json
│   │   │   ├── S2360.html
│   │   │   ├── S2360.json
│   │   │   ├── S2365.html
│   │   │   ├── S2365.json
│   │   │   ├── S2368.html
│   │   │   ├── S2368.json
│   │   │   ├── S2372.html
│   │   │   ├── S2372.json
│   │   │   ├── S2376.html
│   │   │   ├── S2376.json
│   │   │   ├── S2386.html
│   │   │   ├── S2386.json
│   │   │   ├── S2387.html
│   │   │   ├── S2387.json
│   │   │   ├── S2436.html
│   │   │   ├── S2436.json
│   │   │   ├── S2437.html
│   │   │   ├── S2437.json
│   │   │   ├── S2445.html
│   │   │   ├── S2445.json
│   │   │   ├── S2479.html
│   │   │   ├── S2479.json
│   │   │   ├── S2486.html
│   │   │   ├── S2486.json
│   │   │   ├── S2551.html
│   │   │   ├── S2551.json
│   │   │   ├── S2583.html
│   │   │   ├── S2583.json
│   │   │   ├── S2589.html
│   │   │   ├── S2589.json
│   │   │   ├── S2612.html
│   │   │   ├── S2612.json
│   │   │   ├── S2629.html
│   │   │   ├── S2629.json
│   │   │   ├── S2674.html
│   │   │   ├── S2674.json
│   │   │   ├── S2681.html
│   │   │   ├── S2681.json
│   │   │   ├── S2688.html
│   │   │   ├── S2688.json
│   │   │   ├── S2692.html
│   │   │   ├── S2692.json
│   │   │   ├── S2696.html
│   │   │   ├── S2696.json
│   │   │   ├── S2699.html
│   │   │   ├── S2699.json
│   │   │   ├── S2701.html
│   │   │   ├── S2701.json
│   │   │   ├── S2737.html
│   │   │   ├── S2737.json
│   │   │   ├── S2743.html
│   │   │   ├── S2743.json
│   │   │   ├── S2755.html
│   │   │   ├── S2755.json
│   │   │   ├── S2757.html
│   │   │   ├── S2757.json
│   │   │   ├── S2760.html
│   │   │   ├── S2760.json
│   │   │   ├── S2761.html
│   │   │   ├── S2761.json
│   │   │   ├── S2857.html
│   │   │   ├── S2857.json
│   │   │   ├── S2925.html
│   │   │   ├── S2925.json
│   │   │   ├── S2930.html
│   │   │   ├── S2930.json
│   │   │   ├── S2931.html
│   │   │   ├── S2931.json
│   │   │   ├── S2933.html
│   │   │   ├── S2933.json
│   │   │   ├── S2934.html
│   │   │   ├── S2934.json
│   │   │   ├── S2952.html
│   │   │   ├── S2952.json
│   │   │   ├── S2953.html
│   │   │   ├── S2953.json
│   │   │   ├── S2955.html
│   │   │   ├── S2955.json
│   │   │   ├── S2970.html
│   │   │   ├── S2970.json
│   │   │   ├── S2971.html
│   │   │   ├── S2971.json
│   │   │   ├── S2995.html
│   │   │   ├── S2995.json
│   │   │   ├── S2996.html
│   │   │   ├── S2996.json
│   │   │   ├── S2997.html
│   │   │   ├── S2997.json
│   │   │   ├── S3005.html
│   │   │   ├── S3005.json
│   │   │   ├── S3010.html
│   │   │   ├── S3010.json
│   │   │   ├── S3011.html
│   │   │   ├── S3011.json
│   │   │   ├── S3052.html
│   │   │   ├── S3052.json
│   │   │   ├── S3059.html
│   │   │   ├── S3059.json
│   │   │   ├── S3060.html
│   │   │   ├── S3060.json
│   │   │   ├── S3063.html
│   │   │   ├── S3063.json
│   │   │   ├── S3168.html
│   │   │   ├── S3168.json
│   │   │   ├── S3169.html
│   │   │   ├── S3169.json
│   │   │   ├── S3172.html
│   │   │   ├── S3172.json
│   │   │   ├── S3215.html
│   │   │   ├── S3215.json
│   │   │   ├── S3216.html
│   │   │   ├── S3216.json
│   │   │   ├── S3217.html
│   │   │   ├── S3217.json
│   │   │   ├── S3218.html
│   │   │   ├── S3218.json
│   │   │   ├── S3220.html
│   │   │   ├── S3220.json
│   │   │   ├── S3234.html
│   │   │   ├── S3234.json
│   │   │   ├── S3235.html
│   │   │   ├── S3235.json
│   │   │   ├── S3236.html
│   │   │   ├── S3236.json
│   │   │   ├── S3237.html
│   │   │   ├── S3237.json
│   │   │   ├── S3240.html
│   │   │   ├── S3240.json
│   │   │   ├── S3241.html
│   │   │   ├── S3241.json
│   │   │   ├── S3242.html
│   │   │   ├── S3242.json
│   │   │   ├── S3244.html
│   │   │   ├── S3244.json
│   │   │   ├── S3246.html
│   │   │   ├── S3246.json
│   │   │   ├── S3247.html
│   │   │   ├── S3247.json
│   │   │   ├── S3249.html
│   │   │   ├── S3249.json
│   │   │   ├── S3251.html
│   │   │   ├── S3251.json
│   │   │   ├── S3253.html
│   │   │   ├── S3253.json
│   │   │   ├── S3254.html
│   │   │   ├── S3254.json
│   │   │   ├── S3256.html
│   │   │   ├── S3256.json
│   │   │   ├── S3257.html
│   │   │   ├── S3257.json
│   │   │   ├── S3260.html
│   │   │   ├── S3260.json
│   │   │   ├── S3261.html
│   │   │   ├── S3261.json
│   │   │   ├── S3262.html
│   │   │   ├── S3262.json
│   │   │   ├── S3263.html
│   │   │   ├── S3263.json
│   │   │   ├── S3264.html
│   │   │   ├── S3264.json
│   │   │   ├── S3265.html
│   │   │   ├── S3265.json
│   │   │   ├── S3267.html
│   │   │   ├── S3267.json
│   │   │   ├── S3329.html
│   │   │   ├── S3329.json
│   │   │   ├── S3330.html
│   │   │   ├── S3330.json
│   │   │   ├── S3343.html
│   │   │   ├── S3343.json
│   │   │   ├── S3346.html
│   │   │   ├── S3346.json
│   │   │   ├── S3353.html
│   │   │   ├── S3353.json
│   │   │   ├── S3358.html
│   │   │   ├── S3358.json
│   │   │   ├── S3363.html
│   │   │   ├── S3363.json
│   │   │   ├── S3366.html
│   │   │   ├── S3366.json
│   │   │   ├── S3376.html
│   │   │   ├── S3376.json
│   │   │   ├── S3397.html
│   │   │   ├── S3397.json
│   │   │   ├── S3398.html
│   │   │   ├── S3398.json
│   │   │   ├── S3400.html
│   │   │   ├── S3400.json
│   │   │   ├── S3415.html
│   │   │   ├── S3415.json
│   │   │   ├── S3416.html
│   │   │   ├── S3416.json
│   │   │   ├── S3427.html
│   │   │   ├── S3427.json
│   │   │   ├── S3431.html
│   │   │   ├── S3431.json
│   │   │   ├── S3433.html
│   │   │   ├── S3433.json
│   │   │   ├── S3440.html
│   │   │   ├── S3440.json
│   │   │   ├── S3441.html
│   │   │   ├── S3441.json
│   │   │   ├── S3442.html
│   │   │   ├── S3442.json
│   │   │   ├── S3443.html
│   │   │   ├── S3443.json
│   │   │   ├── S3444.html
│   │   │   ├── S3444.json
│   │   │   ├── S3445.html
│   │   │   ├── S3445.json
│   │   │   ├── S3447.html
│   │   │   ├── S3447.json
│   │   │   ├── S3449.html
│   │   │   ├── S3449.json
│   │   │   ├── S3450.html
│   │   │   ├── S3450.json
│   │   │   ├── S3451.html
│   │   │   ├── S3451.json
│   │   │   ├── S3453.html
│   │   │   ├── S3453.json
│   │   │   ├── S3456.html
│   │   │   ├── S3456.json
│   │   │   ├── S3457.html
│   │   │   ├── S3457.json
│   │   │   ├── S3458.html
│   │   │   ├── S3458.json
│   │   │   ├── S3459.html
│   │   │   ├── S3459.json
│   │   │   ├── S3464.html
│   │   │   ├── S3464.json
│   │   │   ├── S3466.html
│   │   │   ├── S3466.json
│   │   │   ├── S3532.html
│   │   │   ├── S3532.json
│   │   │   ├── S3597.html
│   │   │   ├── S3597.json
│   │   │   ├── S3598.html
│   │   │   ├── S3598.json
│   │   │   ├── S3600.html
│   │   │   ├── S3600.json
│   │   │   ├── S3603.html
│   │   │   ├── S3603.json
│   │   │   ├── S3604.html
│   │   │   ├── S3604.json
│   │   │   ├── S3610.html
│   │   │   ├── S3610.json
│   │   │   ├── S3626.html
│   │   │   ├── S3626.json
│   │   │   ├── S3655.html
│   │   │   ├── S3655.json
│   │   │   ├── S3717.html
│   │   │   ├── S3717.json
│   │   │   ├── S3776.html
│   │   │   ├── S3776.json
│   │   │   ├── S3869.html
│   │   │   ├── S3869.json
│   │   │   ├── S3871.html
│   │   │   ├── S3871.json
│   │   │   ├── S3872.html
│   │   │   ├── S3872.json
│   │   │   ├── S3874.html
│   │   │   ├── S3874.json
│   │   │   ├── S3875.html
│   │   │   ├── S3875.json
│   │   │   ├── S3876.html
│   │   │   ├── S3876.json
│   │   │   ├── S3877.html
│   │   │   ├── S3877.json
│   │   │   ├── S3878.html
│   │   │   ├── S3878.json
│   │   │   ├── S3880.html
│   │   │   ├── S3880.json
│   │   │   ├── S3881.html
│   │   │   ├── S3881.json
│   │   │   ├── S3884.html
│   │   │   ├── S3884.json
│   │   │   ├── S3885.html
│   │   │   ├── S3885.json
│   │   │   ├── S3887.html
│   │   │   ├── S3887.json
│   │   │   ├── S3889.html
│   │   │   ├── S3889.json
│   │   │   ├── S3897.html
│   │   │   ├── S3897.json
│   │   │   ├── S3898.html
│   │   │   ├── S3898.json
│   │   │   ├── S3900.html
│   │   │   ├── S3900.json
│   │   │   ├── S3902.html
│   │   │   ├── S3902.json
│   │   │   ├── S3903.html
│   │   │   ├── S3903.json
│   │   │   ├── S3904.html
│   │   │   ├── S3904.json
│   │   │   ├── S3906.html
│   │   │   ├── S3906.json
│   │   │   ├── S3908.html
│   │   │   ├── S3908.json
│   │   │   ├── S3909.html
│   │   │   ├── S3909.json
│   │   │   ├── S3923.html
│   │   │   ├── S3923.json
│   │   │   ├── S3925.html
│   │   │   ├── S3925.json
│   │   │   ├── S3926.html
│   │   │   ├── S3926.json
│   │   │   ├── S3927.html
│   │   │   ├── S3927.json
│   │   │   ├── S3928.html
│   │   │   ├── S3928.json
│   │   │   ├── S3937.html
│   │   │   ├── S3937.json
│   │   │   ├── S3949.html
│   │   │   ├── S3949.json
│   │   │   ├── S3956.html
│   │   │   ├── S3956.json
│   │   │   ├── S3962.html
│   │   │   ├── S3962.json
│   │   │   ├── S3963.html
│   │   │   ├── S3963.json
│   │   │   ├── S3966.html
│   │   │   ├── S3966.json
│   │   │   ├── S3967.html
│   │   │   ├── S3967.json
│   │   │   ├── S3971.html
│   │   │   ├── S3971.json
│   │   │   ├── S3972.html
│   │   │   ├── S3972.json
│   │   │   ├── S3973.html
│   │   │   ├── S3973.json
│   │   │   ├── S3981.html
│   │   │   ├── S3981.json
│   │   │   ├── S3984.html
│   │   │   ├── S3984.json
│   │   │   ├── S3990.html
│   │   │   ├── S3990.json
│   │   │   ├── S3992.html
│   │   │   ├── S3992.json
│   │   │   ├── S3993.html
│   │   │   ├── S3993.json
│   │   │   ├── S3994.html
│   │   │   ├── S3994.json
│   │   │   ├── S3995.html
│   │   │   ├── S3995.json
│   │   │   ├── S3996.html
│   │   │   ├── S3996.json
│   │   │   ├── S3997.html
│   │   │   ├── S3997.json
│   │   │   ├── S3998.html
│   │   │   ├── S3998.json
│   │   │   ├── S4000.html
│   │   │   ├── S4000.json
│   │   │   ├── S4002.html
│   │   │   ├── S4002.json
│   │   │   ├── S4004.html
│   │   │   ├── S4004.json
│   │   │   ├── S4005.html
│   │   │   ├── S4005.json
│   │   │   ├── S4015.html
│   │   │   ├── S4015.json
│   │   │   ├── S4016.html
│   │   │   ├── S4016.json
│   │   │   ├── S4017.html
│   │   │   ├── S4017.json
│   │   │   ├── S4018.html
│   │   │   ├── S4018.json
│   │   │   ├── S4019.html
│   │   │   ├── S4019.json
│   │   │   ├── S4022.html
│   │   │   ├── S4022.json
│   │   │   ├── S4023.html
│   │   │   ├── S4023.json
│   │   │   ├── S4025.html
│   │   │   ├── S4025.json
│   │   │   ├── S4026.html
│   │   │   ├── S4026.json
│   │   │   ├── S4027.html
│   │   │   ├── S4027.json
│   │   │   ├── S4035.html
│   │   │   ├── S4035.json
│   │   │   ├── S4036.html
│   │   │   ├── S4036.json
│   │   │   ├── S4039.html
│   │   │   ├── S4039.json
│   │   │   ├── S4040.html
│   │   │   ├── S4040.json
│   │   │   ├── S4041.html
│   │   │   ├── S4041.json
│   │   │   ├── S4047.html
│   │   │   ├── S4047.json
│   │   │   ├── S4049.html
│   │   │   ├── S4049.json
│   │   │   ├── S4050.html
│   │   │   ├── S4050.json
│   │   │   ├── S4052.html
│   │   │   ├── S4052.json
│   │   │   ├── S4055.html
│   │   │   ├── S4055.json
│   │   │   ├── S4056.html
│   │   │   ├── S4056.json
│   │   │   ├── S4057.html
│   │   │   ├── S4057.json
│   │   │   ├── S4058.html
│   │   │   ├── S4058.json
│   │   │   ├── S4059.html
│   │   │   ├── S4059.json
│   │   │   ├── S4060.html
│   │   │   ├── S4060.json
│   │   │   ├── S4061.html
│   │   │   ├── S4061.json
│   │   │   ├── S4069.html
│   │   │   ├── S4069.json
│   │   │   ├── S4070.html
│   │   │   ├── S4070.json
│   │   │   ├── S4136.html
│   │   │   ├── S4136.json
│   │   │   ├── S4143.html
│   │   │   ├── S4143.json
│   │   │   ├── S4144.html
│   │   │   ├── S4144.json
│   │   │   ├── S4158.html
│   │   │   ├── S4158.json
│   │   │   ├── S4159.html
│   │   │   ├── S4159.json
│   │   │   ├── S4200.html
│   │   │   ├── S4200.json
│   │   │   ├── S4201.html
│   │   │   ├── S4201.json
│   │   │   ├── S4210.html
│   │   │   ├── S4210.json
│   │   │   ├── S4211.html
│   │   │   ├── S4211.json
│   │   │   ├── S4212.html
│   │   │   ├── S4212.json
│   │   │   ├── S4214.html
│   │   │   ├── S4214.json
│   │   │   ├── S4220.html
│   │   │   ├── S4220.json
│   │   │   ├── S4225.html
│   │   │   ├── S4225.json
│   │   │   ├── S4226.html
│   │   │   ├── S4226.json
│   │   │   ├── S4260.html
│   │   │   ├── S4260.json
│   │   │   ├── S4261.html
│   │   │   ├── S4261.json
│   │   │   ├── S4275.html
│   │   │   ├── S4275.json
│   │   │   ├── S4277.html
│   │   │   ├── S4277.json
│   │   │   ├── S4347.html
│   │   │   ├── S4347.json
│   │   │   ├── S4423.html
│   │   │   ├── S4423.json
│   │   │   ├── S4426.html
│   │   │   ├── S4426.json
│   │   │   ├── S4428.html
│   │   │   ├── S4428.json
│   │   │   ├── S4433.html
│   │   │   ├── S4433.json
│   │   │   ├── S4456.html
│   │   │   ├── S4456.json
│   │   │   ├── S4457.html
│   │   │   ├── S4457.json
│   │   │   ├── S4462.html
│   │   │   ├── S4462.json
│   │   │   ├── S4487.html
│   │   │   ├── S4487.json
│   │   │   ├── S4502.html
│   │   │   ├── S4502.json
│   │   │   ├── S4507.html
│   │   │   ├── S4507.json
│   │   │   ├── S4524.html
│   │   │   ├── S4524.json
│   │   │   ├── S4545.html
│   │   │   ├── S4545.json
│   │   │   ├── S4581.html
│   │   │   ├── S4581.json
│   │   │   ├── S4583.html
│   │   │   ├── S4583.json
│   │   │   ├── S4586.html
│   │   │   ├── S4586.json
│   │   │   ├── S4635.html
│   │   │   ├── S4635.json
│   │   │   ├── S4663.html
│   │   │   ├── S4663.json
│   │   │   ├── S4790.html
│   │   │   ├── S4790.json
│   │   │   ├── S4792.html
│   │   │   ├── S4792.json
│   │   │   ├── S4830.html
│   │   │   ├── S4830.json
│   │   │   ├── S5034.html
│   │   │   ├── S5034.json
│   │   │   ├── S5042.html
│   │   │   ├── S5042.json
│   │   │   ├── S5122.html
│   │   │   ├── S5122.json
│   │   │   ├── S5332.html
│   │   │   ├── S5332.json
│   │   │   ├── S5344.html
│   │   │   ├── S5344.json
│   │   │   ├── S5443.html
│   │   │   ├── S5443.json
│   │   │   ├── S5445.html
│   │   │   ├── S5445.json
│   │   │   ├── S5542.html
│   │   │   ├── S5542.json
│   │   │   ├── S5547.html
│   │   │   ├── S5547.json
│   │   │   ├── S5659.html
│   │   │   ├── S5659.json
│   │   │   ├── S5693.html
│   │   │   ├── S5693.json
│   │   │   ├── S5753.html
│   │   │   ├── S5753.json
│   │   │   ├── S5766.html
│   │   │   ├── S5766.json
│   │   │   ├── S5773.html
│   │   │   ├── S5773.json
│   │   │   ├── S5856.html
│   │   │   ├── S5856.json
│   │   │   ├── S6354.html
│   │   │   ├── S6354.json
│   │   │   ├── S6377.html
│   │   │   ├── S6377.json
│   │   │   ├── S6418.html
│   │   │   ├── S6418.json
│   │   │   ├── S6419.html
│   │   │   ├── S6419.json
│   │   │   ├── S6420.html
│   │   │   ├── S6420.json
│   │   │   ├── S6421.html
│   │   │   ├── S6421.json
│   │   │   ├── S6422.html
│   │   │   ├── S6422.json
│   │   │   ├── S6423.html
│   │   │   ├── S6423.json
│   │   │   ├── S6424.html
│   │   │   ├── S6424.json
│   │   │   ├── S6444.html
│   │   │   ├── S6444.json
│   │   │   ├── S6507.html
│   │   │   ├── S6507.json
│   │   │   ├── S6513.html
│   │   │   ├── S6513.json
│   │   │   ├── S6561.html
│   │   │   ├── S6561.json
│   │   │   ├── S6562.html
│   │   │   ├── S6562.json
│   │   │   ├── S6563.html
│   │   │   ├── S6563.json
│   │   │   ├── S6566.html
│   │   │   ├── S6566.json
│   │   │   ├── S6575.html
│   │   │   ├── S6575.json
│   │   │   ├── S6580.html
│   │   │   ├── S6580.json
│   │   │   ├── S6585.html
│   │   │   ├── S6585.json
│   │   │   ├── S6588.html
│   │   │   ├── S6588.json
│   │   │   ├── S6602.html
│   │   │   ├── S6602.json
│   │   │   ├── S6603.html
│   │   │   ├── S6603.json
│   │   │   ├── S6605.html
│   │   │   ├── S6605.json
│   │   │   ├── S6607.html
│   │   │   ├── S6607.json
│   │   │   ├── S6608.html
│   │   │   ├── S6608.json
│   │   │   ├── S6609.html
│   │   │   ├── S6609.json
│   │   │   ├── S6610.html
│   │   │   ├── S6610.json
│   │   │   ├── S6612.html
│   │   │   ├── S6612.json
│   │   │   ├── S6613.html
│   │   │   ├── S6613.json
│   │   │   ├── S6617.html
│   │   │   ├── S6617.json
│   │   │   ├── S6618.html
│   │   │   ├── S6618.json
│   │   │   ├── S6640.html
│   │   │   ├── S6640.json
│   │   │   ├── S6664.html
│   │   │   ├── S6664.json
│   │   │   ├── S6667.html
│   │   │   ├── S6667.json
│   │   │   ├── S6668.html
│   │   │   ├── S6668.json
│   │   │   ├── S6669.html
│   │   │   ├── S6669.json
│   │   │   ├── S6670.html
│   │   │   ├── S6670.json
│   │   │   ├── S6672.html
│   │   │   ├── S6672.json
│   │   │   ├── S6673.html
│   │   │   ├── S6673.json
│   │   │   ├── S6674.html
│   │   │   ├── S6674.json
│   │   │   ├── S6675.html
│   │   │   ├── S6675.json
│   │   │   ├── S6677.html
│   │   │   ├── S6677.json
│   │   │   ├── S6678.html
│   │   │   ├── S6678.json
│   │   │   ├── S6781.html
│   │   │   ├── S6781.json
│   │   │   ├── S6797.html
│   │   │   ├── S6797.json
│   │   │   ├── S6798.html
│   │   │   ├── S6798.json
│   │   │   ├── S6800.html
│   │   │   ├── S6800.json
│   │   │   ├── S6802.html
│   │   │   ├── S6802.json
│   │   │   ├── S6803.html
│   │   │   ├── S6803.json
│   │   │   ├── S6930.html
│   │   │   ├── S6930.json
│   │   │   ├── S6931.html
│   │   │   ├── S6931.json
│   │   │   ├── S6932.html
│   │   │   ├── S6932.json
│   │   │   ├── S6934.html
│   │   │   ├── S6934.json
│   │   │   ├── S6960.html
│   │   │   ├── S6960.json
│   │   │   ├── S6961.html
│   │   │   ├── S6961.json
│   │   │   ├── S6962.html
│   │   │   ├── S6962.json
│   │   │   ├── S6964.html
│   │   │   ├── S6964.json
│   │   │   ├── S6965.html
│   │   │   ├── S6965.json
│   │   │   ├── S6966.html
│   │   │   ├── S6966.json
│   │   │   ├── S6967.html
│   │   │   ├── S6967.json
│   │   │   ├── S6968.html
│   │   │   ├── S6968.json
│   │   │   ├── S7039.html
│   │   │   ├── S7039.json
│   │   │   ├── S7130.html
│   │   │   ├── S7130.json
│   │   │   ├── S7131.html
│   │   │   ├── S7131.json
│   │   │   ├── S7133.html
│   │   │   ├── S7133.json
│   │   │   ├── S818.html
│   │   │   ├── S818.json
│   │   │   ├── S8367.html
│   │   │   ├── S8367.json
│   │   │   ├── S8368.html
│   │   │   ├── S8368.json
│   │   │   ├── S8380.html
│   │   │   ├── S8380.json
│   │   │   ├── S8381.html
│   │   │   ├── S8381.json
│   │   │   ├── S881.html
│   │   │   ├── S881.json
│   │   │   ├── S907.html
│   │   │   ├── S907.json
│   │   │   ├── S927.html
│   │   │   ├── S927.json
│   │   │   └── Sonar_way_profile.json
│   │   └── vbnet/
│   │       ├── S101.html
│   │       ├── S101.json
│   │       ├── S103.html
│   │       ├── S103.json
│   │       ├── S104.html
│   │       ├── S104.json
│   │       ├── S1048.html
│   │       ├── S1048.json
│   │       ├── S105.html
│   │       ├── S105.json
│   │       ├── S1066.html
│   │       ├── S1066.json
│   │       ├── S1067.html
│   │       ├── S1067.json
│   │       ├── S107.html
│   │       ├── S107.json
│   │       ├── S1075.html
│   │       ├── S1075.json
│   │       ├── S108.html
│   │       ├── S108.json
│   │       ├── S1110.html
│   │       ├── S1110.json
│   │       ├── S112.html
│   │       ├── S112.json
│   │       ├── S1123.html
│   │       ├── S1123.json
│   │       ├── S1125.html
│   │       ├── S1125.json
│   │       ├── S1133.html
│   │       ├── S1133.json
│   │       ├── S1134.html
│   │       ├── S1134.json
│   │       ├── S1135.html
│   │       ├── S1135.json
│   │       ├── S114.html
│   │       ├── S114.json
│   │       ├── S1147.html
│   │       ├── S1147.json
│   │       ├── S1151.html
│   │       ├── S1151.json
│   │       ├── S1155.html
│   │       ├── S1155.json
│   │       ├── S1163.html
│   │       ├── S1163.json
│   │       ├── S117.html
│   │       ├── S117.json
│   │       ├── S1172.html
│   │       ├── S1172.json
│   │       ├── S1186.html
│   │       ├── S1186.json
│   │       ├── S119.html
│   │       ├── S119.json
│   │       ├── S1192.html
│   │       ├── S1192.json
│   │       ├── S1197.html
│   │       ├── S1197.json
│   │       ├── S122.html
│   │       ├── S122.json
│   │       ├── S1226.html
│   │       ├── S1226.json
│   │       ├── S126.html
│   │       ├── S126.json
│   │       ├── S1301.html
│   │       ├── S1301.json
│   │       ├── S131.html
│   │       ├── S131.json
│   │       ├── S1313.html
│   │       ├── S1313.json
│   │       ├── S134.html
│   │       ├── S134.json
│   │       ├── S138.html
│   │       ├── S138.json
│   │       ├── S139.html
│   │       ├── S139.json
│   │       ├── S1451.html
│   │       ├── S1451.json
│   │       ├── S1479.html
│   │       ├── S1479.json
│   │       ├── S1481.html
│   │       ├── S1481.json
│   │       ├── S1541.html
│   │       ├── S1541.json
│   │       ├── S1542.html
│   │       ├── S1542.json
│   │       ├── S1643.html
│   │       ├── S1643.json
│   │       ├── S1645.html
│   │       ├── S1645.json
│   │       ├── S1654.html
│   │       ├── S1654.json
│   │       ├── S1656.html
│   │       ├── S1656.json
│   │       ├── S1659.html
│   │       ├── S1659.json
│   │       ├── S1751.html
│   │       ├── S1751.json
│   │       ├── S1764.html
│   │       ├── S1764.json
│   │       ├── S1821.html
│   │       ├── S1821.json
│   │       ├── S1862.html
│   │       ├── S1862.json
│   │       ├── S1871.html
│   │       ├── S1871.json
│   │       ├── S1940.html
│   │       ├── S1940.json
│   │       ├── S1944.html
│   │       ├── S1944.json
│   │       ├── S2053.html
│   │       ├── S2053.json
│   │       ├── S2068.html
│   │       ├── S2068.json
│   │       ├── S2077.html
│   │       ├── S2077.json
│   │       ├── S2094.html
│   │       ├── S2094.json
│   │       ├── S2166.html
│   │       ├── S2166.json
│   │       ├── S2178.html
│   │       ├── S2178.json
│   │       ├── S2222.html
│   │       ├── S2222.json
│   │       ├── S2225.html
│   │       ├── S2225.json
│   │       ├── S2234.html
│   │       ├── S2234.json
│   │       ├── S2257.html
│   │       ├── S2257.json
│   │       ├── S2259.html
│   │       ├── S2259.json
│   │       ├── S2302.html
│   │       ├── S2302.json
│   │       ├── S2304.html
│   │       ├── S2304.json
│   │       ├── S2339.html
│   │       ├── S2339.json
│   │       ├── S2340.html
│   │       ├── S2340.json
│   │       ├── S2342.html
│   │       ├── S2342.json
│   │       ├── S2343.html
│   │       ├── S2343.json
│   │       ├── S2344.html
│   │       ├── S2344.json
│   │       ├── S2345.html
│   │       ├── S2345.json
│   │       ├── S2346.html
│   │       ├── S2346.json
│   │       ├── S2347.html
│   │       ├── S2347.json
│   │       ├── S2348.html
│   │       ├── S2348.json
│   │       ├── S2349.html
│   │       ├── S2349.json
│   │       ├── S2352.html
│   │       ├── S2352.json
│   │       ├── S2354.html
│   │       ├── S2354.json
│   │       ├── S2355.html
│   │       ├── S2355.json
│   │       ├── S2357.html
│   │       ├── S2357.json
│   │       ├── S2358.html
│   │       ├── S2358.json
│   │       ├── S2359.html
│   │       ├── S2359.json
│   │       ├── S2360.html
│   │       ├── S2360.json
│   │       ├── S2362.html
│   │       ├── S2362.json
│   │       ├── S2363.html
│   │       ├── S2363.json
│   │       ├── S2364.html
│   │       ├── S2364.json
│   │       ├── S2365.html
│   │       ├── S2365.json
│   │       ├── S2366.html
│   │       ├── S2366.json
│   │       ├── S2367.html
│   │       ├── S2367.json
│   │       ├── S2368.html
│   │       ├── S2368.json
│   │       ├── S2369.html
│   │       ├── S2369.json
│   │       ├── S2370.html
│   │       ├── S2370.json
│   │       ├── S2372.html
│   │       ├── S2372.json
│   │       ├── S2373.html
│   │       ├── S2373.json
│   │       ├── S2374.html
│   │       ├── S2374.json
│   │       ├── S2375.html
│   │       ├── S2375.json
│   │       ├── S2376.html
│   │       ├── S2376.json
│   │       ├── S2387.html
│   │       ├── S2387.json
│   │       ├── S2429.html
│   │       ├── S2429.json
│   │       ├── S2437.html
│   │       ├── S2437.json
│   │       ├── S2551.html
│   │       ├── S2551.json
│   │       ├── S2583.html
│   │       ├── S2583.json
│   │       ├── S2589.html
│   │       ├── S2589.json
│   │       ├── S2612.html
│   │       ├── S2612.json
│   │       ├── S2692.html
│   │       ├── S2692.json
│   │       ├── S2737.html
│   │       ├── S2737.json
│   │       ├── S2757.html
│   │       ├── S2757.json
│   │       ├── S2761.html
│   │       ├── S2761.json
│   │       ├── S2925.html
│   │       ├── S2925.json
│   │       ├── S2951.html
│   │       ├── S2951.json
│   │       ├── S3011.html
│   │       ├── S3011.json
│   │       ├── S3063.html
│   │       ├── S3063.json
│   │       ├── S3329.html
│   │       ├── S3329.json
│   │       ├── S3358.html
│   │       ├── S3358.json
│   │       ├── S3363.html
│   │       ├── S3363.json
│   │       ├── S3385.html
│   │       ├── S3385.json
│   │       ├── S3431.html
│   │       ├── S3431.json
│   │       ├── S3449.html
│   │       ├── S3449.json
│   │       ├── S3453.html
│   │       ├── S3453.json
│   │       ├── S3464.html
│   │       ├── S3464.json
│   │       ├── S3466.html
│   │       ├── S3466.json
│   │       ├── S3598.html
│   │       ├── S3598.json
│   │       ├── S3603.html
│   │       ├── S3603.json
│   │       ├── S3655.html
│   │       ├── S3655.json
│   │       ├── S3776.html
│   │       ├── S3776.json
│   │       ├── S3860.html
│   │       ├── S3860.json
│   │       ├── S3866.html
│   │       ├── S3866.json
│   │       ├── S3869.html
│   │       ├── S3869.json
│   │       ├── S3871.html
│   │       ├── S3871.json
│   │       ├── S3878.html
│   │       ├── S3878.json
│   │       ├── S3884.html
│   │       ├── S3884.json
│   │       ├── S3889.html
│   │       ├── S3889.json
│   │       ├── S3898.html
│   │       ├── S3898.json
│   │       ├── S3900.html
│   │       ├── S3900.json
│   │       ├── S3903.html
│   │       ├── S3903.json
│   │       ├── S3904.html
│   │       ├── S3904.json
│   │       ├── S3923.html
│   │       ├── S3923.json
│   │       ├── S3926.html
│   │       ├── S3926.json
│   │       ├── S3927.html
│   │       ├── S3927.json
│   │       ├── S3949.html
│   │       ├── S3949.json
│   │       ├── S3966.html
│   │       ├── S3966.json
│   │       ├── S3981.html
│   │       ├── S3981.json
│   │       ├── S3990.html
│   │       ├── S3990.json
│   │       ├── S3992.html
│   │       ├── S3992.json
│   │       ├── S3998.html
│   │       ├── S3998.json
│   │       ├── S4025.html
│   │       ├── S4025.json
│   │       ├── S4036.html
│   │       ├── S4036.json
│   │       ├── S4060.html
│   │       ├── S4060.json
│   │       ├── S4136.html
│   │       ├── S4136.json
│   │       ├── S4143.html
│   │       ├── S4143.json
│   │       ├── S4144.html
│   │       ├── S4144.json
│   │       ├── S4158.html
│   │       ├── S4158.json
│   │       ├── S4159.html
│   │       ├── S4159.json
│   │       ├── S4201.html
│   │       ├── S4201.json
│   │       ├── S4210.html
│   │       ├── S4210.json
│   │       ├── S4225.html
│   │       ├── S4225.json
│   │       ├── S4260.html
│   │       ├── S4260.json
│   │       ├── S4275.html
│   │       ├── S4275.json
│   │       ├── S4277.html
│   │       ├── S4277.json
│   │       ├── S4423.html
│   │       ├── S4423.json
│   │       ├── S4428.html
│   │       ├── S4428.json
│   │       ├── S4507.html
│   │       ├── S4507.json
│   │       ├── S4545.html
│   │       ├── S4545.json
│   │       ├── S4581.html
│   │       ├── S4581.json
│   │       ├── S4583.html
│   │       ├── S4583.json
│   │       ├── S4586.html
│   │       ├── S4586.json
│   │       ├── S4663.html
│   │       ├── S4663.json
│   │       ├── S4790.html
│   │       ├── S4790.json
│   │       ├── S4792.html
│   │       ├── S4792.json
│   │       ├── S4830.html
│   │       ├── S4830.json
│   │       ├── S5042.html
│   │       ├── S5042.json
│   │       ├── S5443.html
│   │       ├── S5443.json
│   │       ├── S5445.html
│   │       ├── S5445.json
│   │       ├── S5542.html
│   │       ├── S5542.json
│   │       ├── S5547.html
│   │       ├── S5547.json
│   │       ├── S5659.html
│   │       ├── S5659.json
│   │       ├── S5693.html
│   │       ├── S5693.json
│   │       ├── S5753.html
│   │       ├── S5753.json
│   │       ├── S5773.html
│   │       ├── S5773.json
│   │       ├── S5856.html
│   │       ├── S5856.json
│   │       ├── S5944.html
│   │       ├── S5944.json
│   │       ├── S6145.html
│   │       ├── S6145.json
│   │       ├── S6146.html
│   │       ├── S6146.json
│   │       ├── S6354.html
│   │       ├── S6354.json
│   │       ├── S6418.html
│   │       ├── S6418.json
│   │       ├── S6444.html
│   │       ├── S6444.json
│   │       ├── S6513.html
│   │       ├── S6513.json
│   │       ├── S6561.html
│   │       ├── S6561.json
│   │       ├── S6562.html
│   │       ├── S6562.json
│   │       ├── S6563.html
│   │       ├── S6563.json
│   │       ├── S6566.html
│   │       ├── S6566.json
│   │       ├── S6575.html
│   │       ├── S6575.json
│   │       ├── S6580.html
│   │       ├── S6580.json
│   │       ├── S6585.html
│   │       ├── S6585.json
│   │       ├── S6588.html
│   │       ├── S6588.json
│   │       ├── S6602.html
│   │       ├── S6602.json
│   │       ├── S6603.html
│   │       ├── S6603.json
│   │       ├── S6605.html
│   │       ├── S6605.json
│   │       ├── S6607.html
│   │       ├── S6607.json
│   │       ├── S6608.html
│   │       ├── S6608.json
│   │       ├── S6609.html
│   │       ├── S6609.json
│   │       ├── S6610.html
│   │       ├── S6610.json
│   │       ├── S6612.html
│   │       ├── S6612.json
│   │       ├── S6613.html
│   │       ├── S6613.json
│   │       ├── S6617.html
│   │       ├── S6617.json
│   │       ├── S6930.html
│   │       ├── S6930.json
│   │       ├── S6931.html
│   │       ├── S6931.json
│   │       ├── S7130.html
│   │       ├── S7130.json
│   │       ├── S7131.html
│   │       ├── S7131.json
│   │       ├── S7133.html
│   │       ├── S7133.json
│   │       ├── S907.html
│   │       ├── S907.json
│   │       ├── S927.html
│   │       ├── S927.json
│   │       └── Sonar_way_profile.json
│   ├── src/
│   │   ├── AssemblyInfo.Shared.cs
│   │   ├── Directory.Build.targets
│   │   ├── RuleCatalog.targets
│   │   ├── RuleDescriptorGenerator/
│   │   │   ├── Descriptors/
│   │   │   │   ├── Rule.cs
│   │   │   │   └── RuleParameter.cs
│   │   │   ├── Program.cs
│   │   │   ├── RuleDescriptorGenerator.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CFG/
│   │   │   ├── CfgSerializer/
│   │   │   │   ├── CfgSerializer.RoslynCfgWalker.cs
│   │   │   │   ├── CfgSerializer.RoslynLvaWalker.cs
│   │   │   │   ├── CfgSerializer.SonarCfgWalker.cs
│   │   │   │   ├── CfgSerializer.cs
│   │   │   │   └── DotWriter.cs
│   │   │   ├── Common/
│   │   │   │   ├── RoslynVersion.cs
│   │   │   │   └── UniqueQueue.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── BasicBlockExtensions.cs
│   │   │   │   ├── ControlFlowGraphExtensions.cs
│   │   │   │   ├── ControlFlowRegionExtensions.cs
│   │   │   │   ├── DictionaryExtensions.cs
│   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   ├── IEnumerableExtensions.cs
│   │   │   │   ├── IOperationExtensions.cs
│   │   │   │   ├── IsPatternExpressionSyntaxWrapperExtensions.cs
│   │   │   │   ├── PatternSyntaxWrapperExtensions.cs
│   │   │   │   ├── PropertyInfoExtensions.cs
│   │   │   │   ├── SemanticModelExtensions.cs
│   │   │   │   ├── StringExtensions.cs
│   │   │   │   ├── SyntaxNodeExtensions.cs
│   │   │   │   └── UnaryPatternSyntaxWrapperExtensions.cs
│   │   │   ├── LiveVariableAnalysis/
│   │   │   │   ├── LiveVariableAnalysisBase.cs
│   │   │   │   └── RoslynLiveVariableAnalysis.cs
│   │   │   ├── Operations/
│   │   │   │   └── Utilities/
│   │   │   │       ├── OperationExecutionOrder.cs
│   │   │   │       └── OperationFinder.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Roslyn/
│   │   │   │   ├── BasicBlock.cs
│   │   │   │   ├── CfgAllPathValidator.cs
│   │   │   │   ├── ControlFlowBranch.cs
│   │   │   │   ├── ControlFlowGraph.cs
│   │   │   │   ├── ControlFlowGraphCache.cs
│   │   │   │   ├── ControlFlowRegion.cs
│   │   │   │   └── TypeLoader.cs
│   │   │   ├── Sonar/
│   │   │   │   ├── AbstractControlFlowGraphBuilder.cs
│   │   │   │   ├── BlockIdProvider.cs
│   │   │   │   ├── Blocks/
│   │   │   │   │   ├── BinaryBranchBlock.cs
│   │   │   │   │   ├── BinaryBranchingSimpleBlock.cs
│   │   │   │   │   ├── Block.cs
│   │   │   │   │   ├── BranchBlock.cs
│   │   │   │   │   ├── ExitBlock.cs
│   │   │   │   │   ├── ForInitializerBlock.cs
│   │   │   │   │   ├── ForeachCollectionProducerBlock.cs
│   │   │   │   │   ├── JumpBlock.cs
│   │   │   │   │   ├── LockBlock.cs
│   │   │   │   │   ├── SimpleBlock.cs
│   │   │   │   │   ├── TemporaryBlock.cs
│   │   │   │   │   └── UsingEndBlock.cs
│   │   │   │   ├── CSharpControlFlowGraph.cs
│   │   │   │   ├── CSharpControlFlowGraphBuilder.cs
│   │   │   │   ├── CfgAllPathValidator.cs
│   │   │   │   └── IControlFlowGraph.cs
│   │   │   ├── SonarAnalyzer.CFG.csproj
│   │   │   ├── Syntax/
│   │   │   │   └── Utilities/
│   │   │   │       └── SyntaxClassifierBase.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CSharp/
│   │   │   ├── Metrics/
│   │   │   │   ├── CSharpCognitiveComplexityMetric.cs
│   │   │   │   ├── CSharpCyclomaticComplexityMetric.cs
│   │   │   │   ├── CSharpExecutableLinesMetric.cs
│   │   │   │   └── CSharpMetrics.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AbstractClassToInterface.cs
│   │   │   │   ├── AbstractTypesShouldNotHaveConstructors.cs
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│   │   │   │   ├── AlwaysSetDateTimeKind.cs
│   │   │   │   ├── AnonymousDelegateEventUnsubscribe.cs
│   │   │   │   ├── ArgumentSpecifiedForCallerInfoParameter.cs
│   │   │   │   ├── ArrayCovariance.cs
│   │   │   │   ├── ArrayPassedAsParams.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── AnnotateApiActionsWithHttpVerb.cs
│   │   │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromController.cs
│   │   │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.cs
│   │   │   │   │   ├── AvoidUnderPosting.cs
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.cs
│   │   │   │   │   ├── CallModelStateIsValid.cs
│   │   │   │   │   ├── ControllersHaveMixedResponsibilities.cs
│   │   │   │   │   ├── ControllersReuseClient.cs
│   │   │   │   │   ├── RouteTemplateShouldNotStartWithSlash.cs
│   │   │   │   │   ├── SpecifyRouteAttribute.cs
│   │   │   │   │   └── UseAspNetModelBinding.cs
│   │   │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.cs
│   │   │   │   ├── AssertionsShouldBeComplete.cs
│   │   │   │   ├── AssignmentInsideSubExpression.cs
│   │   │   │   ├── AsyncAwaitIdentifier.cs
│   │   │   │   ├── AsyncVoidMethod.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│   │   │   │   ├── AvoidExcessiveClassCoupling.cs
│   │   │   │   ├── AvoidExcessiveInheritance.cs
│   │   │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.cs
│   │   │   │   ├── AvoidUnsealedAttributes.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvoke.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│   │   │   │   ├── BlazorQueryParameterRoutableComponent.cs
│   │   │   │   ├── BooleanCheckInverted.cs
│   │   │   │   ├── BooleanCheckInvertedCodeFix.cs
│   │   │   │   ├── BooleanLiteralUnnecessary.cs
│   │   │   │   ├── BooleanLiteralUnnecessaryCodeFix.cs
│   │   │   │   ├── BreakOutsideSwitch.cs
│   │   │   │   ├── BypassingAccessibility.cs
│   │   │   │   ├── CallToAsyncMethodShouldNotBeBlocking.cs
│   │   │   │   ├── CallerInformationParametersShouldBeLast.cs
│   │   │   │   ├── CastConcreteTypeToInterface.cs
│   │   │   │   ├── CastShouldNotBeDuplicated.cs
│   │   │   │   ├── CatchEmpty.cs
│   │   │   │   ├── CatchRethrow.cs
│   │   │   │   ├── CatchRethrowCodeFix.cs
│   │   │   │   ├── CertificateValidationCheck.cs
│   │   │   │   ├── CheckArgumentException.cs
│   │   │   │   ├── CheckFileLicense.cs
│   │   │   │   ├── CheckFileLicenseCodeFix.cs
│   │   │   │   ├── ClassAndMethodName.cs
│   │   │   │   ├── ClassNamedException.cs
│   │   │   │   ├── ClassNotInstantiatable.cs
│   │   │   │   ├── ClassShouldNotBeEmpty.cs
│   │   │   │   ├── ClassWithEqualityShouldImplementIEquatable.cs
│   │   │   │   ├── ClassWithOnlyStaticMember.cs
│   │   │   │   ├── CloudNative/
│   │   │   │   │   ├── AzureFunctionsCatchExceptions.cs
│   │   │   │   │   ├── AzureFunctionsLogFailures.cs
│   │   │   │   │   ├── AzureFunctionsReuseClients.cs
│   │   │   │   │   ├── AzureFunctionsStateless.cs
│   │   │   │   │   └── DurableEntityInterfaceRestrictions.cs
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── CollectionEmptinessChecking.cs
│   │   │   │   ├── CollectionEmptinessCheckingCodeFix.cs
│   │   │   │   ├── CollectionPropertiesShouldBeReadOnly.cs
│   │   │   │   ├── CollectionQuerySimplification.cs
│   │   │   │   ├── CollectionsShouldImplementGenericInterface.cs
│   │   │   │   ├── CommentKeyword.cs
│   │   │   │   ├── CommentedOutCode.cs
│   │   │   │   ├── CommentedOutCodeCodeFix.cs
│   │   │   │   ├── CommentsShouldNotBeEmpty.cs
│   │   │   │   ├── ComparableInterfaceImplementation.cs
│   │   │   │   ├── CompareNaN.cs
│   │   │   │   ├── ConditionalSimplification.cs
│   │   │   │   ├── ConditionalSimplificationCodeFix.cs
│   │   │   │   ├── ConditionalStructureSameCondition.cs
│   │   │   │   ├── ConditionalStructureSameImplementation.cs
│   │   │   │   ├── ConditionalsShouldStartOnNewLine.cs
│   │   │   │   ├── ConditionalsWithSameCondition.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExist.cs
│   │   │   │   ├── ConstructorOverridableCall.cs
│   │   │   │   ├── ConsumeValueTaskCorrectly.cs
│   │   │   │   ├── ControlCharacterInString.cs
│   │   │   │   ├── CryptographicKeyShouldNotBeTooShort.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│   │   │   │   ├── DatabasePasswordsShouldBeSecure.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcoded.cs
│   │   │   │   ├── DeadStores.RoslynCfg.cs
│   │   │   │   ├── DeadStores.SonarCfg.cs
│   │   │   │   ├── DeadStores.cs
│   │   │   │   ├── DebugAssertHasNoSideEffects.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembers.cs
│   │   │   │   ├── DeclareEventHandlersCorrectly.cs
│   │   │   │   ├── DeclareTypesInNamespaces.cs
│   │   │   │   ├── DefaultSectionShouldBeFirstOrLast.cs
│   │   │   │   ├── DelegateSubtraction.cs
│   │   │   │   ├── DisposableMemberInNonDisposableClass.cs
│   │   │   │   ├── DisposableNotDisposed.cs
│   │   │   │   ├── DisposableReturnedFromUsing.cs
│   │   │   │   ├── DisposableTypesNeedFinalizers.cs
│   │   │   │   ├── DisposeFromDispose.cs
│   │   │   │   ├── DisposeNotImplementingDispose.cs
│   │   │   │   ├── DoNotCallAssemblyGetExecutingAssemblyMethod.cs
│   │   │   │   ├── DoNotCallAssemblyLoadInvalidMethods.cs
│   │   │   │   ├── DoNotCallExitMethods.cs
│   │   │   │   ├── DoNotCallGCCollectMethod.cs
│   │   │   │   ├── DoNotCallGCSuppressFinalize.cs
│   │   │   │   ├── DoNotCallMethodsCsharpBase.cs
│   │   │   │   ├── DoNotCatchNullReferenceException.cs
│   │   │   │   ├── DoNotCatchSystemException.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollection.cs
│   │   │   │   ├── DoNotCopyArraysInProperties.cs
│   │   │   │   ├── DoNotDecreaseMemberVisibility.cs
│   │   │   │   ├── DoNotExposeListT.cs
│   │   │   │   ├── DoNotHardcodeCredentials.cs
│   │   │   │   ├── DoNotHardcodeSecrets.cs
│   │   │   │   ├── DoNotHideBaseClassMethods.cs
│   │   │   │   ├── DoNotInstantiateSharedClasses.cs
│   │   │   │   ├── DoNotLockOnSharedResource.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjects.cs
│   │   │   │   ├── DoNotMarkEnumsWithFlags.cs
│   │   │   │   ├── DoNotNestTernaryOperators.cs
│   │   │   │   ├── DoNotNestTypesInArguments.cs
│   │   │   │   ├── DoNotOverloadOperatorEqual.cs
│   │   │   │   ├── DoNotOverwriteCollectionElements.cs
│   │   │   │   ├── DoNotShiftByZeroOrIntSize.cs
│   │   │   │   ├── DoNotTestThisWithIsOperator.cs
│   │   │   │   ├── DoNotThrowFromDestructors.cs
│   │   │   │   ├── DoNotUseCollectionInItsOwnMethodCalls.cs
│   │   │   │   ├── DoNotUseDateTimeNow.cs
│   │   │   │   ├── DoNotUseLiteralBoolInAssertions.cs
│   │   │   │   ├── DoNotUseOutRefParameters.cs
│   │   │   │   ├── DoNotWriteToStandardOutput.cs
│   │   │   │   ├── DontMixIncrementOrDecrementWithOtherOperators.cs
│   │   │   │   ├── DontUseTraceSwitchLevels.cs
│   │   │   │   ├── DontUseTraceWrite.cs
│   │   │   │   ├── EmptyMethod.cs
│   │   │   │   ├── EmptyMethodCodeFix.cs
│   │   │   │   ├── EmptyNamespace.cs
│   │   │   │   ├── EmptyNamespaceCodeFix.cs
│   │   │   │   ├── EmptyNestedBlock.cs
│   │   │   │   ├── EmptyStatement.cs
│   │   │   │   ├── EmptyStatementCodeFix.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecure.cs
│   │   │   │   ├── EnumNameHasEnumSuffix.cs
│   │   │   │   ├── EnumNameShouldFollowRegex.cs
│   │   │   │   ├── EnumStorageNeedsToBeInt32.cs
│   │   │   │   ├── EnumerableSumInUnchecked.cs
│   │   │   │   ├── EnumsShouldNotBeNamedReserved.cs
│   │   │   │   ├── EqualityOnFloatingPoint.cs
│   │   │   │   ├── EqualityOnModulus.cs
│   │   │   │   ├── EquatableClassShouldBeSealed.cs
│   │   │   │   ├── EscapeLambdaParameterTypeNamedScoped.cs
│   │   │   │   ├── EventHandlerDelegateShouldHaveProperArguments.cs
│   │   │   │   ├── ExceptionRethrow.cs
│   │   │   │   ├── ExceptionRethrowCodeFix.cs
│   │   │   │   ├── ExceptionShouldNotBeThrownFromUnexpectedMethods.cs
│   │   │   │   ├── ExceptionsNeedStandardConstructors.cs
│   │   │   │   ├── ExceptionsShouldBeLogged.cs
│   │   │   │   ├── ExceptionsShouldBeLoggedOrThrown.cs
│   │   │   │   ├── ExceptionsShouldBePublic.cs
│   │   │   │   ├── ExceptionsShouldBeUsed.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustification.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsed.cs
│   │   │   │   ├── ExpressionComplexity.cs
│   │   │   │   ├── ExtensionMethodShouldBeInSeparateNamespace.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObject.cs
│   │   │   │   ├── FieldShadowsParentField.cs
│   │   │   │   ├── FieldShouldBeReadonly.cs
│   │   │   │   ├── FieldShouldBeReadonlyCodeFix.cs
│   │   │   │   ├── FieldShouldNotBePublic.cs
│   │   │   │   ├── FieldsShouldBeEncapsulatedInProperties.cs
│   │   │   │   ├── FileLines.cs
│   │   │   │   ├── FileShouldEndWithEmptyNewLine.cs
│   │   │   │   ├── FinalizerShouldNotBeEmpty.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefault.cs
│   │   │   │   ├── FlagsEnumWithoutInitializer.cs
│   │   │   │   ├── FlagsEnumZeroMember.cs
│   │   │   │   ├── ForLoopConditionAlwaysFalse.cs
│   │   │   │   ├── ForLoopCounterChanged.cs
│   │   │   │   ├── ForLoopCounterCondition.cs
│   │   │   │   ├── ForLoopIncrementSign.cs
│   │   │   │   ├── ForeachLoopExplicitConversion.cs
│   │   │   │   ├── ForeachLoopExplicitConversionCodeFix.cs
│   │   │   │   ├── FrameworkTypeNaming.cs
│   │   │   │   ├── FunctionComplexity.cs
│   │   │   │   ├── FunctionNestingDepth.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursive.cs
│   │   │   │   ├── GenericLoggerInjectionShouldMatchEnclosingType.cs
│   │   │   │   ├── GenericReadonlyFieldPropertyAssignment.cs
│   │   │   │   ├── GenericReadonlyFieldPropertyAssignmentCodeFix.cs
│   │   │   │   ├── GenericTypeParameterEmptinessChecking.cs
│   │   │   │   ├── GenericTypeParameterEmptinessCheckingCodeFix.cs
│   │   │   │   ├── GenericTypeParameterInOut.cs
│   │   │   │   ├── GenericTypeParameterUnused.cs
│   │   │   │   ├── GenericTypeParametersRequired.cs
│   │   │   │   ├── GetHashCodeEqualsOverride.cs
│   │   │   │   ├── GetHashCodeMutable.cs
│   │   │   │   ├── GetHashCodeMutableCodeFix.cs
│   │   │   │   ├── GetTypeWithIsAssignableFrom.cs
│   │   │   │   ├── GetTypeWithIsAssignableFromCodeFix.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── GuardConditionOnEqualsOverride.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── ClearTextProtocolsAreSensitive.cs
│   │   │   │   │   ├── CommandPath.cs
│   │   │   │   │   ├── ConfiguringLoggers.cs
│   │   │   │   │   ├── CookieShouldBeHttpOnly.cs
│   │   │   │   │   ├── CookieShouldBeSecure.cs
│   │   │   │   │   ├── CreatingHashAlgorithms.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProduction.cs
│   │   │   │   │   ├── DisablingCsrfProtection.cs
│   │   │   │   │   ├── DisablingRequestValidation.cs
│   │   │   │   │   ├── DoNotUseRandom.cs
│   │   │   │   │   ├── ExecutingSqlQueries.cs
│   │   │   │   │   ├── ExpandingArchives.cs
│   │   │   │   │   ├── HardcodedIpAddress.cs
│   │   │   │   │   ├── InsecureDeserialization.cs
│   │   │   │   │   ├── PermissiveCors.cs
│   │   │   │   │   ├── PubliclyWritableDirectories.cs
│   │   │   │   │   ├── RequestsWithExcessiveLength.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegex.cs
│   │   │   │   │   ├── UnsafeCodeBlocks.cs
│   │   │   │   │   └── UsingNonstandardCryptography.cs
│   │   │   │   ├── IdentifiersNamedExtensionShouldBeEscaped.cs
│   │   │   │   ├── IdentifiersNamedFieldShouldBeEscaped.cs
│   │   │   │   ├── IfChainWithoutElse.cs
│   │   │   │   ├── IfCollapsible.cs
│   │   │   │   ├── ImplementIDisposableCorrectly.cs
│   │   │   │   ├── ImplementISerializableCorrectly.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectly.cs
│   │   │   │   ├── IndentSingleLineFollowingConditional.cs
│   │   │   │   ├── IndexOfCheckAgainstZero.cs
│   │   │   │   ├── InfiniteRecursion.RoslynCfg.cs
│   │   │   │   ├── InfiniteRecursion.SonarCfg.cs
│   │   │   │   ├── InfiniteRecursion.cs
│   │   │   │   ├── InheritedCollidingInterfaceMembers.cs
│   │   │   │   ├── InitializeStaticFieldsInline.cs
│   │   │   │   ├── InsecureContentSecurityPolicy.cs
│   │   │   │   ├── InsecureEncryptionAlgorithm.cs
│   │   │   │   ├── InsecureTemporaryFilesCreation.cs
│   │   │   │   ├── InsteadOfAny.cs
│   │   │   │   ├── InterfaceMethodsShouldBeCallableByChildTypes.cs
│   │   │   │   ├── InterfacesShouldNotBeEmpty.cs
│   │   │   │   ├── InvalidCastToInterface.cs
│   │   │   │   ├── InvocationResolvesToOverrideWithParams.cs
│   │   │   │   ├── IssueSuppression.cs
│   │   │   │   ├── JSInvokableMethodsShouldBePublic.cs
│   │   │   │   ├── JwtSigned.cs
│   │   │   │   ├── LdapConnectionShouldBeSecure.cs
│   │   │   │   ├── LineLength.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethods.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethodsCodeFix.cs
│   │   │   │   ├── LiteralSuffixUpperCase.cs
│   │   │   │   ├── LiteralSuffixUpperCaseCodeFix.cs
│   │   │   │   ├── LiteralsShouldNotBePassedAsLocalizedParameters.cs
│   │   │   │   ├── LockedFieldShouldBeReadonly.cs
│   │   │   │   ├── LoggerFieldsShouldBePrivateStaticReadonly.cs
│   │   │   │   ├── LoggerMembersNamesShouldComply.cs
│   │   │   │   ├── LoggersShouldBeNamedForEnclosingType.cs
│   │   │   │   ├── LoggingArgumentsShouldBePassedCorrectly.cs
│   │   │   │   ├── LoopsAndLinq.cs
│   │   │   │   ├── LooseFilePermissions.cs
│   │   │   │   ├── LossOfFractionInDivision.cs
│   │   │   │   ├── MagicNumberShouldNotBeUsed.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttribute.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttribute.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttribute.cs
│   │   │   │   ├── MarkAssemblyWithNeutralResourcesLanguageAttribute.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThread.cs
│   │   │   │   ├── MemberInitializedToDefault.cs
│   │   │   │   ├── MemberInitializedToDefaultCodeFix.cs
│   │   │   │   ├── MemberInitializerRedundant.RoslynCfg.cs
│   │   │   │   ├── MemberInitializerRedundant.SonarCfg.cs
│   │   │   │   ├── MemberInitializerRedundant.cs
│   │   │   │   ├── MemberOverrideCallsBaseMember.cs
│   │   │   │   ├── MemberOverrideCallsBaseMemberCodeFix.cs
│   │   │   │   ├── MemberShadowsOuterStaticMember.cs
│   │   │   │   ├── MemberShouldBeStatic.cs
│   │   │   │   ├── MemberShouldNotHaveConflictingTransparencyAttributes.cs
│   │   │   │   ├── MessageTemplates/
│   │   │   │   │   ├── IMessageTemplateCheck.cs
│   │   │   │   │   ├── LoggingTemplatePlaceHoldersShouldBeInOrder.cs
│   │   │   │   │   ├── MessageTemplateAnalyzer.cs
│   │   │   │   │   ├── MessageTemplateExtractor.cs
│   │   │   │   │   ├── MessageTemplatesShouldBeCorrect.cs
│   │   │   │   │   ├── NamedPlaceholdersShouldBeUnique.cs
│   │   │   │   │   └── UsePascalCaseForNamedPlaceHolders.cs
│   │   │   │   ├── MethodOverloadOptionalParameter.cs
│   │   │   │   ├── MethodOverloadsShouldBeGrouped.cs
│   │   │   │   ├── MethodOverrideAddsParams.cs
│   │   │   │   ├── MethodOverrideAddsParamsCodeFix.cs
│   │   │   │   ├── MethodOverrideChangedDefaultValue.cs
│   │   │   │   ├── MethodOverrideChangedDefaultValueCodeFix.cs
│   │   │   │   ├── MethodOverrideNoParams.cs
│   │   │   │   ├── MethodOverrideNoParamsCodeFix.cs
│   │   │   │   ├── MethodParameterMissingOptional.cs
│   │   │   │   ├── MethodParameterMissingOptionalCodeFix.cs
│   │   │   │   ├── MethodParameterUnused.cs
│   │   │   │   ├── MethodParameterUnusedCodeFix.cs
│   │   │   │   ├── MethodShouldBeNamedAccordingToSynchronicity.cs
│   │   │   │   ├── MethodShouldNotOnlyReturnConstant.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementations.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLines.cs
│   │   │   │   ├── MethodsShouldUseBaseTypes.cs
│   │   │   │   ├── MultilineBlocksWithoutBrace.cs
│   │   │   │   ├── MultipleVariableDeclaration.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFix.cs
│   │   │   │   ├── MutableFieldsShouldNotBe.cs
│   │   │   │   ├── MutableFieldsShouldNotBePublicReadonly.cs
│   │   │   │   ├── MutableFieldsShouldNotBePublicStatic.cs
│   │   │   │   ├── NameOfShouldBeUsed.cs
│   │   │   │   ├── NativeMethodsShouldBeWrapped.cs
│   │   │   │   ├── NestedCodeBlock.cs
│   │   │   │   ├── NoExceptionsInFinally.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNull.cs
│   │   │   │   ├── NonDerivedPrivateClassesShouldBeSealed.cs
│   │   │   │   ├── NonFlagsEnumInBitwiseOperation.cs
│   │   │   │   ├── NonFlagsEnumInBitwiseOperationCodeFix.cs
│   │   │   │   ├── NormalizeStringsToUppercase.cs
│   │   │   │   ├── NotAssignedPrivateMember.cs
│   │   │   │   ├── NumberPatternShouldBeRegular.cs
│   │   │   │   ├── ObjectCreatedDropped.cs
│   │   │   │   ├── ObjectShouldBeInitializedCorrectlyBase.cs
│   │   │   │   ├── ObsoleteAttributes.cs
│   │   │   │   ├── OperatorOverloadsShouldHaveNamedAlternatives.cs
│   │   │   │   ├── OperatorsShouldBeOverloadedConsistently.cs
│   │   │   │   ├── OptionalParameter.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCall.cs
│   │   │   │   ├── OptionalParameterWithDefaultValue.cs
│   │   │   │   ├── OptionalParameterWithDefaultValueCodeFix.cs
│   │   │   │   ├── OptionalRefOutParameter.cs
│   │   │   │   ├── OptionalRefOutParameterCodeFix.cs
│   │   │   │   ├── OrderByRepeated.cs
│   │   │   │   ├── OrderByRepeatedCodeFix.cs
│   │   │   │   ├── OverrideGetHashCodeOnOverridingEquals.cs
│   │   │   │   ├── PInvokesShouldNotBeVisible.cs
│   │   │   │   ├── ParameterAssignedTo.cs
│   │   │   │   ├── ParameterNameMatchesOriginal.cs
│   │   │   │   ├── ParameterNamesShouldNotDuplicateMethodNames.cs
│   │   │   │   ├── ParameterTypeShouldMatchRouteTypeConstraint.cs
│   │   │   │   ├── ParameterValidationInAsyncShouldBeWrapped.cs
│   │   │   │   ├── ParameterValidationInYieldShouldBeWrapped.cs
│   │   │   │   ├── ParametersCorrectOrder.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttribute.cs
│   │   │   │   ├── PartialMethodNoImplementation.cs
│   │   │   │   ├── PasswordsShouldBeStoredCorrectly.cs
│   │   │   │   ├── PointersShouldBePrivate.cs
│   │   │   │   ├── PreferGuidEmpty.cs
│   │   │   │   ├── PreferGuidEmptyCodeFix.cs
│   │   │   │   ├── PreferJaggedArraysOverMultidimensional.cs
│   │   │   │   ├── PrivateFieldUsedAsLocalVariable.cs
│   │   │   │   ├── PrivateStaticMethodUsedOnlyByNestedClass.cs
│   │   │   │   ├── PropertiesAccessCorrectField.cs
│   │   │   │   ├── PropertiesShouldBePreferred.cs
│   │   │   │   ├── PropertyGetterWithThrow.cs
│   │   │   │   ├── PropertyNamesShouldNotMatchGetMethods.cs
│   │   │   │   ├── PropertyToAutoProperty.cs
│   │   │   │   ├── PropertyWriteOnly.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFields.cs
│   │   │   │   ├── PublicConstantField.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArray.cs
│   │   │   │   ├── PureAttributeOnVoidMethod.cs
│   │   │   │   ├── RedundancyInConstructorDestructorDeclaration.cs
│   │   │   │   ├── RedundancyInConstructorDestructorDeclarationCodeFix.cs
│   │   │   │   ├── RedundantArgument.cs
│   │   │   │   ├── RedundantArgumentCodeFix.cs
│   │   │   │   ├── RedundantCast.cs
│   │   │   │   ├── RedundantCastCodeFix.cs
│   │   │   │   ├── RedundantConditionalAroundAssignment.cs
│   │   │   │   ├── RedundantConditionalAroundAssignmentCodeFix.cs
│   │   │   │   ├── RedundantDeclaration.cs
│   │   │   │   ├── RedundantDeclarationCodeFix.cs
│   │   │   │   ├── RedundantInheritanceList.cs
│   │   │   │   ├── RedundantInheritanceListCodeFix.cs
│   │   │   │   ├── RedundantJumpStatement.cs
│   │   │   │   ├── RedundantModifier.cs
│   │   │   │   ├── RedundantModifierCodeFix.cs
│   │   │   │   ├── RedundantNullCheck.cs
│   │   │   │   ├── RedundantNullCheckCodeFix.cs
│   │   │   │   ├── RedundantNullableTypeComparison.cs
│   │   │   │   ├── RedundantParentheses.cs
│   │   │   │   ├── RedundantParenthesesCodeFix.cs
│   │   │   │   ├── RedundantParenthesesObjectsCreation.cs
│   │   │   │   ├── RedundantPropertyNamesInAnonymousClass.cs
│   │   │   │   ├── RedundantPropertyNamesInAnonymousClassCodeFix.cs
│   │   │   │   ├── RedundantToArrayCall.cs
│   │   │   │   ├── RedundantToArrayCallCodeFix.cs
│   │   │   │   ├── RedundantToStringCall.cs
│   │   │   │   ├── RedundantToStringCallCodeFix.cs
│   │   │   │   ├── ReferenceEqualityCheckWhenEqualsExists.cs
│   │   │   │   ├── ReferenceEqualsOnValueType.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntax.cs
│   │   │   │   ├── RequireAttributeUsageAttribute.cs
│   │   │   │   ├── ReturnEmptyCollectionInsteadOfNull.cs
│   │   │   │   ├── ReturnTypeNamedPartialShouldBeEscaped.cs
│   │   │   │   ├── ReturnValueIgnored.cs
│   │   │   │   ├── ReuseClientBase.cs
│   │   │   │   ├── ReversedOperators.cs
│   │   │   │   ├── RightCurlyBraceStartsLine.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalled.cs
│   │   │   │   ├── SelfAssignment.cs
│   │   │   │   ├── SerializationConstructorsShouldBeSecured.cs
│   │   │   │   ├── SetLocaleForDataTypes.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethods.cs
│   │   │   │   ├── ShiftDynamicNotInteger.cs
│   │   │   │   ├── ShouldImplementExportedInterfaces.cs
│   │   │   │   ├── SingleStatementPerLine.cs
│   │   │   │   ├── SpecifyIFormatProviderOrCultureInfo.cs
│   │   │   │   ├── SpecifyStringComparison.cs
│   │   │   │   ├── SqlKeywordsDelimitedBySpace.cs
│   │   │   │   ├── StaticFieldInGenericClass.cs
│   │   │   │   ├── StaticFieldInitializerOrder.cs
│   │   │   │   ├── StaticFieldVisible.cs
│   │   │   │   ├── StaticFieldWrittenFrom.cs
│   │   │   │   ├── StaticFieldWrittenFromInstanceConstructor.cs
│   │   │   │   ├── StaticFieldWrittenFromInstanceMember.cs
│   │   │   │   ├── StaticSealedClassProtectedMembers.cs
│   │   │   │   ├── StreamReadStatement.cs
│   │   │   │   ├── StringConcatenationInLoop.cs
│   │   │   │   ├── StringFormatValidator.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicated.cs
│   │   │   │   ├── StringOffsetMethods.cs
│   │   │   │   ├── StringOperationWithoutCulture.cs
│   │   │   │   ├── StringOrIntegralTypesForIndexers.cs
│   │   │   │   ├── SuppressFinalizeUseless.cs
│   │   │   │   ├── SuppressFinalizeUselessCodeFix.cs
│   │   │   │   ├── SwaggerActionReturnType.cs
│   │   │   │   ├── SwitchCaseFallsThroughToDefault.cs
│   │   │   │   ├── SwitchCaseFallsThroughToDefaultCodeFix.cs
│   │   │   │   ├── SwitchCasesMinimumThree.cs
│   │   │   │   ├── SwitchDefaultClauseEmpty.cs
│   │   │   │   ├── SwitchDefaultClauseEmptyCodeFix.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatements.cs
│   │   │   │   ├── SwitchShouldNotBeNested.cs
│   │   │   │   ├── SwitchWithoutDefault.cs
│   │   │   │   ├── TabCharacter.cs
│   │   │   │   ├── TaskConfigureAwait.cs
│   │   │   │   ├── TestClassShouldHaveTestMethod.cs
│   │   │   │   ├── TestMethodShouldContainAssertion.cs
│   │   │   │   ├── TestMethodShouldHaveCorrectSignature.cs
│   │   │   │   ├── TestMethodShouldNotBeIgnored.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleep.cs
│   │   │   │   ├── ThisShouldNotBeExposedFromConstructors.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalled.cs
│   │   │   │   ├── ThreadStaticNonStaticField.cs
│   │   │   │   ├── ThreadStaticNonStaticFieldCodeFix.cs
│   │   │   │   ├── ThreadStaticWithInitializer.cs
│   │   │   │   ├── ThrowReservedExceptions.cs
│   │   │   │   ├── ToStringShouldNotReturnNull.cs
│   │   │   │   ├── TooManyGenericParameters.cs
│   │   │   │   ├── TooManyLabelsInSwitch.cs
│   │   │   │   ├── TooManyLoggingCalls.cs
│   │   │   │   ├── TooManyParameters.cs
│   │   │   │   ├── TrackNotImplementedException.cs
│   │   │   │   ├── TryStatementsWithIdenticalCatchShouldBeMerged.cs
│   │   │   │   ├── TypeExaminationOnSystemType.cs
│   │   │   │   ├── TypeMemberVisibility.cs
│   │   │   │   ├── TypeNamesShouldNotMatchNamespaces.cs
│   │   │   │   ├── TypesShouldNotExtendOutdatedBaseTypes.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeated.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeatedCodeFix.cs
│   │   │   │   ├── UnchangedLocalVariablesShouldBeConst.cs
│   │   │   │   ├── UnchangedLocalVariablesShouldBeConstCodeFix.cs
│   │   │   │   ├── UnconditionalJumpStatement.cs
│   │   │   │   ├── UninvokedEventDeclaration.cs
│   │   │   │   ├── UnnecessaryBitwiseOperation.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFix.cs
│   │   │   │   ├── UnnecessaryMathematicalComparison.cs
│   │   │   │   ├── UnnecessaryUsings.cs
│   │   │   │   ├── UnnecessaryUsingsCodeFix.cs
│   │   │   │   ├── UnusedPrivateMember.cs
│   │   │   │   ├── UnusedPrivateMemberCodeFix.cs
│   │   │   │   ├── UnusedReturnValue.cs
│   │   │   │   ├── UnusedStringBuilder.cs
│   │   │   │   ├── UriShouldNotBeHardcoded.cs
│   │   │   │   ├── UseAwaitableMethod.cs
│   │   │   │   ├── UseCharOverloadOfStringMethods.cs
│   │   │   │   ├── UseCharOverloadOfStringMethodsCodeFix.cs
│   │   │   │   ├── UseConstantLoggingTemplate.cs
│   │   │   │   ├── UseConstantsWhereAppropriate.cs
│   │   │   │   ├── UseCurlyBraces.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTime.cs
│   │   │   │   ├── UseFindSystemTimeZoneById.cs
│   │   │   │   ├── UseGenericEventHandlerInstances.cs
│   │   │   │   ├── UseGenericWithRefParameters.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTime.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethods.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionary.cs
│   │   │   │   ├── UseNumericLiteralSeparator.cs
│   │   │   │   ├── UseParamsForVariableArguments.cs
│   │   │   │   ├── UseShortCircuitingOperator.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFix.cs
│   │   │   │   ├── UseStringCreate.cs
│   │   │   │   ├── UseStringIsNullOrEmpty.cs
│   │   │   │   ├── UseTestableTimeProvider.cs
│   │   │   │   ├── UseTrueForAll.cs
│   │   │   │   ├── UseUnixEpoch.cs
│   │   │   │   ├── UseUnixEpochCodeFix.cs
│   │   │   │   ├── UseUriInsteadOfString.cs
│   │   │   │   ├── UseValueParameter.cs
│   │   │   │   ├── UseWhereBeforeOrderBy.cs
│   │   │   │   ├── UseWhileLoopInstead.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzer.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzer.cs
│   │   │   │   │   ├── FileMetadataAnalyzer.cs
│   │   │   │   │   ├── LogAnalyzer.cs
│   │   │   │   │   ├── MetricsAnalyzer.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzer.cs
│   │   │   │   │   ├── TelemetryAnalyzer.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzer.cs
│   │   │   │   │   └── TokenTypeAnalyzer.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatable.cs
│   │   │   │   ├── ValuesUselesslyIncremented.cs
│   │   │   │   ├── VariableShadowsField.cs
│   │   │   │   ├── VariableUnused.cs
│   │   │   │   ├── VirtualEventField.cs
│   │   │   │   ├── VirtualEventFieldCodeFix.cs
│   │   │   │   ├── WcfMissingContractAttribute.cs
│   │   │   │   ├── WcfNonVoidOneWay.cs
│   │   │   │   ├── WeakSslTlsProtocols.cs
│   │   │   │   ├── XMLSignatureCheck.cs
│   │   │   │   ├── XXE/
│   │   │   │   │   └── XmlReaderSettingsValidator.cs
│   │   │   │   └── XmlExternalEntityShouldNotBeParsed.cs
│   │   │   ├── SonarAnalyzer.CSharp.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   │   ├── IfStatementSyntaxExtensions.cs
│   │   │   │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── SwitchSectionSyntaxExtensions.cs
│   │   │   │   │   └── SyntaxNodeExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── AttributeSyntaxSymbolMapping.cs
│   │   │   │       ├── SymbolUsage.cs
│   │   │   │       └── SymbolUsageCollector.cs
│   │   │   ├── Walkers/
│   │   │   │   ├── CatchLoggingInvocationWalker.cs
│   │   │   │   └── ParameterValidationInMethodWalker.cs
│   │   │   ├── packages.lock.json
│   │   │   └── sonarpedia.json
│   │   ├── SonarAnalyzer.CSharp.Core/
│   │   │   ├── Common/
│   │   │   │   ├── DescriptorFactory.cs
│   │   │   │   └── SyntaxConstants.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── CSharpCompilationExtensions.cs
│   │   │   │   ├── IAnalyzerConfigurationExtensions.cs
│   │   │   │   ├── ICompilationReportExtensions.cs
│   │   │   │   ├── IFieldSymbolExtensions.cs
│   │   │   │   ├── ILocalSymbolExtensions.cs
│   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   ├── ISymbolExtensions.cs
│   │   │   │   ├── ITupleOperationWrapperExtensions.cs
│   │   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   │   ├── LanguageVersionExtensions.cs
│   │   │   │   ├── SonarAnalysisContextExtensions.cs
│   │   │   │   ├── SonarCompilationStartAnalysisContextExtensions.cs
│   │   │   │   ├── SonarParametrizedAnalysisContextExtensions.cs
│   │   │   │   └── SonarSyntaxNodeReportingContextExtensions.cs
│   │   │   ├── Facade/
│   │   │   │   ├── CSharpFacade.cs
│   │   │   │   └── Implementation/
│   │   │   │       ├── CSharpSyntaxFacade.cs
│   │   │   │       ├── CSharpSyntaxKindFacade.cs
│   │   │   │       └── CSharpTrackerFacade.cs
│   │   │   ├── LiveVariableAnalysis/
│   │   │   │   └── SonarCSharpLiveVariableAnalysis.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── RegularExpressions/
│   │   │   │   └── MessageTemplatesParser.cs
│   │   │   ├── SonarAnalyzer.CSharp.Core.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AccessorDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── ArgumentListSyntaxExtensions.cs
│   │   │   │   │   ├── ArgumentSyntaxExtensions.cs
│   │   │   │   │   ├── AssignmentExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── AttributeListSyntaxExtensions.cs
│   │   │   │   │   ├── AttributeSyntaxExtensions.cs
│   │   │   │   │   ├── AwaitExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── BaseArgumentListSyntaxExtensions.cs
│   │   │   │   │   ├── BaseMethodDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── BlockSyntaxExtensions.cs
│   │   │   │   │   ├── CompilationUnitSyntaxExtensions.cs
│   │   │   │   │   ├── ExpressionSyntaxExtensions.Roslyn.cs
│   │   │   │   │   ├── ExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── InterpolatedStringExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── LocalFunctionStatementSyntaxWrapperExtensions.cs
│   │   │   │   │   ├── MemberAccessExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── MethodDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── ObjectCreationExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── ParameterSyntaxExtensions.cs
│   │   │   │   │   ├── PropertyDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── StatementSyntaxExtensions.cs
│   │   │   │   │   ├── SwitchExpressionSyntaxWrapperExtensions.cs
│   │   │   │   │   ├── SwitchStatementSyntaxExtensions.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │   │   │   │   ├── SyntaxNodeExtensionsCSharp.cs
│   │   │   │   │   ├── SyntaxTokenExtensions.cs
│   │   │   │   │   ├── SyntaxTokenListExtensions.cs
│   │   │   │   │   ├── SyntaxTriviaExtensions.cs
│   │   │   │   │   ├── TupleExpressionSyntaxExtensions.cs
│   │   │   │   │   ├── TypeDeclarationSyntaxExtensions.cs
│   │   │   │   │   ├── TypeSyntaxExtensions.cs
│   │   │   │   │   └── VariableDesignationSyntaxWrapperExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── CSharpAttributeParameterLookup.cs
│   │   │   │       ├── CSharpEquivalenceChecker.cs
│   │   │   │       ├── CSharpExpressionNumericConverter.cs
│   │   │   │       ├── CSharpGeneratedCodeRecognizer.cs
│   │   │   │       ├── CSharpMethodParameterLookup.cs
│   │   │   │       ├── CSharpRemovableDeclarationCollector.cs
│   │   │   │       ├── CSharpStringInterpolationConstantValueResolver.cs
│   │   │   │       ├── CSharpSyntaxClassifier.cs
│   │   │   │       ├── MutedSyntaxWalker.cs
│   │   │   │       └── SafeCSharpSyntaxWalker.cs
│   │   │   ├── Trackers/
│   │   │   │   ├── CSharpArgumentTracker.cs
│   │   │   │   ├── CSharpAssignmentFinder.cs
│   │   │   │   ├── CSharpBaseTypeTracker.cs
│   │   │   │   ├── CSharpBuilderPatternCondition.cs
│   │   │   │   ├── CSharpConstantValueFinder.cs
│   │   │   │   ├── CSharpElementAccessTracker.cs
│   │   │   │   ├── CSharpFieldAccessTracker.cs
│   │   │   │   ├── CSharpInvocationTracker.cs
│   │   │   │   ├── CSharpMethodDeclarationTracker.cs
│   │   │   │   ├── CSharpObjectCreationTracker.cs
│   │   │   │   ├── CSharpObjectInitializationTracker.cs
│   │   │   │   └── CSharpPropertyAccessTracker.cs
│   │   │   ├── Wrappers/
│   │   │   │   ├── IMethodDeclaration.cs
│   │   │   │   ├── MethodDeclarationFactory.cs
│   │   │   │   └── ObjectCreationFactory.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.CSharp.Styling/
│   │   │   ├── Common/
│   │   │   │   ├── DescriptorFactory.cs
│   │   │   │   ├── OrderDescriptor.cs
│   │   │   │   └── StylingAnalyzer.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── LambdaExpressionSyntaxExtensions.cs
│   │   │   │   ├── MemberDeclarationSyntaxExtensions.cs
│   │   │   │   └── SyntaxNodeExtensions.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllArgumentsOnSameLine.cs
│   │   │   │   ├── AllParametersBase.cs
│   │   │   │   ├── AllParametersOnSameColumn.cs
│   │   │   │   ├── AllParametersOnSameLine.cs
│   │   │   │   ├── ArrowLocation.cs
│   │   │   │   ├── AvoidArrangeActAssertComment.cs
│   │   │   │   ├── AvoidDeconstruction.cs
│   │   │   │   ├── AvoidGet.cs
│   │   │   │   ├── AvoidListForEach.cs
│   │   │   │   ├── AvoidNullable.cs
│   │   │   │   ├── AvoidPrimaryConstructor.cs
│   │   │   │   ├── AvoidUnusedInterpolation.cs
│   │   │   │   ├── AvoidValueTuple.cs
│   │   │   │   ├── AvoidVarPattern.cs
│   │   │   │   ├── FieldOrdering.cs
│   │   │   │   ├── FileScopeNamespace.cs
│   │   │   │   ├── HelperInTypeName.cs
│   │   │   │   ├── IndentArgument.cs
│   │   │   │   ├── IndentBase.cs
│   │   │   │   ├── IndentInvocation.cs
│   │   │   │   ├── IndentOperator.cs
│   │   │   │   ├── IndentRawString.cs
│   │   │   │   ├── IndentTernary.cs
│   │   │   │   ├── InitializerLine.cs
│   │   │   │   ├── LambdaParameterName.cs
│   │   │   │   ├── LocalFunctionLocation.cs
│   │   │   │   ├── MemberAccessLine.cs
│   │   │   │   ├── MemberVisibilityOrdering.cs
│   │   │   │   ├── MethodExpressionBodyLine.cs
│   │   │   │   ├── MoveMethodToDedicatedExtensionClass.cs
│   │   │   │   ├── NamespaceName.cs
│   │   │   │   ├── NullPatternMatching.cs
│   │   │   │   ├── OperatorLocation.cs
│   │   │   │   ├── PropertyOrdering.cs
│   │   │   │   ├── ProtectedFieldsCase.cs
│   │   │   │   ├── SeparateDeclarations.cs
│   │   │   │   ├── TermaryLine.cs
│   │   │   │   ├── TypeMemberOrdering.cs
│   │   │   │   ├── UseDifferentMember.cs
│   │   │   │   ├── UseField.cs
│   │   │   │   ├── UseInnermostRegistrationContext.cs
│   │   │   │   ├── UseLinqExtensions.cs
│   │   │   │   ├── UseNullInsteadOfDefault.cs
│   │   │   │   ├── UsePositiveLogic.cs
│   │   │   │   ├── UseRawString.cs
│   │   │   │   ├── UseRegexSafeIsMatch.cs
│   │   │   │   ├── UseShortName.cs
│   │   │   │   └── UseVar.cs
│   │   │   ├── SonarAnalyzer.CSharp.Styling.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.Core/
│   │   │   ├── AnalysisContext/
│   │   │   │   ├── IAnalysisContext.cs
│   │   │   │   ├── IReport.cs
│   │   │   │   ├── IReportingContext.cs
│   │   │   │   ├── IssueReporter.cs
│   │   │   │   ├── ReportingContext.cs
│   │   │   │   ├── ShouldAnalyzeTreeCache.cs
│   │   │   │   ├── SonarAnalysisContext.cs
│   │   │   │   ├── SonarAnalysisContextBase.cs
│   │   │   │   ├── SonarCodeBlockReportingContext.cs
│   │   │   │   ├── SonarCodeBlockStartAnalysisContext.cs
│   │   │   │   ├── SonarCodeFixContext.cs
│   │   │   │   ├── SonarCompilationReportingContext.cs
│   │   │   │   ├── SonarCompilationStartAnalysisContext.cs
│   │   │   │   ├── SonarParametrizedAnalysisContext.cs
│   │   │   │   ├── SonarSemanticModelReportingContext.cs
│   │   │   │   ├── SonarSymbolReportingContext.cs
│   │   │   │   ├── SonarSymbolStartAnalysisContext.cs
│   │   │   │   ├── SonarSyntaxNodeReportingContext.cs
│   │   │   │   └── SonarSyntaxTreeReportingContext.cs
│   │   │   ├── Analyzers/
│   │   │   │   ├── DiagnosticDescriptorFactory.cs
│   │   │   │   ├── HotspotDiagnosticAnalyzer.cs
│   │   │   │   ├── ParametrizedDiagnosticAnalyzer.cs
│   │   │   │   ├── SonarCodeFix.cs
│   │   │   │   ├── SonarDiagnosticAnalyzer.cs
│   │   │   │   └── TrackerHotspotDiagnosticAnalyzer.cs
│   │   │   ├── Common/
│   │   │   │   ├── AnalyzerAdditionalFile.cs
│   │   │   │   ├── AnalyzerConfiguration.cs
│   │   │   │   ├── AnalyzerLanguage.cs
│   │   │   │   ├── BidirectionalDictionary.cs
│   │   │   │   ├── Constants.cs
│   │   │   │   ├── Conversions.cs
│   │   │   │   ├── DisjointSets.cs
│   │   │   │   ├── DocumentBasedFixAllProvider.cs
│   │   │   │   ├── HashCode.cs
│   │   │   │   ├── IAnalyzerConfiguration.cs
│   │   │   │   ├── IRuleLoader.cs
│   │   │   │   ├── ISafeSyntaxWalker.cs
│   │   │   │   ├── IsExternalInit.cs
│   │   │   │   ├── MultiValueDictionary.cs
│   │   │   │   ├── NaturalLanguageDetector.cs
│   │   │   │   ├── NodeAndModel.cs
│   │   │   │   ├── NodeAndSymbol.cs
│   │   │   │   ├── NodeSymbolAndModel.cs
│   │   │   │   ├── Pair.cs
│   │   │   │   ├── PropertyType.cs
│   │   │   │   ├── RuleDescriptor.cs
│   │   │   │   ├── RuleLoader.cs
│   │   │   │   ├── RuleParameterAttribute.cs
│   │   │   │   ├── SecondaryLocation.cs
│   │   │   │   ├── ShannonEntropy.cs
│   │   │   │   ├── SourceScope.cs
│   │   │   │   ├── TokenAndModel.cs
│   │   │   │   ├── TopLevelStatements.cs
│   │   │   │   ├── UnexpectedLanguageException.cs
│   │   │   │   └── UnexpectedValueException.cs
│   │   │   ├── Configuration/
│   │   │   │   ├── AnalysisConfig.cs
│   │   │   │   ├── AnalysisConfigReader.cs
│   │   │   │   ├── ConfigSetting.cs
│   │   │   │   ├── FilesToAnalyzeProvider.cs
│   │   │   │   ├── ParameterLoader.cs
│   │   │   │   ├── ProjectConfig.cs
│   │   │   │   ├── ProjectConfigReader.cs
│   │   │   │   ├── ProjectType.cs
│   │   │   │   ├── ProjectTypeCache.cs
│   │   │   │   ├── SonarLintXml.cs
│   │   │   │   └── SonarLintXmlReader.cs
│   │   │   ├── Extensions/
│   │   │   │   ├── AnalyzerOptionsExtensions.cs
│   │   │   │   ├── CompilationExtensions.cs
│   │   │   │   ├── DiagnosticDescriptorExtensions.cs
│   │   │   │   ├── DictionaryExtensions.cs
│   │   │   │   ├── HashSetExtensions.cs
│   │   │   │   ├── IAnalysisContextExtensions.cs
│   │   │   │   ├── ICompilationReportExtensions.cs
│   │   │   │   ├── IEnumerableExtensions.cs
│   │   │   │   ├── ITreeReportExtensions.cs
│   │   │   │   ├── IXmlLineInfoExtensions.cs
│   │   │   │   ├── RegexExtensions.cs
│   │   │   │   ├── SonarAnalysisContextExtensions.cs
│   │   │   │   ├── StackExtensions.cs
│   │   │   │   ├── StringExtensions.cs
│   │   │   │   ├── XAttributeExtensions.cs
│   │   │   │   └── XElementExtensions.cs
│   │   │   ├── Facade/
│   │   │   │   ├── ILanguageFacade.cs
│   │   │   │   ├── ISyntaxKindFacade.cs
│   │   │   │   ├── ITrackerFacade.cs
│   │   │   │   └── SyntaxFacade.cs
│   │   │   ├── Json/
│   │   │   │   ├── JsonException.cs
│   │   │   │   ├── JsonNode.cs
│   │   │   │   ├── JsonSerializer.cs
│   │   │   │   ├── JsonWalker.cs
│   │   │   │   └── Parsing/
│   │   │   │       ├── Kind.cs
│   │   │   │       ├── LexicalAnalyzer.cs
│   │   │   │       ├── Symbol.cs
│   │   │   │       └── SyntaxAnalyzer.cs
│   │   │   ├── Metrics/
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── FileComments.cs
│   │   │   │   └── MetricsBase.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Protobuf/
│   │   │   │   └── AnalyzerReport.proto
│   │   │   ├── RegularExpressions/
│   │   │   │   ├── NamingPatterns.cs
│   │   │   │   ├── RegexContext.cs
│   │   │   │   └── WildcardPatternMatcher.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementationBase.cs
│   │   │   │   ├── AlwaysSetDateTimeKindBase.cs
│   │   │   │   ├── ArrayPassedAsParamsBase.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutesBase.cs
│   │   │   │   │   └── RouteTemplateShouldNotStartWithSlashBase.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarkingBase.cs
│   │   │   │   ├── AvoidUnsealedAttributesBase.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvokeBase.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressionsBase.cs
│   │   │   │   ├── BooleanCheckInvertedBase.cs
│   │   │   │   ├── BooleanLiteralUnnecessaryBase.cs
│   │   │   │   ├── BypassingAccessibilityBase.cs
│   │   │   │   ├── CatchRethrowBase.cs
│   │   │   │   ├── CertificateValidationCheckBase.cs
│   │   │   │   ├── CheckFileLicenseBase.cs
│   │   │   │   ├── ClassNamedExceptionBase.cs
│   │   │   │   ├── ClassNotInstantiatableBase.cs
│   │   │   │   ├── ClassShouldNotBeEmptyBase.cs
│   │   │   │   ├── CognitiveComplexityBase.cs
│   │   │   │   ├── CollectionEmptinessCheckingBase.cs
│   │   │   │   ├── CommentKeywordBase.cs
│   │   │   │   ├── CommentsShouldNotBeEmptyBase.cs
│   │   │   │   ├── ConditionalStructureSameConditionBase.cs
│   │   │   │   ├── ConditionalStructureSameImplementationBase.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExistBase.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalledBase.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKeyBase.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcodedBase.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembersBase.cs
│   │   │   │   ├── DeclareTypesInNamespacesBase.cs
│   │   │   │   ├── DoNotCallInsecureSecurityAlgorithmBase.cs
│   │   │   │   ├── DoNotCallMethodsBase.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollectionBase.cs
│   │   │   │   ├── DoNotHardcodeBase.cs
│   │   │   │   ├── DoNotHardcodeCredentialsBase.cs
│   │   │   │   ├── DoNotHardcodeSecretsBase.cs
│   │   │   │   ├── DoNotInstantiateSharedClassesBase.cs
│   │   │   │   ├── DoNotLockOnSharedResourceBase.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjectsBase.cs
│   │   │   │   ├── DoNotNestTernaryOperatorsBase.cs
│   │   │   │   ├── DoNotOverwriteCollectionElementsBase.cs
│   │   │   │   ├── DoNotThrowFromDestructorsBase.cs
│   │   │   │   ├── DoNotUseDateTimeNowBase.cs
│   │   │   │   ├── EmptyMethodBase.cs
│   │   │   │   ├── EmptyNestedBlockBase.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecureBase.cs
│   │   │   │   ├── EnumNameHasEnumSuffixBase.cs
│   │   │   │   ├── EnumNameShouldFollowRegexBase.cs
│   │   │   │   ├── ExceptionsShouldBePublicBase.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustificationBase.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsedBase.cs
│   │   │   │   ├── ExpressionComplexityBase.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObjectBase.cs
│   │   │   │   ├── FieldShadowsParentFieldBase.cs
│   │   │   │   ├── FieldShouldNotBePublicBase.cs
│   │   │   │   ├── FileLinesBase.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefaultBase.cs
│   │   │   │   ├── FlagsEnumWithoutInitializerBase.cs
│   │   │   │   ├── FlagsEnumZeroMemberBase.cs
│   │   │   │   ├── FunctionComplexityBase.cs
│   │   │   │   ├── FunctionNestingDepthBase.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursiveBase.cs
│   │   │   │   ├── GotoStatementBase.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── CommandPathBase.cs
│   │   │   │   │   ├── ConfiguringLoggersBase.cs
│   │   │   │   │   ├── CreatingHashAlgorithmsBase.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProductionBase.cs
│   │   │   │   │   ├── DisablingRequestValidationBase.cs
│   │   │   │   │   ├── ExecutingSqlQueriesBase.cs
│   │   │   │   │   ├── ExpandingArchivesBase.cs
│   │   │   │   │   ├── HardcodedIpAddressBase.cs
│   │   │   │   │   ├── PubliclyWritableDirectoriesBase.cs
│   │   │   │   │   ├── RequestsWithExcessiveLengthBase.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegexBase.cs
│   │   │   │   │   └── UsingNonstandardCryptographyBase.cs
│   │   │   │   ├── IfChainWithoutElseBase.cs
│   │   │   │   ├── IfCollapsibleBase.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectlyBase.cs
│   │   │   │   ├── IndexOfCheckAgainstZeroBase.cs
│   │   │   │   ├── InsecureEncryptionAlgorithmBase.cs
│   │   │   │   ├── InsecureTemporaryFilesCreationBase.cs
│   │   │   │   ├── InsteadOfAnyBase.cs
│   │   │   │   ├── InvalidCastToInterfaceBase.cs
│   │   │   │   ├── JwtSignedBase.cs
│   │   │   │   ├── LineLengthBase.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethodsBase.cs
│   │   │   │   ├── LooseFilePermissionsBase.cs
│   │   │   │   ├── LooseFilePermissionsConfig.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttributeBase.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttributeBase.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThreadBase.cs
│   │   │   │   ├── MethodOverloadsShouldBeGroupedBase.cs
│   │   │   │   ├── MethodParameterUnusedBase.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementationsBase.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLinesBase.cs
│   │   │   │   ├── MultipleVariableDeclarationBase.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFixBase.cs
│   │   │   │   ├── NameOfShouldBeUsedBase.cs
│   │   │   │   ├── NoExceptionsInFinallyBase.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNullBase.cs
│   │   │   │   ├── ObsoleteAttributesBase.cs
│   │   │   │   ├── OptionalParameterBase.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCallBase.cs
│   │   │   │   ├── ParameterAssignedToBase.cs
│   │   │   │   ├── ParameterNameMatchesOriginalBase.cs
│   │   │   │   ├── ParametersCorrectOrderBase.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttributeBase.cs
│   │   │   │   ├── PreferGuidEmptyBase.cs
│   │   │   │   ├── PropertiesAccessCorrectFieldBase.cs
│   │   │   │   ├── PropertyGetterWithThrowBase.cs
│   │   │   │   ├── PropertyWriteOnlyBase.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFieldsBase.cs
│   │   │   │   ├── PublicConstantFieldBase.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArrayBase.cs
│   │   │   │   ├── PureAttributeOnVoidMethodBase.cs
│   │   │   │   ├── RedundantNullCheckBase.cs
│   │   │   │   ├── RedundantParenthesesBase.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntaxBase.cs
│   │   │   │   ├── ReversedOperatorsBase.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalledBase.cs
│   │   │   │   ├── SelfAssignmentBase.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethodsBase.cs
│   │   │   │   ├── ShiftDynamicNotIntegerBase.cs
│   │   │   │   ├── ShouldImplementExportedInterfacesBase.cs
│   │   │   │   ├── SingleStatementPerLineBase.cs
│   │   │   │   ├── StringConcatenationInLoopBase.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicatedBase.cs
│   │   │   │   ├── SwitchCasesMinimumThreeBase.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatementsBase.cs
│   │   │   │   ├── SwitchShouldNotBeNestedBase.cs
│   │   │   │   ├── SwitchWithoutDefaultBase.cs
│   │   │   │   ├── TabCharacterBase.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleepBase.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalledBase.cs
│   │   │   │   ├── ThrowReservedExceptionsBase.cs
│   │   │   │   ├── ToStringShouldNotReturnNullBase.cs
│   │   │   │   ├── TooManyLabelsInSwitchBase.cs
│   │   │   │   ├── TooManyParametersBase.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeatedBase.cs
│   │   │   │   ├── UnconditionalJumpStatementBase.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationBase.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFixBase.cs
│   │   │   │   ├── UnusedStringBuilderBase.cs
│   │   │   │   ├── UriShouldNotBeHardcodedBase.cs
│   │   │   │   ├── UseCharOverloadOfStringMethodsBase.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTimeBase.cs
│   │   │   │   ├── UseFindSystemTimeZoneByIdBase.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTimeBase.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethodsBase.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionaryBase.cs
│   │   │   │   ├── UseShortCircuitingOperatorBase.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFixBase.cs
│   │   │   │   ├── UseTestableTimeProviderBase.cs
│   │   │   │   ├── UseTrueForAllBase.cs
│   │   │   │   ├── UseUnixEpochBase.cs
│   │   │   │   ├── UseUnixEpochCodeFixBase.cs
│   │   │   │   ├── UseWhereBeforeOrderByBase.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzerBase.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzerBase.cs
│   │   │   │   │   ├── FileMetadataAnalyzerBase.cs
│   │   │   │   │   ├── LogAnalyzerBase.cs
│   │   │   │   │   ├── MethodDeclarationInfoComparer.cs
│   │   │   │   │   ├── MetricsAnalyzerBase.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzerBase.cs
│   │   │   │   │   ├── TelemetryAnalyzerBase.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzerBase.cs
│   │   │   │   │   ├── TokenTypeAnalyzerBase.cs
│   │   │   │   │   └── UtilityAnalyzerBase.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatableBase.cs
│   │   │   │   ├── VariableUnusedBase.cs
│   │   │   │   ├── WcfNonVoidOneWayBase.cs
│   │   │   │   └── WeakSslTlsProtocolsBase.cs
│   │   │   ├── Semantics/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   │   ├── INamedTypeSymbolExtensions.cs
│   │   │   │   │   ├── INamespaceSymbolExtensions.cs
│   │   │   │   │   ├── IParameterSymbolExtensions.cs
│   │   │   │   │   ├── IPropertySymbolExtensions.cs
│   │   │   │   │   ├── ISymbolExtensions.Roslyn.cs
│   │   │   │   │   ├── ISymbolExtensions.cs
│   │   │   │   │   ├── ITypeParameterSymbolExtensions.cs
│   │   │   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   │   │   ├── KnownAssemblyExtensions.cs
│   │   │   │   │   ├── SemanticModelExtensions.cs
│   │   │   │   │   └── SymbolInfoExtensions.cs
│   │   │   │   ├── KnownAssembly.Predicates.cs
│   │   │   │   ├── KnownAssembly.cs
│   │   │   │   ├── KnownMethods.cs
│   │   │   │   ├── KnownType.Implementation.cs
│   │   │   │   ├── KnownType.cs
│   │   │   │   └── NetFrameworkVersionProvider.cs
│   │   │   ├── SonarAnalyzer.Core.csproj
│   │   │   ├── Syntax/
│   │   │   │   ├── Extensions/
│   │   │   │   │   ├── AccessibilityExtensions.cs
│   │   │   │   │   ├── AttributeDataExtensions.cs
│   │   │   │   │   ├── BinaryOperatorKindExtensions.cs
│   │   │   │   │   ├── ComparisonKindExtensions.cs
│   │   │   │   │   ├── CountComparisonResultExtensions.cs
│   │   │   │   │   ├── FileLinePositionSpanExtensions.cs
│   │   │   │   │   ├── LinePositionExtensions.cs
│   │   │   │   │   ├── LocationExtensions.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │   │   │   │   ├── SyntaxNodeExtensions.cs
│   │   │   │   │   ├── SyntaxTokenExtensions.cs
│   │   │   │   │   ├── SyntaxTreeExtensions.cs
│   │   │   │   │   └── SyntaxTriviaExtensions.cs
│   │   │   │   └── Utilities/
│   │   │   │       ├── AccessorAccess.cs
│   │   │   │       ├── ComparisonKind.cs
│   │   │   │       ├── CountComparisionResult.cs
│   │   │   │       ├── EquivalenceChecker.cs
│   │   │   │       ├── ExpressionNumericConverterBase.cs
│   │   │   │       ├── GeneratedCodeRecognizer.cs
│   │   │   │       ├── IExpressionNumericConverter.cs
│   │   │   │       ├── MethodParameterLookupBase.cs
│   │   │   │       ├── RemovableDeclarationCollectorBase.cs
│   │   │   │       ├── StringInterpolationConstantValueResolver.cs
│   │   │   │       └── VisualIndentComparer.cs
│   │   │   ├── Trackers/
│   │   │   │   ├── ArgumentContext.cs
│   │   │   │   ├── ArgumentDescriptor.cs
│   │   │   │   ├── ArgumentTracker.cs
│   │   │   │   ├── AssignmentFinder.cs
│   │   │   │   ├── BaseContext.cs
│   │   │   │   ├── BaseTypeContext.cs
│   │   │   │   ├── BaseTypeTracker.cs
│   │   │   │   ├── BuilderPatternCondition.cs
│   │   │   │   ├── BuilderPatternDescriptor.cs
│   │   │   │   ├── ConstantValueFinder.cs
│   │   │   │   ├── ElementAccessContext.cs
│   │   │   │   ├── ElementAccessTracker.cs
│   │   │   │   ├── FieldAccessContext.cs
│   │   │   │   ├── FieldAccessTracker.cs
│   │   │   │   ├── InvocationContext.cs
│   │   │   │   ├── InvocationTracker.cs
│   │   │   │   ├── MemberDescriptor.cs
│   │   │   │   ├── MethodDeclarationContext.cs
│   │   │   │   ├── MethodDeclarationTracker.cs
│   │   │   │   ├── ObjectCreationContext.cs
│   │   │   │   ├── ObjectCreationTracker.cs
│   │   │   │   ├── PropertyAccessContext.cs
│   │   │   │   ├── PropertyAccessTracker.cs
│   │   │   │   ├── SyntaxBaseContext.cs
│   │   │   │   ├── SyntaxTrackerBase.cs
│   │   │   │   ├── TrackerBase.cs
│   │   │   │   └── TrackerInput.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.Shared/
│   │   │   ├── LoggingFrameworkMethods.cs
│   │   │   ├── SonarAnalyzer.Shared.projitems
│   │   │   ├── SonarAnalyzer.Shared.shproj
│   │   │   └── Syntax/
│   │   │       └── Extensions/
│   │   │           ├── MemberAccessExpressionSyntaxExtensionsShared.cs
│   │   │           ├── StatementSyntaxExtensionsShared.cs
│   │   │           ├── SyntaxNodeExtensionsShared.cs
│   │   │           └── SyntaxTokenExtensionsShared.cs
│   │   ├── SonarAnalyzer.ShimLayer/
│   │   │   ├── Common/
│   │   │   │   ├── ISyntaxWrapper.cs
│   │   │   │   └── SyntaxNodeTypes.cs
│   │   │   ├── PartialTypes/
│   │   │   │   ├── BaseNamespaceDeclarationSyntaxWrapper.cs
│   │   │   │   ├── BaseObjectCreationExpressionSyntaxWrapper.cs
│   │   │   │   └── CommonForEachStatementSyntaxWrapper.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.csproj
│   │   │   ├── TemporaryLightUp/
│   │   │   │   ├── LightupHelpers.cs
│   │   │   │   ├── SeparatedSyntaxListWrapper`1.cs
│   │   │   │   ├── SyntaxWrapper`1.cs
│   │   │   │   └── TryGetValueAccessor`3.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.CodeGeneration/
│   │   │   ├── GeneratorSyntaxExtensions.cs
│   │   │   ├── LICENSE
│   │   │   ├── OperationLightupGenerator.cs
│   │   │   ├── RoslynHashCode.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.CodeGeneration.csproj
│   │   │   ├── SyntaxLightupGenerator.cs
│   │   │   ├── XElementExtensions.cs
│   │   │   ├── XmlSyntaxFactory.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.Generator/
│   │   │   ├── Factory.cs
│   │   │   ├── Model/
│   │   │   │   ├── MemberDescriptor.cs
│   │   │   │   ├── ModelBuilder.cs
│   │   │   │   ├── StrategyModel.cs
│   │   │   │   ├── TypeDescriptor.cs
│   │   │   │   └── TypeLoader.cs
│   │   │   ├── ShimLayerGenerator.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.Generator.csproj
│   │   │   ├── Strategies/
│   │   │   │   ├── IOperationStrategy.cs
│   │   │   │   ├── NewEnumStrategy.cs
│   │   │   │   ├── NoChangeStrategy.cs
│   │   │   │   ├── PartialEnumStrategy.cs
│   │   │   │   ├── SeparatedSyntaxListStrategy.cs
│   │   │   │   ├── SkipStrategy.cs
│   │   │   │   ├── Strategy.cs
│   │   │   │   ├── SyntaxNodeExtendStrategy.cs
│   │   │   │   └── SyntaxNodeWrapStrategy.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.ShimLayer.Lightup/
│   │   │   ├── AnalysisContext/
│   │   │   │   ├── CompilationStartAnalysisContextExtensions.cs
│   │   │   │   └── SymbolStartAnalysisContextWrapper.cs
│   │   │   ├── AnalyzerConfigOptionsProviderWrapper.cs
│   │   │   ├── AnalyzerConfigOptionsWrapper.cs
│   │   │   ├── AnalyzerOptionsExtensions.cs
│   │   │   ├── ArgumentSyntaxExtensions.cs
│   │   │   ├── BaseMethodDeclarationSyntaxExtensions.cs
│   │   │   ├── CSharp7.md
│   │   │   ├── CSharp71.md
│   │   │   ├── CSharp72.md
│   │   │   ├── CSharp73.md
│   │   │   ├── CSharp8.md
│   │   │   ├── IFieldSymbolExtensions.cs
│   │   │   ├── INamedTypeSymbolExtensions.cs
│   │   │   ├── ISyntaxWrapper`1.cs
│   │   │   ├── ITypeParameterSymbolExtensions.cs
│   │   │   ├── ITypeSymbolExtensions.cs
│   │   │   ├── LICENSE
│   │   │   ├── LightupHelpers.cs
│   │   │   ├── OperationInterfaces.xml
│   │   │   ├── README.md
│   │   │   ├── SeparatedSyntaxListWrapper`1.cs
│   │   │   ├── Sonar/
│   │   │   │   ├── CaptureId.cs
│   │   │   │   ├── CompilationOptionsWrapper.cs
│   │   │   │   ├── IEventSymbolExtensions.cs
│   │   │   │   ├── IMethodSymbolExtensions.cs
│   │   │   │   ├── INamedTypeSymbolExtensions.Sonar.cs
│   │   │   │   ├── IOperationWrapper.cs
│   │   │   │   ├── IOperationWrapperSonar.cs
│   │   │   │   ├── IPropertySymbolExtensions.cs
│   │   │   │   ├── ISymbolNullableExtensions.cs
│   │   │   │   ├── ITypeSymbolExtension.cs
│   │   │   │   ├── NullabilityInfo.cs
│   │   │   │   ├── SyntaxTreeOptionsProviderWrapper.cs
│   │   │   │   └── TypeInfoExtensions.cs
│   │   │   ├── SonarAnalyzer.ShimLayer.Lightup.csproj
│   │   │   ├── StatementSyntaxExtensions.cs
│   │   │   ├── Syntax.xml
│   │   │   ├── SyntaxFactoryEx.cs
│   │   │   ├── SyntaxFactsEx.cs
│   │   │   ├── SyntaxWrapper`1.cs
│   │   │   ├── TryGetValueAccessor`3.cs
│   │   │   ├── WrapperHelper.cs
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.SourceGenerators/
│   │   │   ├── RuleCatalogGenerator.cs
│   │   │   ├── SonarAnalyzer.SourceGenerators.csproj
│   │   │   └── packages.lock.json
│   │   ├── SonarAnalyzer.VisualBasic/
│   │   │   ├── Metrics/
│   │   │   │   ├── VisualBasicCognitiveComplexityMetric.cs
│   │   │   │   ├── VisualBasicExecutableLinesMetric.cs
│   │   │   │   └── VisualBasicMetrics.cs
│   │   │   ├── Properties/
│   │   │   │   └── AssemblyInfo.cs
│   │   │   ├── Rules/
│   │   │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│   │   │   │   ├── AlwaysSetDateTimeKind.cs
│   │   │   │   ├── ArrayCreationLongSyntax.cs
│   │   │   │   ├── ArrayCreationLongSyntaxCodeFix.cs
│   │   │   │   ├── ArrayDesignatorOnVariable.cs
│   │   │   │   ├── ArrayDesignatorOnVariableCodeFix.cs
│   │   │   │   ├── ArrayInitializationMultipleStatements.cs
│   │   │   │   ├── ArrayPassedAsParams.cs
│   │   │   │   ├── AspNet/
│   │   │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.cs
│   │   │   │   │   └── RouteTemplateShouldNotStartWithSlash.cs
│   │   │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│   │   │   │   ├── AvoidUnsealedAttributes.cs
│   │   │   │   ├── BeginInvokePairedWithEndInvoke.cs
│   │   │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│   │   │   │   ├── BooleanCheckInverted.cs
│   │   │   │   ├── BooleanLiteralUnnecessary.cs
│   │   │   │   ├── BypassingAccessibility.cs
│   │   │   │   ├── CatchRethrow.cs
│   │   │   │   ├── CertificateValidationCheck.cs
│   │   │   │   ├── CheckFileLicense.cs
│   │   │   │   ├── ClassNamedException.cs
│   │   │   │   ├── ClassNotInstantiatable.cs
│   │   │   │   ├── ClassShouldNotBeEmpty.cs
│   │   │   │   ├── CognitiveComplexity.cs
│   │   │   │   ├── CollectionEmptinessChecking.cs
│   │   │   │   ├── CommentKeyword.cs
│   │   │   │   ├── CommentLineEnd.cs
│   │   │   │   ├── CommentsShouldNotBeEmpty.cs
│   │   │   │   ├── ConditionalStructureSameCondition.cs
│   │   │   │   ├── ConditionalStructureSameImplementation.cs
│   │   │   │   ├── ConstructorArgumentValueShouldExist.cs
│   │   │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│   │   │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.cs
│   │   │   │   ├── DateTimeFormatShouldNotBeHardcoded.cs
│   │   │   │   ├── DebuggerDisplayUsesExistingMembers.cs
│   │   │   │   ├── DeclareTypesInNamespaces.cs
│   │   │   │   ├── DoNotCheckZeroSizeCollection.cs
│   │   │   │   ├── DoNotHardcodeCredentials.cs
│   │   │   │   ├── DoNotHardcodeSecrets.cs
│   │   │   │   ├── DoNotInstantiateSharedClasses.cs
│   │   │   │   ├── DoNotLockOnSharedResource.cs
│   │   │   │   ├── DoNotLockWeakIdentityObjects.cs
│   │   │   │   ├── DoNotNestTernaryOperators.cs
│   │   │   │   ├── DoNotOverwriteCollectionElements.cs
│   │   │   │   ├── DoNotThrowFromDestructors.cs
│   │   │   │   ├── DoNotUseByVal.cs
│   │   │   │   ├── DoNotUseByValCodeFix.cs
│   │   │   │   ├── DoNotUseDateTimeNow.cs
│   │   │   │   ├── DoNotUseIIf.cs
│   │   │   │   ├── DoNotUseIIfCodeFix.cs
│   │   │   │   ├── EmptyMethod.cs
│   │   │   │   ├── EmptyNestedBlock.cs
│   │   │   │   ├── EncryptionAlgorithmsShouldBeSecure.cs
│   │   │   │   ├── EndStatementUsage.cs
│   │   │   │   ├── EnumNameHasEnumSuffix.cs
│   │   │   │   ├── EventNameContainsBeforeOrAfter.cs
│   │   │   │   ├── ExceptionsShouldBePublic.cs
│   │   │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustification.cs
│   │   │   │   ├── ExitStatementUsage.cs
│   │   │   │   ├── ExpectedExceptionAttributeShouldNotBeUsed.cs
│   │   │   │   ├── ExpressionComplexity.cs
│   │   │   │   ├── ExtensionMethodShouldNotExtendObject.cs
│   │   │   │   ├── FieldShadowsParentField.cs
│   │   │   │   ├── FieldShouldNotBePublic.cs
│   │   │   │   ├── FileLines.cs
│   │   │   │   ├── FindInsteadOfFirstOrDefault.cs
│   │   │   │   ├── FlagsEnumWithoutInitializer.cs
│   │   │   │   ├── FlagsEnumZeroMember.cs
│   │   │   │   ├── FunctionComplexity.cs
│   │   │   │   ├── FunctionNestingDepth.cs
│   │   │   │   ├── GenericInheritanceShouldNotBeRecursive.cs
│   │   │   │   ├── GotoStatement.cs
│   │   │   │   ├── Hotspots/
│   │   │   │   │   ├── CommandPath.cs
│   │   │   │   │   ├── ConfiguringLoggers.cs
│   │   │   │   │   ├── CreatingHashAlgorithms.cs
│   │   │   │   │   ├── DeliveringDebugFeaturesInProduction.cs
│   │   │   │   │   ├── DisablingRequestValidation.cs
│   │   │   │   │   ├── ExecutingSqlQueries.cs
│   │   │   │   │   ├── ExpandingArchives.cs
│   │   │   │   │   ├── HardcodedIpAddress.cs
│   │   │   │   │   ├── PubliclyWritableDirectories.cs
│   │   │   │   │   ├── RequestsWithExcessiveLength.cs
│   │   │   │   │   ├── SpecifyTimeoutOnRegex.cs
│   │   │   │   │   └── UsingNonstandardCryptography.cs
│   │   │   │   ├── IfChainWithoutElse.cs
│   │   │   │   ├── IfCollapsible.cs
│   │   │   │   ├── ImplementSerializationMethodsCorrectly.cs
│   │   │   │   ├── IndexOfCheckAgainstZero.cs
│   │   │   │   ├── IndexedPropertyWithMultipleParameters.cs
│   │   │   │   ├── InsecureEncryptionAlgorithm.cs
│   │   │   │   ├── InsecureTemporaryFilesCreation.cs
│   │   │   │   ├── InsteadOfAny.cs
│   │   │   │   ├── InvalidCastToInterface.cs
│   │   │   │   ├── JwtSigned.cs
│   │   │   │   ├── LineContinuation.cs
│   │   │   │   ├── LineLength.cs
│   │   │   │   ├── LinkedListPropertiesInsteadOfMethods.cs
│   │   │   │   ├── LooseFilePermissions.cs
│   │   │   │   ├── MarkAssemblyWithAssemblyVersionAttribute.cs
│   │   │   │   ├── MarkAssemblyWithClsCompliantAttribute.cs
│   │   │   │   ├── MarkAssemblyWithComVisibleAttribute.cs
│   │   │   │   ├── MarkWindowsFormsMainWithStaThread.cs
│   │   │   │   ├── MethodOverloadsShouldBeGrouped.cs
│   │   │   │   ├── MethodParameterUnused.cs
│   │   │   │   ├── MethodsShouldNotHaveIdenticalImplementations.cs
│   │   │   │   ├── MethodsShouldNotHaveTooManyLines.cs
│   │   │   │   ├── MultipleVariableDeclaration.cs
│   │   │   │   ├── MultipleVariableDeclarationCodeFix.cs
│   │   │   │   ├── NameOfShouldBeUsed.cs
│   │   │   │   ├── Naming/
│   │   │   │   │   ├── ClassName.cs
│   │   │   │   │   ├── EnumNameShouldFollowRegex.cs
│   │   │   │   │   ├── EnumerationValueName.cs
│   │   │   │   │   ├── EventHandlerName.cs
│   │   │   │   │   ├── EventName.cs
│   │   │   │   │   ├── FieldNameChecker.cs
│   │   │   │   │   ├── FunctionName.cs
│   │   │   │   │   ├── InterfaceName.cs
│   │   │   │   │   ├── LocalVariableName.cs
│   │   │   │   │   ├── NamespaceName.cs
│   │   │   │   │   ├── ParameterName.cs
│   │   │   │   │   ├── PrivateConstantFieldName.cs
│   │   │   │   │   ├── PrivateFieldName.cs
│   │   │   │   │   ├── PrivateSharedReadonlyFieldName.cs
│   │   │   │   │   ├── PropertyName.cs
│   │   │   │   │   ├── PublicConstantFieldName.cs
│   │   │   │   │   ├── PublicFieldName.cs
│   │   │   │   │   ├── PublicSharedReadonlyFieldName.cs
│   │   │   │   │   └── TypeParameterName.cs
│   │   │   │   ├── NegatedIsExpression.cs
│   │   │   │   ├── NegatedIsExpressionCodeFix.cs
│   │   │   │   ├── NoExceptionsInFinally.cs
│   │   │   │   ├── NonAsyncTaskShouldNotReturnNull.cs
│   │   │   │   ├── ObsoleteAttributes.cs
│   │   │   │   ├── OnErrorStatement.cs
│   │   │   │   ├── OptionExplicitOn.cs
│   │   │   │   ├── OptionStrictOn.cs
│   │   │   │   ├── OptionalParameter.cs
│   │   │   │   ├── OptionalParameterNotPassedToBaseCall.cs
│   │   │   │   ├── ParameterAssignedTo.cs
│   │   │   │   ├── ParameterNameMatchesOriginal.cs
│   │   │   │   ├── ParametersCorrectOrder.cs
│   │   │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttribute.cs
│   │   │   │   ├── PreferGuidEmpty.cs
│   │   │   │   ├── PropertiesAccessCorrectField.cs
│   │   │   │   ├── PropertyGetterWithThrow.cs
│   │   │   │   ├── PropertyWithArrayType.cs
│   │   │   │   ├── PropertyWriteOnly.cs
│   │   │   │   ├── ProvideDeserializationMethodsForOptionalFields.cs
│   │   │   │   ├── PublicConstantField.cs
│   │   │   │   ├── PublicMethodWithMultidimensionalArray.cs
│   │   │   │   ├── PureAttributeOnVoidMethod.cs
│   │   │   │   ├── RedundantExitSelect.cs
│   │   │   │   ├── RedundantNullCheck.cs
│   │   │   │   ├── RedundantParentheses.cs
│   │   │   │   ├── RegularExpressions/
│   │   │   │   │   └── RegexMustHaveValidSyntax.cs
│   │   │   │   ├── ReversedOperators.cs
│   │   │   │   ├── SecurityPInvokeMethodShouldNotBeCalled.cs
│   │   │   │   ├── SelfAssignment.cs
│   │   │   │   ├── SetPropertiesInsteadOfMethods.cs
│   │   │   │   ├── ShiftDynamicNotInteger.cs
│   │   │   │   ├── ShouldImplementExportedInterfaces.cs
│   │   │   │   ├── SimpleDoLoop.cs
│   │   │   │   ├── SingleStatementPerLine.cs
│   │   │   │   ├── StringConcatenationInLoop.cs
│   │   │   │   ├── StringConcatenationWithPlus.cs
│   │   │   │   ├── StringConcatenationWithPlusCodeFix.cs
│   │   │   │   ├── StringLiteralShouldNotBeDuplicated.cs
│   │   │   │   ├── SwitchCasesMinimumThree.cs
│   │   │   │   ├── SwitchSectionShouldNotHaveTooManyStatements.cs
│   │   │   │   ├── SwitchShouldNotBeNested.cs
│   │   │   │   ├── SwitchWithoutDefault.cs
│   │   │   │   ├── TabCharacter.cs
│   │   │   │   ├── TestsShouldNotUseThreadSleep.cs
│   │   │   │   ├── ThreadResumeOrSuspendShouldNotBeCalled.cs
│   │   │   │   ├── ThrowReservedExceptions.cs
│   │   │   │   ├── ToStringShouldNotReturnNull.cs
│   │   │   │   ├── TooManyLabelsInSwitch.cs
│   │   │   │   ├── TooManyParameters.cs
│   │   │   │   ├── UnaryPrefixOperatorRepeated.cs
│   │   │   │   ├── UnconditionalJumpStatement.cs
│   │   │   │   ├── UnnecessaryBitwiseOperation.cs
│   │   │   │   ├── UnnecessaryBitwiseOperationCodeFix.cs
│   │   │   │   ├── UnsignedTypesUsage.cs
│   │   │   │   ├── UnusedStringBuilder.cs
│   │   │   │   ├── UriShouldNotBeHardcoded.cs
│   │   │   │   ├── UseCharOverloadOfStringMethods.cs
│   │   │   │   ├── UseDateTimeOffsetInsteadOfDateTime.cs
│   │   │   │   ├── UseFindSystemTimeZoneById.cs
│   │   │   │   ├── UseIFormatProviderForParsingDateAndTime.cs
│   │   │   │   ├── UseIndexingInsteadOfLinqMethods.cs
│   │   │   │   ├── UseLambdaParameterInConcurrentDictionary.cs
│   │   │   │   ├── UseReturnStatement.cs
│   │   │   │   ├── UseShortCircuitingOperator.cs
│   │   │   │   ├── UseShortCircuitingOperatorCodeFix.cs
│   │   │   │   ├── UseTestableTimeProvider.cs
│   │   │   │   ├── UseTrueForAll.cs
│   │   │   │   ├── UseUnixEpoch.cs
│   │   │   │   ├── UseUnixEpochCodeFix.cs
│   │   │   │   ├── UseWhereBeforeOrderBy.cs
│   │   │   │   ├── UseWithStatement.cs
│   │   │   │   ├── Utilities/
│   │   │   │   │   ├── AnalysisWarningAnalyzer.cs
│   │   │   │   │   ├── CopyPasteTokenAnalyzer.cs
│   │   │   │   │   ├── FileMetadataAnalyzer.cs
│   │   │   │   │   ├── LogAnalyzer.cs
│   │   │   │   │   ├── MetricsAnalyzer.cs
│   │   │   │   │   ├── SymbolReferenceAnalyzer.cs
│   │   │   │   │   ├── TelemetryAnalyzer.cs
│   │   │   │   │   ├── TestMethodDeclarationsAnalyzer.cs
│   │   │   │   │   └── TokenTypeAnalyzer.cs
│   │   │   │   ├── ValueTypeShouldImplementIEquatable.cs
│   │   │   │   ├── VariableUnused.cs
│   │   │   │   ├── WcfNonVoidOneWay.cs
│   │   │   │   └── WeakSslTlsProtocols.cs
│   │   │   ├── SonarAnalyzer.VisualBasic.csproj
│   │   │   ├── packages.lock.json
│   │   │   └── sonarpedia.json
│   │   └── SonarAnalyzer.VisualBasic.Core/
│   │       ├── Common/
│   │       │   └── DescriptorFactory.cs
│   │       ├── Extensions/
│   │       │   ├── ICompilationReportExtensions.cs
│   │       │   ├── ISymbolExtensions.cs
│   │       │   ├── SonarAnalysisContextExtensions.cs
│   │       │   ├── SonarCompilationStartAnalysisContextExtensions.cs
│   │       │   ├── SonarParametrizedAnalysisContextExtensions.cs
│   │       │   └── SonarSyntaxNodeReportingContextExtensions.cs
│   │       ├── Facade/
│   │       │   ├── Implementation/
│   │       │   │   ├── VisualBasicSyntaxFacade.cs
│   │       │   │   ├── VisualBasicSyntaxKindFacade.cs
│   │       │   │   └── VisualBasicTrackerFacade.cs
│   │       │   └── VisualBasicFacade.cs
│   │       ├── Properties/
│   │       │   └── AssemblyInfo.cs
│   │       ├── SonarAnalyzer.VisualBasic.Core.csproj
│   │       ├── Syntax/
│   │       │   ├── Extensions/
│   │       │   │   ├── ArgumentListSyntaxExtensions.cs
│   │       │   │   ├── ArgumentSyntaxExtensions.cs
│   │       │   │   ├── AttributeSyntaxExtensions.cs
│   │       │   │   ├── ExpressionSyntaxExtensions.Roslyn.cs
│   │       │   │   ├── ExpressionSyntaxExtensions.cs
│   │       │   │   ├── InterpolatedStringExpressionSyntaxExtensions.cs
│   │       │   │   ├── InvocationExpressionSyntaxExtensions.cs
│   │       │   │   ├── MemberAccessExpressionSyntaxExtensions.cs
│   │       │   │   ├── MethodBlockBaseSyntaxExtensions.cs
│   │       │   │   ├── MethodBlockSyntaxExtensions.cs
│   │       │   │   ├── ObjectCreationExpressionSyntaxExtensions.cs
│   │       │   │   ├── StatementSyntaxExtensions.cs
│   │       │   │   ├── SyntaxNodeExtensions.Roslyn.cs
│   │       │   │   ├── SyntaxNodeExtensionsVisualBasic.cs
│   │       │   │   ├── SyntaxTokenExtensions.cs
│   │       │   │   ├── SyntaxTriviaExtensions.cs
│   │       │   │   └── VisualBasicCompilationExtensions.cs
│   │       │   └── Utilities/
│   │       │       ├── SafeVisualBasicSyntaxWalker.cs
│   │       │       ├── VisualBasicAttributeParameterLookup.cs
│   │       │       ├── VisualBasicEquivalenceChecker.cs
│   │       │       ├── VisualBasicExpressionNumericConverter.cs
│   │       │       ├── VisualBasicGeneratedCodeRecognizer.cs
│   │       │       ├── VisualBasicMethodParameterLookup.cs
│   │       │       ├── VisualBasicRemovableDeclarationCollector.cs
│   │       │       ├── VisualBasicStringInterpolationConstantValueResolver.cs
│   │       │       └── VisualBasicSyntaxClassifier.cs
│   │       ├── Trackers/
│   │       │   ├── VisualBasicArgumentTracker.cs
│   │       │   ├── VisualBasicAssignmentFinder.cs
│   │       │   ├── VisualBasicBaseTypeTracker.cs
│   │       │   ├── VisualBasicBuilderPatternCondition.cs
│   │       │   ├── VisualBasicConstantValueFinder.cs
│   │       │   ├── VisualBasicElementAccessTracker.cs
│   │       │   ├── VisualBasicFieldAccessTracker.cs
│   │       │   ├── VisualBasicInvocationTracker.cs
│   │       │   ├── VisualBasicMethodDeclarationTracker.cs
│   │       │   ├── VisualBasicObjectCreationTracker.cs
│   │       │   └── VisualBasicPropertyAccessTracker.cs
│   │       └── packages.lock.json
│   ├── stylecop.json
│   └── tests/
│       ├── Directory.Build.targets
│       ├── FrameworkMocks/
│       │   └── src/
│       │       ├── Directory.Build.targets
│       │       ├── Mocks.sln
│       │       ├── Mscorlib3.5Mock/
│       │       │   ├── Debugger.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       ├── Mscorlib4.0Mock/
│       │       │   ├── Debugger.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       ├── Mscorlib4.0MockWithIo/
│       │       │   ├── Debugger.cs
│       │       │   ├── UnmanagedMemoryStream.cs
│       │       │   ├── mscorlib.csproj
│       │       │   └── packages.lock.json
│       │       └── Mscorlib4.8Mock/
│       │           ├── Debugger.cs
│       │           ├── UnmanagedMemoryStream.cs
│       │           ├── mscorlib.csproj
│       │           └── packages.lock.json
│       ├── SonarAnalyzer.CSharp.Core.Test/
│       │   ├── Extensions/
│       │   │   ├── BaseArgumentListSyntaxExtensionsTest.cs
│       │   │   ├── BaseMethodDeclarationSyntaxExtensionsTest.cs
│       │   │   ├── ISymbolExtensionsTest.cs
│       │   │   ├── TypeDeclarationSyntaxExtensionsTest.cs
│       │   │   └── TypeSyntaxExtensionsTest.cs
│       │   ├── Facade/
│       │   │   ├── CSharpFacadeTest.cs
│       │   │   └── Implementation/
│       │   │       └── CSharpSyntaxFacadeTest.cs
│       │   ├── RegularExpressions/
│       │   │   └── MessageTemplateParserTest.cs
│       │   ├── SonarAnalyzer.CSharp.Core.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── ArgumentSyntaxExtensionsTest.cs
│       │   │   │   ├── AssignmentExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── AttributeDataExtensionsTest.cs
│       │   │   │   ├── AttributeSyntaxExtensionsTest.cs
│       │   │   │   ├── AwaitExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── BlockSyntaxExtensionsTest.cs
│       │   │   │   ├── DiagnosticDescriptorExtensionsTest.cs
│       │   │   │   ├── ExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── ITupleOperationWrapperExtensionsTest.cs
│       │   │   │   ├── InterpolatedStringExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── InvocationExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── ObjectCreationExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── PatternSyntaxWrapperExtensionsTest.cs
│       │   │   │   ├── PropertyDeclarationSyntaxExtensionsTest.cs
│       │   │   │   ├── StatementSyntaxExtensionsTest.cs
│       │   │   │   ├── SyntaxNodeExtensionsCSharpTest.cs
│       │   │   │   ├── SyntaxTokenExtensionsTest.cs
│       │   │   │   ├── SyntaxTreeExtensionsTest.cs
│       │   │   │   ├── TupleExpressionSyntaxExtensionsTest.cs
│       │   │   │   ├── TypeExtensionsTest.cs
│       │   │   │   └── VariableDesignationSyntaxWrapperTest.cs
│       │   │   └── Utilities/
│       │   │       └── SafeCSharpSyntaxWalkerTest.cs
│       │   ├── Trackers/
│       │   │   └── FieldAccessTrackerTest.cs
│       │   ├── Wrappers/
│       │   │   ├── MethodDeclarationFactoryTest.cs
│       │   │   └── ObjectCreationFactoryTest.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.CSharp.Styling.Test/
│       │   ├── Common/
│       │   │   ├── StylingRuleTest.cs
│       │   │   └── StylingVerifierBuilder.cs
│       │   ├── Rules/
│       │   │   ├── AllArgumentsOnSameLineTest.cs
│       │   │   ├── AllParametersOnSameColumnTest.cs
│       │   │   ├── AllParametersOnSameLineTest.cs
│       │   │   ├── ArrowLocationTest.cs
│       │   │   ├── AvoidArrangeActAssertCommentTest.cs
│       │   │   ├── AvoidDeconstructionTest.cs
│       │   │   ├── AvoidGetTest.cs
│       │   │   ├── AvoidListForEachTest.cs
│       │   │   ├── AvoidNullableTest.cs
│       │   │   ├── AvoidPrimaryConstructorTest.cs
│       │   │   ├── AvoidUnusedInterpolationTest.cs
│       │   │   ├── AvoidValueTupleTest.cs
│       │   │   ├── AvoidVarPatternTest.cs
│       │   │   ├── FieldOrderingTest.cs
│       │   │   ├── FileScopeNamespaceTest.cs
│       │   │   ├── HelperInTypeNameTest.cs
│       │   │   ├── IndentArgumentTest.cs
│       │   │   ├── IndentInvocationTest.cs
│       │   │   ├── IndentOperatorTest.cs
│       │   │   ├── IndentRawStringTest.cs
│       │   │   ├── IndentTernaryTest.cs
│       │   │   ├── InitializerLineTest.cs
│       │   │   ├── LambdaParameterNameTest.cs
│       │   │   ├── LocalFunctionLocationTest.cs
│       │   │   ├── MemberAccessLineTest.cs
│       │   │   ├── MemberVisibilityOrderingTest.cs
│       │   │   ├── MethodExpressionBodyLineTest.cs
│       │   │   ├── MoveMethodToDedicatedExtensionClassTest.cs
│       │   │   ├── NamespaceNameTest.cs
│       │   │   ├── NullPatternMatchingTest.cs
│       │   │   ├── OperatorLocationTest.cs
│       │   │   ├── PropertyOrderingTest.cs
│       │   │   ├── ProtectedFieldsCaseTest.cs
│       │   │   ├── SeparateDeclarationsTest.cs
│       │   │   ├── TernaryLineTest.cs
│       │   │   ├── TypeMemberOrderingTest.cs
│       │   │   ├── UseDifferentMemberTest.cs
│       │   │   ├── UseFieldTest.cs
│       │   │   ├── UseInnermostRegistrationContextTest.cs
│       │   │   ├── UseLinqExtensionsTest.cs
│       │   │   ├── UseNullInsteadOfDefaultTest.cs
│       │   │   ├── UsePositiveLogicTest.cs
│       │   │   ├── UseRawStringTest.cs
│       │   │   ├── UseRegexSafeIsMatchTest.cs
│       │   │   ├── UseShortNameTest.cs
│       │   │   └── UseVarTest.cs
│       │   ├── SonarAnalyzer.CSharp.Styling.Test.csproj
│       │   ├── TestCases/
│       │   │   ├── AllArgumentsOnSameLine.cs
│       │   │   ├── AllParametersOnSameColumn.cs
│       │   │   ├── AllParametersOnSameLine.cs
│       │   │   ├── ArrowLocation.cs
│       │   │   ├── AvoidArrangeActAssertComment.cs
│       │   │   ├── AvoidDeconstruction.TopLevelStatements.cs
│       │   │   ├── AvoidDeconstruction.cs
│       │   │   ├── AvoidGet.cs
│       │   │   ├── AvoidListForEach.cs
│       │   │   ├── AvoidNullable.cs
│       │   │   ├── AvoidPrimaryConstructor.cs
│       │   │   ├── AvoidUnusedInterpolation.cs
│       │   │   ├── AvoidValueTuple.cs
│       │   │   ├── AvoidVarPattern.cs
│       │   │   ├── FieldOrdering.cs
│       │   │   ├── FileScopeNamespace.Compliant.cs
│       │   │   ├── FileScopeNamespace.cs
│       │   │   ├── HelperInTypeName.cs
│       │   │   ├── IndentArgument.cs
│       │   │   ├── IndentInvocation.cs
│       │   │   ├── IndentOperator.cs
│       │   │   ├── IndentRawString.cs
│       │   │   ├── IndentTernary.cs
│       │   │   ├── InitializerLine.cs
│       │   │   ├── LambdaParameterName.cs
│       │   │   ├── LocalFunctionLocation.TopLevelStatements.cs
│       │   │   ├── LocalFunctionLocation.cs
│       │   │   ├── MemberAccessLine.cs
│       │   │   ├── MemberVisibilityOrdering.cs
│       │   │   ├── MethodExpressionBodyLine.cs
│       │   │   ├── MoveMethodToDedicatedExtensionClass.cs
│       │   │   ├── NullPatternMatching.cs
│       │   │   ├── OperatorLocation.cs
│       │   │   ├── PropertyOrdering.cs
│       │   │   ├── ProtectedFieldsCase.cs
│       │   │   ├── SeparateDeclarations.cs
│       │   │   ├── TernaryLine.cs
│       │   │   ├── TypeMemberOrdering.cs
│       │   │   ├── UseDifferentMember.cs
│       │   │   ├── UseField.cs
│       │   │   ├── UseInnermostRegistrationContext.cs
│       │   │   ├── UseLinqExtensions.cs
│       │   │   ├── UseNullInsteadOfDefault.cs
│       │   │   ├── UsePositiveLogic.cs
│       │   │   ├── UseRawString.cs
│       │   │   ├── UseRegexSafeIsMatch.cs
│       │   │   ├── UseShortName.cs
│       │   │   └── UseVar.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Core.Test/
│       │   ├── AnalysisContext/
│       │   │   ├── IssueReporterTest.cs
│       │   │   ├── SonarCodeBlockReportingContextTest.cs
│       │   │   ├── SonarCodeBlockStartAnalysisContextTest.cs
│       │   │   ├── SonarCodeFixContextTest.cs
│       │   │   ├── SonarCompilationReportingContextTest.cs
│       │   │   ├── SonarCompilationStartAnalysisContextTest.cs
│       │   │   ├── SonarSemanticModelReportingContextTest.cs
│       │   │   ├── SonarSymbolReportingContextTest.cs
│       │   │   ├── SonarSyntaxNodeReportingContextTest.cs
│       │   │   └── SonarSyntaxTreeReportingContextTest.cs
│       │   ├── Analyzers/
│       │   │   └── DiagnosticDescriptorFactoryTest.cs
│       │   ├── Common/
│       │   │   ├── AnalyzerAdditionalFileTest.cs
│       │   │   ├── AnalyzerConfigurationTest.cs
│       │   │   ├── AnalyzerLanguageTest.cs
│       │   │   ├── BidirectionalDictionaryTest.cs
│       │   │   ├── DisjointSetsTest.cs
│       │   │   ├── FixAllProviders/
│       │   │   │   └── DocumentBasedFixAllProviderTest.cs
│       │   │   ├── HashCodeTest.cs
│       │   │   ├── MultiValueDictionaryTest.cs
│       │   │   ├── NaturalLanguageDetectorTest.cs
│       │   │   ├── RuleLoaderTest.cs
│       │   │   ├── ShannonEntropyTest.cs
│       │   │   └── UnexpectedLanguageExceptionTest.cs
│       │   ├── Configuration/
│       │   │   ├── AnalysisConfigReaderTest.cs
│       │   │   ├── FilesToAnalyzeProviderTest.cs
│       │   │   ├── ProjectConfigReaderTest.cs
│       │   │   ├── ProjectTypeCacheTest.cs
│       │   │   ├── SonarLintXmlReaderTest.cs
│       │   │   └── SonarLintXmlTest.cs
│       │   ├── Extensions/
│       │   │   ├── BasicBlockExtensionsTest.cs
│       │   │   ├── CompilationExtensionsTest.cs
│       │   │   ├── ControlFlowGraphExtensionsTest.cs
│       │   │   ├── DictionaryExtensionsTest.cs
│       │   │   ├── IEnumerableExtensionsTest.cs
│       │   │   ├── IXmlLineInfoExtensionsTest.cs
│       │   │   ├── RegexExtensionsTest.cs
│       │   │   └── XAttributeExtensionsTest.cs
│       │   ├── Json/
│       │   │   ├── JsonNodeTest.cs
│       │   │   ├── JsonSerializerTest.cs
│       │   │   ├── JsonWalkerTest.cs
│       │   │   ├── LexicalAnalyzerTest.cs
│       │   │   └── SyntaxAnalyzerTest.cs
│       │   ├── RegularExpressions/
│       │   │   ├── RegexContextTest.cs
│       │   │   └── WildcardPatternMatcherTest.cs
│       │   ├── Semantics/
│       │   │   ├── Extensions/
│       │   │   │   ├── IMethodSymbolExtensionsTest.cs
│       │   │   │   ├── INamedTypeSymbolExtensionsTest.cs
│       │   │   │   ├── INamespaceSymbolExtensionsTest.cs
│       │   │   │   ├── IParameterSymbolExtensionsTest.cs
│       │   │   │   ├── IPropertySymbolExtensionsTest.cs
│       │   │   │   ├── ISymbolExtensionsTest.cs
│       │   │   │   └── ITypeSymbolExtensionsTest.cs
│       │   │   ├── KnownAssemblyTest.cs
│       │   │   ├── KnownMethodsTest.cs
│       │   │   ├── KnownTypeTest.cs
│       │   │   └── NetFrameworkVersionProviderTest.cs
│       │   ├── SonarAnalyzer.Core.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── ComparisonKindExtensionsTest.cs
│       │   │   │   ├── CountComparisonResultExtensionsTest.cs
│       │   │   │   ├── LocationExtensionsTest.cs
│       │   │   │   ├── SyntaxNodeExtensionsTest.cs
│       │   │   │   └── SyntaxTokenExtensionsTest.cs
│       │   │   └── Utilities/
│       │   │       ├── GeneratedCodeRecognizerTest.cs
│       │   │       └── VisualIndentComparerTest.cs
│       │   ├── TestResources/
│       │   │   ├── FilesToAnalyze/
│       │   │   │   ├── EmptyFilesToAnalyze.txt
│       │   │   │   ├── FilesToAnalyze.txt
│       │   │   │   └── FilesToAnalyzeWithInvalidValues.txt
│       │   │   ├── SonarLintXml/
│       │   │   │   ├── All_properties_cs/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── All_properties_vbnet/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Duplicated_Properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Incorrect_value_type/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Missing_properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   ├── Partially_missing_properties/
│       │   │   │   │   └── SonarLint.xml
│       │   │   │   └── PropertiesCSharpTrueVbnetFalse/
│       │   │   │       └── SonarLint.xml
│       │   │   └── SonarProjectConfig/
│       │   │       ├── Invalid_DifferentClassName/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Invalid_DifferentNamespace/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Invalid_Xml/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingAnalysisConfigPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingFilesToAnalyzePath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingOutPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingProjectPath/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingProjectType/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── MissingTargetFramework/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_MixedSeparators/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_Unix/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       ├── Path_Windows/
│       │   │       │   └── SonarProjectConfig.xml
│       │   │       └── UnexpectedProjectTypeValue/
│       │   │           └── SonarProjectConfig.xml
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Memory.Test/
│       │   ├── DotMemorySetupTest.cs
│       │   ├── MSTestSettings.cs
│       │   ├── Registrations/
│       │   │   └── SonarSyntaxNodeReportingContextMemoryTest.cs
│       │   ├── RunMemoryTest.ps1
│       │   ├── SonarAnalyzer.Memory.Test.csproj
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.ShimLayer.Generator.Test/
│       │   ├── FactoryTest.cs
│       │   ├── Model/
│       │   │   ├── ModelBuilderTest.cs
│       │   │   └── TypeLoaderTest.cs
│       │   ├── Snapshots/
│       │   │   ├── Snap#AccessorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AliasQualifiedNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AllowsConstraintClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AllowsConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AnonymousFunctionExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#AnonymousMethodExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ArgumentKind.g.cs.verified.cs
│       │   │   ├── Snap#ArgumentSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ArrayTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseExpressionColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseMethodDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseNamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseObjectCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BaseParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BasicBlockKind.g.cs.verified.cs
│       │   │   ├── Snap#BinaryOperatorKind.g.cs.verified.cs
│       │   │   ├── Snap#BinaryPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BlockSyntax.g.cs.verified.cs
│       │   │   ├── Snap#BranchKind.g.cs.verified.cs
│       │   │   ├── Snap#BreakStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CaseKind.g.cs.verified.cs
│       │   │   ├── Snap#CasePatternSwitchLabelSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CheckedStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ClassDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ClassOrStructConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CollectionElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CollectionExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CommonForEachStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConstantPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConstructorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ContinueStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowBranchSemantics.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowConditionKind.g.cs.verified.cs
│       │   │   ├── Snap#ControlFlowRegionKind.g.cs.verified.cs
│       │   │   ├── Snap#ConversionOperatorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ConversionOperatorMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#CrefParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DeclarationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DeclarationPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DefaultConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DestructorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DiscardDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DiscardPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#DoStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EmptyStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EnumMemberDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#EventDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionOrPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExpressionStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExtensionBlockDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ExtensionMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FieldExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FileScopedNamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FixedStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForEachStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForEachVariableStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ForStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerCallingConventionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerParameterListSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerParameterSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerUnmanagedCallingConventionListSyntax.g.cs.verified.cs
│       │   │   ├── Snap#FunctionPointerUnmanagedCallingConventionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GeneratedKind.g.cs.verified.cs
│       │   │   ├── Snap#GenericNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GlobalStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#GotoStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IAddressOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAnonymousFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAnonymousObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArgumentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayElementReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IArrayInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAttributeOperation.g.cs.verified.cs
│       │   │   ├── Snap#IAwaitOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBinaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBinaryPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBlockOperation.g.cs.verified.cs
│       │   │   ├── Snap#IBranchOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICatchClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICaughtExceptionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICoalesceAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICoalesceOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICollectionElementInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICollectionExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ICompoundAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalAccessInstanceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConditionalOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConstantPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConstructorBodyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IConversionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeclarationExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeclarationPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDeconstructionAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDefaultCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDefaultValueOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDelegateCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDiscardOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDiscardPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicIndexerAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicMemberReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IDynamicObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEmptyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEndOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEventAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IEventReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IExpressionStatementOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFieldInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFieldReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowAnonymousFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowCaptureOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFlowCaptureReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForEachLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IForToLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IFunctionPointerInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IImplicitIndexerReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIncrementOrDecrementOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInlineArrayAccessOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInstanceReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringAdditionOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringAppendOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringContentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringHandlerArgumentPlaceholderOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringHandlerCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolatedStringTextOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInterpolationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInvalidOperation.g.cs.verified.cs
│       │   │   ├── Snap#IInvocationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsNullOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IIsTypeOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILabeledOperation.g.cs.verified.cs
│       │   │   ├── Snap#IListPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILiteralOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILocalFunctionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILocalReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILockOperation.g.cs.verified.cs
│       │   │   ├── Snap#ILoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMemberInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMemberReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodBodyBaseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodBodyOperation.g.cs.verified.cs
│       │   │   ├── Snap#IMethodReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#INameOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#INegatedPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IObjectOrCollectionInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IOmittedArgumentOperation.g.cs.verified.cs
│       │   │   ├── Snap#IOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParameterInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParameterReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IParenthesizedOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPatternCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertyInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertyReferenceOperation.g.cs.verified.cs
│       │   │   ├── Snap#IPropertySubpatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRaiseEventOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRangeCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRangeOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReDimClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReDimOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRecursivePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRelationalCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#IRelationalPatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IReturnOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISimpleAssignmentOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISingleValueCaseClauseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISizeOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISlicePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISpreadOperation.g.cs.verified.cs
│       │   │   ├── Snap#IStaticLocalInitializationSemaphoreOperation.g.cs.verified.cs
│       │   │   ├── Snap#IStopOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchCaseOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchExpressionArmOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchExpressionOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISwitchOperation.g.cs.verified.cs
│       │   │   ├── Snap#ISymbolInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IThrowOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITranslatedQueryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITupleBinaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITupleOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypeOfOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypeParameterObjectCreationOperation.g.cs.verified.cs
│       │   │   ├── Snap#ITypePatternOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUnaryOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUsingDeclarationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUsingOperation.g.cs.verified.cs
│       │   │   ├── Snap#IUtf8StringOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclarationGroupOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclarationOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableDeclaratorOperation.g.cs.verified.cs
│       │   │   ├── Snap#IVariableInitializerOperation.g.cs.verified.cs
│       │   │   ├── Snap#IWhileLoopOperation.g.cs.verified.cs
│       │   │   ├── Snap#IWithOperation.g.cs.verified.cs
│       │   │   ├── Snap#IdentifierNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IfStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IgnoredDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ImplicitObjectCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ImplicitStackAllocArrayCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#IncrementalGeneratorOutputKind.g.cs.verified.cs
│       │   │   ├── Snap#IncrementalStepRunReason.g.cs.verified.cs
│       │   │   ├── Snap#InstanceReferenceKind.g.cs.verified.cs
│       │   │   ├── Snap#InstrumentationKind.g.cs.verified.cs
│       │   │   ├── Snap#InterfaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#InterpolatedStringArgumentPlaceholderKind.g.cs.verified.cs
│       │   │   ├── Snap#IsPatternExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LabeledStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LanguageVersion.g.cs.verified.cs
│       │   │   ├── Snap#LineDirectivePositionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LineOrSpanDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LineSpanDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ListPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LocalDeclarationStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LocalFunctionStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LockStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#LoopKind.g.cs.verified.cs
│       │   │   ├── Snap#MemberDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#MetadataImportOptions.g.cs.verified.cs
│       │   │   ├── Snap#MethodKind.g.cs.verified.cs
│       │   │   ├── Snap#NameColonSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NamespaceDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NullableAnnotation.g.cs.verified.cs
│       │   │   ├── Snap#NullableContext.g.cs.verified.cs
│       │   │   ├── Snap#NullableContextOptions.g.cs.verified.cs
│       │   │   ├── Snap#NullableDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#NullableFlowState.g.cs.verified.cs
│       │   │   ├── Snap#NullableTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OmittedTypeArgumentSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OperationKind.g.cs.verified.cs
│       │   │   ├── Snap#OperatorDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#OperatorMemberCrefSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedLambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ParenthesizedVariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#Platform.g.cs.verified.cs
│       │   │   ├── Snap#PointerTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PositionalPatternClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PredefinedTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PrimaryConstructorBaseTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#PropertyPatternClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#QualifiedNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RangeExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RecordDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RecursivePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefKind.g.cs.verified.cs
│       │   │   ├── Snap#RefStructConstraintSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RefTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RelationalPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ReturnStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#RuntimeCapability.g.cs.verified.cs
│       │   │   ├── Snap#SarifVersion.g.cs.verified.cs
│       │   │   ├── Snap#ScopedKind.g.cs.verified.cs
│       │   │   ├── Snap#ScopedTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SemanticEditKind.g.cs.verified.cs
│       │   │   ├── Snap#SemanticModelOptions.g.cs.verified.cs
│       │   │   ├── Snap#ShebangDirectiveTriviaSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SimpleLambdaExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SimpleNameSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SingleVariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SlicePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SpecialType.g.cs.verified.cs
│       │   │   ├── Snap#SpreadElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StackAllocArrayCreationExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#StructDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SubpatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchExpressionArmSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SwitchStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayLocalOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayMemberOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayMiscellaneousOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayParameterOptions.g.cs.verified.cs
│       │   │   ├── Snap#SymbolDisplayPartKind.g.cs.verified.cs
│       │   │   ├── Snap#SymbolKind.g.cs.verified.cs
│       │   │   ├── Snap#SyntaxKind.g.cs.verified.cs
│       │   │   ├── Snap#ThrowExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#ThrowStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TryStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleElementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleExpressionSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TupleTypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeDeclarationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeKind.g.cs.verified.cs
│       │   │   ├── Snap#TypePatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#TypeSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UnaryOperatorKind.g.cs.verified.cs
│       │   │   ├── Snap#UnaryPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UnsafeStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UsingDirectiveSyntax.g.cs.verified.cs
│       │   │   ├── Snap#UsingStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#VarPatternSyntax.g.cs.verified.cs
│       │   │   ├── Snap#VariableDesignationSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WhenClauseSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WhileStatementSyntax.g.cs.verified.cs
│       │   │   ├── Snap#WithExpressionSyntax.g.cs.verified.cs
│       │   │   └── Snap#YieldStatementSyntax.g.cs.verified.cs
│       │   ├── SonarAnalyzer.ShimLayer.Generator.Test.csproj
│       │   ├── Strategies/
│       │   │   ├── NewEnumStrategyTest.cs
│       │   │   ├── NoChangeStrategyTest.cs
│       │   │   ├── PartialEnumStrategyTest.cs
│       │   │   ├── SkipStrategyTest.cs
│       │   │   ├── SyntaxNodeExtendStrategyTest.cs
│       │   │   └── SyntaxNodeWrapStrategyTest.cs
│       │   └── packages.lock.json
│       ├── SonarAnalyzer.Test/
│       │   ├── AnalysisContext/
│       │   │   ├── SonarAnalysisContextBaseTest.ShouldAnalyzeTree.cs
│       │   │   ├── SonarAnalysisContextBaseTest.cs
│       │   │   ├── SonarAnalysisContextTest.Parametrized.cs
│       │   │   ├── SonarAnalysisContextTest.Register.cs
│       │   │   └── SonarAnalysisContextTest.cs
│       │   ├── CFG/
│       │   │   ├── CfgSerializer/
│       │   │   │   └── DotWriterTest.cs
│       │   │   ├── Extensions/
│       │   │   │   └── IOperationExtensionsTest.cs
│       │   │   ├── Roslyn/
│       │   │   │   ├── BasicBlockTest.cs
│       │   │   │   ├── CaptureIdTest.cs
│       │   │   │   ├── CfgAllPathValidatorTest.cs
│       │   │   │   ├── ControlFlowBranchTest.cs
│       │   │   │   ├── ControlFlowRegionTest.cs
│       │   │   │   ├── RoslynCfgSerializerTest.cs
│       │   │   │   ├── RoslynControlFlowGraphTest.cs
│       │   │   │   └── RoslynLvaSerializerTest.cs
│       │   │   └── Sonar/
│       │   │       ├── BlockIdProviderTest.cs
│       │   │       ├── SonarCfgSerializerTest.cs
│       │   │       └── SonarControlFlowGraphTest.cs
│       │   ├── Common/
│       │   │   ├── ConcurrentExecutionTest.cs
│       │   │   ├── MetricsTest.cs
│       │   │   ├── ParameterLoaderTest.cs
│       │   │   ├── RuleCatalogTest.cs
│       │   │   ├── SecurityHotspotTest.cs
│       │   │   ├── UnchangedFilesTest.cs
│       │   │   ├── UniqueQueueTest.cs
│       │   │   └── XUnitVersions.cs
│       │   ├── Extensions/
│       │   │   ├── ICompilationReportExtensionsTests.cs
│       │   │   ├── StringExtensionsTest.cs
│       │   │   ├── SyntaxNodeExtensionsTest.cs
│       │   │   └── SyntaxTokenExtensionsSharedTest.cs
│       │   ├── LiveVariableAnalysis/
│       │   │   ├── RoslynLiveVariableAnalysisTest.FlowCaptureOperation.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.LocalFunction.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.TryCatchFinally.cs
│       │   │   ├── RoslynLiveVariableAnalysisTest.cs
│       │   │   └── SonarLiveVariableAnalysisTest.cs
│       │   ├── Metrics/
│       │   │   ├── CSharpExecutableLinesMetricTest.cs
│       │   │   └── VisualBasicExecutableLinesMetricTest.cs
│       │   ├── Operations/
│       │   │   └── Utilities/
│       │   │       ├── OperationExecutionOrderTest.cs
│       │   │       └── OperationFinderTest.cs
│       │   ├── Rules/
│       │   │   ├── AbstractClassToInterfaceTest.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructorsTest.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementationTest.cs
│       │   │   ├── AlwaysSetDateTimeKindTest.cs
│       │   │   ├── AnonymousDelegateEventUnsubscribeTest.cs
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameterTest.cs
│       │   │   ├── ArrayCovarianceTest.cs
│       │   │   ├── ArrayCreationLongSyntaxTest.cs
│       │   │   ├── ArrayDesignatorOnVariableTest.cs
│       │   │   ├── ArrayInitializationMultipleStatementsTest.cs
│       │   │   ├── ArrayPassedAsParamsTest.cs
│       │   │   ├── AspNet/
│       │   │   │   ├── AnnotateApiActionsWithHttpVerbTest.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerTest.cs
│       │   │   │   ├── AvoidUnderPostingTest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutesTest.cs
│       │   │   │   ├── CallModelStateIsValidTest.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilitiesTest.cs
│       │   │   │   ├── ControllersReuseClientTest.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlashTest.cs
│       │   │   │   ├── SpecifyRouteAttributeTest.cs
│       │   │   │   └── UseAspNetModelBindingTest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrderTest.cs
│       │   │   ├── AssertionsShouldBeCompleteTest.cs
│       │   │   ├── AssignmentInsideSubExpressionTest.cs
│       │   │   ├── AsyncAwaitIdentifierTest.cs
│       │   │   ├── AsyncVoidMethodTest.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarkingTest.cs
│       │   │   ├── AvoidExcessiveClassCouplingTest.cs
│       │   │   ├── AvoidExcessiveInheritanceTest.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazorTest.cs
│       │   │   ├── AvoidUnsealedAttributesTest.cs
│       │   │   ├── BeginInvokePairedWithEndInvokeTest.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressionsTest.cs
│       │   │   ├── BlazorQueryParameterRoutableComponentTest.cs
│       │   │   ├── BooleanCheckInvertedTest.cs
│       │   │   ├── BooleanLiteralUnnecessaryTest.cs
│       │   │   ├── BreakOutsideSwitchTest.cs
│       │   │   ├── BypassingAccessibilityTest.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlockingTest.cs
│       │   │   ├── CallerInformationParametersShouldBeLastTest.cs
│       │   │   ├── CastConcreteTypeToInterfaceTest.cs
│       │   │   ├── CastShouldNotBeDuplicatedTest.cs
│       │   │   ├── CatchEmptyTest.cs
│       │   │   ├── CatchRethrowTest.cs
│       │   │   ├── CertificateValidationCheckTest.cs
│       │   │   ├── CheckArgumentExceptionTest.cs
│       │   │   ├── CheckFileLicenseTest.cs
│       │   │   ├── ClassAndMethodNameTest.cs
│       │   │   ├── ClassNamedExceptionTest.cs
│       │   │   ├── ClassNotInstantiatableTest.cs
│       │   │   ├── ClassShouldNotBeEmptyTest.cs
│       │   │   ├── ClassWithEqualityShouldImplementIEquatableTest.cs
│       │   │   ├── ClassWithOnlyStaticMemberTest.cs
│       │   │   ├── CloudNative/
│       │   │   │   ├── AzureFunctionsCatchExceptionsTest.cs
│       │   │   │   ├── AzureFunctionsLogFailuresTest.cs
│       │   │   │   ├── AzureFunctionsReuseClientsTest.cs
│       │   │   │   ├── AzureFunctionsStatelessTest.cs
│       │   │   │   └── DurableEntityInterfaceRestrictionsTest.cs
│       │   │   ├── CognitiveComplexityTest.cs
│       │   │   ├── CollectionEmptinessCheckingTest.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnlyTest.cs
│       │   │   ├── CollectionQuerySimplificationTest.cs
│       │   │   ├── CollectionsShouldImplementGenericInterfaceTest.cs
│       │   │   ├── CommentKeywordTest.cs
│       │   │   ├── CommentLineEndTest.cs
│       │   │   ├── CommentedOutCodeTest.cs
│       │   │   ├── CommentsShouldNotBeEmptyTest.cs
│       │   │   ├── ComparableInterfaceImplementationTest.cs
│       │   │   ├── CompareNaNTest.cs
│       │   │   ├── ConditionalSimplificationTest.cs
│       │   │   ├── ConditionalStructureSameConditionTest.cs
│       │   │   ├── ConditionalStructureSameImplementationTest.cs
│       │   │   ├── ConditionalsShouldStartOnNewLineTest.cs
│       │   │   ├── ConditionalsWithSameConditionTest.cs
│       │   │   ├── ConstructorArgumentValueShouldExistTest.cs
│       │   │   ├── ConstructorOverridableCallTest.cs
│       │   │   ├── ConsumeValueTaskCorrectlyTest.cs
│       │   │   ├── ControlCharacterInStringTest.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShortTest.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalledTest.cs
│       │   │   ├── DatabasePasswordsShouldBeSecureTest.cs
│       │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKeyTest.cs
│       │   │   ├── DateTimeFormatShouldNotBeHardcodedTest.cs
│       │   │   ├── DeadStoresTest.cs
│       │   │   ├── DebugAssertHasNoSideEffectsTest.cs
│       │   │   ├── DebuggerDisplayUsesExistingMembersTest.cs
│       │   │   ├── DeclareEventHandlersCorrectlyTest.cs
│       │   │   ├── DeclareTypesInNamespacesTest.cs
│       │   │   ├── DefaultSectionShouldBeFirstOrLastTest.cs
│       │   │   ├── DelegateSubtractionTest.cs
│       │   │   ├── DisposableMemberInNonDisposableClassTest.cs
│       │   │   ├── DisposableNotDisposedTest.cs
│       │   │   ├── DisposableReturnedFromUsingTest.cs
│       │   │   ├── DisposableTypesNeedFinalizersTest.cs
│       │   │   ├── DisposeFromDisposeTest.cs
│       │   │   ├── DisposeNotImplementingDisposeTest.cs
│       │   │   ├── DoNotCallAssemblyGetExecutingAssemblyTest.cs
│       │   │   ├── DoNotCallAssemblyLoadInvalidMethodsTest.cs
│       │   │   ├── DoNotCallExitMethodsTest.cs
│       │   │   ├── DoNotCallGCCollectMethodTest.cs
│       │   │   ├── DoNotCallGCSuppressFinalizeTest.cs
│       │   │   ├── DoNotCatchNullReferenceExceptionTest.cs
│       │   │   ├── DoNotCatchSystemExceptionTest.cs
│       │   │   ├── DoNotCheckZeroSizeCollectionTest.cs
│       │   │   ├── DoNotCopyArraysInPropertiesTest.cs
│       │   │   ├── DoNotDecreaseMemberVisibilityTest.cs
│       │   │   ├── DoNotExposeListTTest.cs
│       │   │   ├── DoNotHardcodeCredentialsTest.cs
│       │   │   ├── DoNotHardcodeSecretsTest.cs
│       │   │   ├── DoNotHideBaseClassMethodsTest.cs
│       │   │   ├── DoNotInstantiateSharedClassesTest.cs
│       │   │   ├── DoNotLockOnSharedResourceTest.cs
│       │   │   ├── DoNotLockWeakIdentityObjectsTest.cs
│       │   │   ├── DoNotMarkEnumsWithFlagsTest.cs
│       │   │   ├── DoNotNestTernaryOperatorsTest.cs
│       │   │   ├── DoNotNestTypesInArgumentsTest.cs
│       │   │   ├── DoNotOverloadOperatorEqualTest.cs
│       │   │   ├── DoNotOverwriteCollectionElementsTest.cs
│       │   │   ├── DoNotShiftByZeroOrIntSizeTest.cs
│       │   │   ├── DoNotTestThisWithIsOperatorTest.cs
│       │   │   ├── DoNotThrowFromDestructorsTest.cs
│       │   │   ├── DoNotUseByValTest.cs
│       │   │   ├── DoNotUseCollectionInItsOwnMethodCallsTest.cs
│       │   │   ├── DoNotUseDateTimeNowTest.cs
│       │   │   ├── DoNotUseIIfTest.cs
│       │   │   ├── DoNotUseLiteralBoolInAssertionsTest.cs
│       │   │   ├── DoNotUseOutRefParametersTest.cs
│       │   │   ├── DoNotWriteToStandardOutputTest.cs
│       │   │   ├── DontMixIncrementOrDecrementWithOtherOperatorsTest.cs
│       │   │   ├── DontUseTraceSwitchLevelsTest.cs
│       │   │   ├── DontUseTraceWriteTest.cs
│       │   │   ├── EmptyMethodTest.cs
│       │   │   ├── EmptyNamespaceTest.cs
│       │   │   ├── EmptyNestedBlockTest.cs
│       │   │   ├── EmptyStatementTest.cs
│       │   │   ├── EncryptionAlgorithmsShouldBeSecureTest.cs
│       │   │   ├── EndStatementUsageTest.cs
│       │   │   ├── EnumNameHasEnumSuffixTest.cs
│       │   │   ├── EnumNameShouldFollowRegexTest.cs
│       │   │   ├── EnumStorageNeedsToBeInt32Test.cs
│       │   │   ├── EnumerableSumInUncheckedTest.cs
│       │   │   ├── EnumerationValueNameTest.cs
│       │   │   ├── EnumsShouldNotBeNamedReservedTest.cs
│       │   │   ├── EqualityOnFloatingPointTest.cs
│       │   │   ├── EqualityOnModulusTest.cs
│       │   │   ├── EquatableClassShouldBeSealedTest.cs
│       │   │   ├── EscapeLambdaParameterTypeNamedScopedTest.cs
│       │   │   ├── EventHandlerDelegateShouldHaveProperArgumentsTest.cs
│       │   │   ├── EventHandlerNameTest.cs
│       │   │   ├── EventNameContainsBeforeOrAfterTest.cs
│       │   │   ├── EventNameTest.cs
│       │   │   ├── ExceptionRethrowTest.cs
│       │   │   ├── ExceptionShouldNotBeThrownFromUnexpectedMethodsTest.cs
│       │   │   ├── ExceptionsNeedStandardConstructorsTest.cs
│       │   │   ├── ExceptionsShouldBeLoggedOrThrownTest.cs
│       │   │   ├── ExceptionsShouldBeLoggedTest.cs
│       │   │   ├── ExceptionsShouldBePublicTest.cs
│       │   │   ├── ExceptionsShouldBeUsedTest.cs
│       │   │   ├── ExcludeFromCodeCoverageAttributesNeedJustificationTest.cs
│       │   │   ├── ExitStatementUsageTest.cs
│       │   │   ├── ExpectedExceptionAttributeShouldNotBeUsedTest.cs
│       │   │   ├── ExpressionComplexityTest.cs
│       │   │   ├── ExtensionMethodShouldBeInSeparateNamespaceTest.cs
│       │   │   ├── ExtensionMethodShouldNotExtendObjectTest.cs
│       │   │   ├── FieldShadowsParentFieldTest.cs
│       │   │   ├── FieldShouldBeReadonlyTest.cs
│       │   │   ├── FieldShouldNotBePublicTest.cs
│       │   │   ├── FieldsShouldBeEncapsulatedInPropertiesTest.cs
│       │   │   ├── FileLinesTest.cs
│       │   │   ├── FileShouldEndWithEmptyNewLineTest.cs
│       │   │   ├── FinalizerShouldNotBeEmptyTest.cs
│       │   │   ├── FindInsteadOfFirstOrDefaultTest.cs
│       │   │   ├── FlagsEnumWithoutInitializerTest.cs
│       │   │   ├── FlagsEnumZeroMemberTest.cs
│       │   │   ├── ForLoopConditionAlwaysFalseTest.cs
│       │   │   ├── ForLoopCounterChangedTest.cs
│       │   │   ├── ForLoopCounterConditionTest.cs
│       │   │   ├── ForLoopIncrementSignTest.cs
│       │   │   ├── ForeachLoopExplicitConversionTest.cs
│       │   │   ├── FrameworkTypeNamingTest.cs
│       │   │   ├── FunctionComplexityTest.cs
│       │   │   ├── FunctionNameTest.cs
│       │   │   ├── FunctionNestingDepthTest.cs
│       │   │   ├── GenericInheritanceShouldNotBeRecursiveTest.cs
│       │   │   ├── GenericLoggerInjectionShouldMatchEnclosingTypeTest.cs
│       │   │   ├── GenericReadonlyFieldPropertyAssignmentTest.cs
│       │   │   ├── GenericTypeParameterEmptinessCheckingTest.cs
│       │   │   ├── GenericTypeParameterInOutTest.cs
│       │   │   ├── GenericTypeParameterUnusedTest.cs
│       │   │   ├── GenericTypeParametersRequiredTest.cs
│       │   │   ├── GetHashCodeEqualsOverrideTest.cs
│       │   │   ├── GetHashCodeMutableTest.cs
│       │   │   ├── GetTypeWithIsAssignableFromTest.cs
│       │   │   ├── GotoStatementTest.cs
│       │   │   ├── GuardConditionOnEqualsOverrideTest.cs
│       │   │   ├── Hotspots/
│       │   │   │   ├── ClearTextProtocolsAreSensitiveTest.cs
│       │   │   │   ├── CommandPathTest.cs
│       │   │   │   ├── ConfiguringLoggersTest.cs
│       │   │   │   ├── CookieShouldBeHttpOnlyTest.cs
│       │   │   │   ├── CookieShouldBeSecureTest.cs
│       │   │   │   ├── CreatingHashAlgorithmsTest.cs
│       │   │   │   ├── DeliveringDebugFeaturesInProductionTest.cs
│       │   │   │   ├── DisablingCsrfProtectionTest.cs
│       │   │   │   ├── DisablingRequestValidationTest.cs
│       │   │   │   ├── DoNotUseRandomTest.cs
│       │   │   │   ├── ExecutingSqlQueriesTest.cs
│       │   │   │   ├── ExpandingArchivesTest.cs
│       │   │   │   ├── HardcodedIpAddressTest.cs
│       │   │   │   ├── InsecureDeserializationTest.cs
│       │   │   │   ├── PermissiveCorsTest.cs
│       │   │   │   ├── PubliclyWritableDirectoriesTest.cs
│       │   │   │   ├── RequestsWithExcessiveLengthTest.cs
│       │   │   │   ├── UnsafeCodeBlocksTest.cs
│       │   │   │   └── UsingNonstandardCryptographyTest.cs
│       │   │   ├── IdentifiersNamedExtensionShouldBeEscapedTest.cs
│       │   │   ├── IdentifiersNamedFieldShouldBeEscapedTest.cs
│       │   │   ├── IfChainWithoutElseTest.cs
│       │   │   ├── IfCollapsibleTest.cs
│       │   │   ├── ImplementIDisposableCorrectlyTest.cs
│       │   │   ├── ImplementISerializableCorrectlyTest.cs
│       │   │   ├── ImplementSerializationMethodsCorrectlyTest.cs
│       │   │   ├── IndentSingleLineFollowingConditionalTest.cs
│       │   │   ├── IndexOfCheckAgainstZeroTest.cs
│       │   │   ├── IndexedPropertyWithMultipleParametersTest.cs
│       │   │   ├── InfiniteRecursionTest.cs
│       │   │   ├── InheritedCollidingInterfaceMembersTest.cs
│       │   │   ├── InitializeStaticFieldsInlineTest.cs
│       │   │   ├── InsecureContentSecurityPolicyTest.cs
│       │   │   ├── InsecureEncryptionAlgorithmTest.cs
│       │   │   ├── InsecureTemporaryFilesCreationTest.cs
│       │   │   ├── InsteadOfAnyTest.cs
│       │   │   ├── InterfaceMethodsShouldBeCallableByChildTypesTest.cs
│       │   │   ├── InterfaceNameTest.cs
│       │   │   ├── InterfacesShouldNotBeEmptyTest.cs
│       │   │   ├── InvalidCastToInterfaceTest.cs
│       │   │   ├── InvocationResolvesToOverrideWithParamsTest.cs
│       │   │   ├── IssueSuppressionTest.cs
│       │   │   ├── JSInvokableMethodsShouldBePublicTest.cs
│       │   │   ├── JwtSignedTest.cs
│       │   │   ├── LdapConnectionShouldBeSecureTest.cs
│       │   │   ├── LineContinuationTest.cs
│       │   │   ├── LineLengthTest.cs
│       │   │   ├── LinkedListPropertiesInsteadOfMethodsTest.cs
│       │   │   ├── LiteralSuffixUpperCaseTest.cs
│       │   │   ├── LiteralsShouldNotBePassedAsLocalizedParametersTest.cs
│       │   │   ├── LocalVariableNameTest.cs
│       │   │   ├── LockedFieldShouldBeReadonlyTest.cs
│       │   │   ├── LoggerFieldsShouldBePrivateStaticReadonlyTest.cs
│       │   │   ├── LoggerMembersNamesShouldComplyTest.cs
│       │   │   ├── LoggersShouldBeNamedForEnclosingTypeTest.cs
│       │   │   ├── LoggingArgumentsShouldBePassedCorrectlyTest.cs
│       │   │   ├── LoggingTemplatePlaceHoldersShouldBeInOrderTest.cs
│       │   │   ├── LoopsAndLinqTest.cs
│       │   │   ├── LooseFilePermissionsTest.cs
│       │   │   ├── LossOfFractionInDivisionTest.cs
│       │   │   ├── MagicNumberShouldNotBeUsedTest.cs
│       │   │   ├── MarkAssemblyWithAssemblyVersionAttributeTest.cs
│       │   │   ├── MarkAssemblyWithAttributeUsageAttributeTest.cs
│       │   │   ├── MarkAssemblyWithClsCompliantAttributeTest.cs
│       │   │   ├── MarkAssemblyWithComVisibleAttributeTest.cs
│       │   │   ├── MarkAssemblyWithNeutralResourcesLanguageAttributeTest.cs
│       │   │   ├── MarkWindowsFormsMainWithStaThreadTest.cs
│       │   │   ├── MemberInitializedToDefaultTest.cs
│       │   │   ├── MemberInitializerRedundantTest.cs
│       │   │   ├── MemberOverrideCallsBaseMemberTest.cs
│       │   │   ├── MemberShadowsOuterStaticMemberTest.cs
│       │   │   ├── MemberShouldBeStaticTest.cs
│       │   │   ├── MemberShouldNotHaveConflictingTransparencyAttributesTest.cs
│       │   │   ├── MessageTemplatesShouldBeCorrectTest.cs
│       │   │   ├── MethodOverloadOptionalParameterTest.cs
│       │   │   ├── MethodOverloadsShouldBeGroupedTest.cs
│       │   │   ├── MethodOverrideAddsParamsTest.cs
│       │   │   ├── MethodOverrideChangedDefaultValueTest.cs
│       │   │   ├── MethodOverrideNoParamsTest.cs
│       │   │   ├── MethodParameterMissingOptionalTest.cs
│       │   │   ├── MethodParameterUnusedTest.cs
│       │   │   ├── MethodShouldBeNamedAccordingToSynchronicityTest.cs
│       │   │   ├── MethodShouldNotOnlyReturnConstantTest.cs
│       │   │   ├── MethodsShouldNotHaveIdenticalImplementationsTest.cs
│       │   │   ├── MethodsShouldNotHaveTooManyLinesTest.cs
│       │   │   ├── MethodsShouldUseBaseTypesTest.cs
│       │   │   ├── MultilineBlocksWithoutBraceTest.cs
│       │   │   ├── MultipleVariableDeclarationTest.cs
│       │   │   ├── MutableFieldsShouldNotBePublicReadonlyTest.cs
│       │   │   ├── MutableFieldsShouldNotBePublicStaticTest.cs
│       │   │   ├── NameOfShouldBeUsedTest.cs
│       │   │   ├── NamedPlaceholdersShouldBeUniqueTest.cs
│       │   │   ├── NamespaceNameTest.cs
│       │   │   ├── NativeMethodsShouldBeWrappedTest.cs
│       │   │   ├── NegatedIsExpressionTest.cs
│       │   │   ├── NestedCodeBlockTest.cs
│       │   │   ├── NoExceptionsInFinallyTest.cs
│       │   │   ├── NonAsyncTaskShouldNotReturnNullTest.cs
│       │   │   ├── NonDerivedPrivateClassesShouldBeSealedTest.cs
│       │   │   ├── NonFlagsEnumInBitwiseOperationTest.cs
│       │   │   ├── NormalizeStringsToUppercaseTest.cs
│       │   │   ├── NotAssignedPrivateMemberTest.cs
│       │   │   ├── NumberPatternShouldBeRegularTest.cs
│       │   │   ├── ObjectCreatedDroppedTest.cs
│       │   │   ├── ObsoleteAttributesTest.cs
│       │   │   ├── OnErrorStatementTest.cs
│       │   │   ├── OperatorOverloadsShouldHaveNamedAlternativesTest.cs
│       │   │   ├── OperatorsShouldBeOverloadedConsistentlyTest.cs
│       │   │   ├── OptionExplicitOnTest.cs
│       │   │   ├── OptionStrictOnTest.cs
│       │   │   ├── OptionalParameterNotPassedToBaseCallTest.cs
│       │   │   ├── OptionalParameterTest.cs
│       │   │   ├── OptionalParameterWithDefaultValueTest.cs
│       │   │   ├── OptionalRefOutParameterTest.cs
│       │   │   ├── OrderByRepeatedTest.cs
│       │   │   ├── OverrideGetHashCodeOnOverridingEqualsTest.cs
│       │   │   ├── PInvokesShouldNotBeVisibleTest.cs
│       │   │   ├── ParameterAssignedToTest.cs
│       │   │   ├── ParameterNameMatchesOriginalTest.cs
│       │   │   ├── ParameterNameTest.cs
│       │   │   ├── ParameterNamesShouldNotDuplicateMethodNamesTest.cs
│       │   │   ├── ParameterTypeShouldMatchRouteTypeConstraintTest.cs
│       │   │   ├── ParameterValidationInAsyncShouldBeWrappedTest.cs
│       │   │   ├── ParameterValidationInYieldShouldBeWrappedTest.cs
│       │   │   ├── ParametersCorrectOrderTest.cs
│       │   │   ├── PartCreationPolicyShouldBeUsedWithExportAttributeTest.cs
│       │   │   ├── PartialMethodNoImplementationTest.cs
│       │   │   ├── PasswordsShouldBeStoredCorrectlyTest.cs
│       │   │   ├── PointersShouldBePrivateTest.cs
│       │   │   ├── PreferGuidEmptyTest.cs
│       │   │   ├── PreferJaggedArraysOverMultidimensionalTest.cs
│       │   │   ├── PrivateConstantFieldNameTest.cs
│       │   │   ├── PrivateFieldNameTest.cs
│       │   │   ├── PrivateFieldUsedAsLocalVariableTest.cs
│       │   │   ├── PrivateSharedReadonlyFieldNameTest.cs
│       │   │   ├── PrivateStaticMethodUsedOnlyByNestedClassTest.cs
│       │   │   ├── PropertiesAccessCorrectFieldTest.cs
│       │   │   ├── PropertiesShouldBePreferredTest.cs
│       │   │   ├── PropertyGetterWithThrowTest.cs
│       │   │   ├── PropertyNameTest.cs
│       │   │   ├── PropertyNamesShouldNotMatchGetMethodsTest.cs
│       │   │   ├── PropertyToAutoPropertyTest.cs
│       │   │   ├── PropertyWithArrayTypeTest.cs
│       │   │   ├── PropertyWriteOnlyTest.cs
│       │   │   ├── ProvideDeserializationMethodsForOptionalFieldsTest.cs
│       │   │   ├── PublicConstantFieldNameTest.cs
│       │   │   ├── PublicConstantFieldTest.cs
│       │   │   ├── PublicFieldNameTest.cs
│       │   │   ├── PublicMethodWithMultidimensionalArrayTest.cs
│       │   │   ├── PublicSharedReadonlyFieldNameTest.cs
│       │   │   ├── PureAttributeOnVoidMethodTest.cs
│       │   │   ├── RedundancyInConstructorDestructorDeclarationTest.cs
│       │   │   ├── RedundantArgumentTest.cs
│       │   │   ├── RedundantCastTest.cs
│       │   │   ├── RedundantConditionalAroundAssignmentTest.cs
│       │   │   ├── RedundantDeclarationTest.cs
│       │   │   ├── RedundantExitSelectTest.cs
│       │   │   ├── RedundantInheritanceListTest.cs
│       │   │   ├── RedundantJumpStatementTest.cs
│       │   │   ├── RedundantModifierTest.cs
│       │   │   ├── RedundantNullCheckTest.cs
│       │   │   ├── RedundantNullableTypeComparisonTest.cs
│       │   │   ├── RedundantParenthesesObjectCreationTest.cs
│       │   │   ├── RedundantParenthesesTest.cs
│       │   │   ├── RedundantPropertyNamesInAnonymousClassTest.cs
│       │   │   ├── RedundantToArrayCallTest.cs
│       │   │   ├── RedundantToStringCallTest.cs
│       │   │   ├── ReferenceEqualityCheckWhenEqualsExistsTest.cs
│       │   │   ├── ReferenceEqualsOnValueTypeTest.cs
│       │   │   ├── RegularExpressions/
│       │   │   │   └── RegexMustHaveValidSyntaxTest.cs
│       │   │   ├── RequireAttributeUsageAttributeTest.cs
│       │   │   ├── ReturnEmptyCollectionInsteadOfNullTest.cs
│       │   │   ├── ReturnTypeNamedPartialShouldBeEscapedTest.cs
│       │   │   ├── ReturnValueIgnoredTest.cs
│       │   │   ├── ReversedOperatorsTest.cs
│       │   │   ├── RightCurlyBraceStartsLineTest.cs
│       │   │   ├── SecurityPInvokeMethodShouldNotBeCalledTest.cs
│       │   │   ├── SelfAssignmentTest.cs
│       │   │   ├── SerializationConstructorsShouldBeSecuredTest.cs
│       │   │   ├── SetLocaleForDataTypesTest.cs
│       │   │   ├── SetPropertiesInsteadOfMethodsTest.cs
│       │   │   ├── ShiftDynamicNotIntegerTest.cs
│       │   │   ├── ShouldImplementExportedInterfacesTest.cs
│       │   │   ├── SimpleDoLoopTest.cs
│       │   │   ├── SingleStatementPerLineTest.cs
│       │   │   ├── SpecifyIFormatProviderOrCultureInfoTest.cs
│       │   │   ├── SpecifyStringComparisonTest.cs
│       │   │   ├── SpecifyTimeoutOnRegexTest.cs
│       │   │   ├── SqlKeywordsDelimitedBySpaceTest.cs
│       │   │   ├── StaticFieldInGenericClassTest.cs
│       │   │   ├── StaticFieldInitializerOrderTest.cs
│       │   │   ├── StaticFieldVisibleTest.cs
│       │   │   ├── StaticFieldWrittenFromInstanceConstructorTest.cs
│       │   │   ├── StaticFieldWrittenFromInstanceMemberTest.cs
│       │   │   ├── StaticSealedClassProtectedMembersTest.cs
│       │   │   ├── StreamReadStatementTest.cs
│       │   │   ├── StringConcatenationInLoopTest.cs
│       │   │   ├── StringConcatenationWithPlusTest.cs
│       │   │   ├── StringFormatValidatorTest.cs
│       │   │   ├── StringLiteralShouldNotBeDuplicatedTest.cs
│       │   │   ├── StringOffsetMethodsTest.cs
│       │   │   ├── StringOperationWithoutCultureTest.cs
│       │   │   ├── StringOrIntegralTypesForIndexersTest.cs
│       │   │   ├── SuppressFinalizeUselessTest.cs
│       │   │   ├── SwaggerActionReturnTypeTest.cs
│       │   │   ├── SwitchCaseFallsThroughToDefaultTest.cs
│       │   │   ├── SwitchCasesMinimumThreeTest.cs
│       │   │   ├── SwitchDefaultClauseEmptyTest.cs
│       │   │   ├── SwitchSectionShouldNotHaveTooManyStatementsTest.cs
│       │   │   ├── SwitchShouldNotBeNestedTest.cs
│       │   │   ├── SwitchWithoutDefaultTest.cs
│       │   │   ├── TabCharacterTest.cs
│       │   │   ├── TaskConfigureAwaitTest.cs
│       │   │   ├── TestClassShouldHaveTestMethodTest.cs
│       │   │   ├── TestMethodShouldContainAssertionTest.cs
│       │   │   ├── TestMethodShouldHaveCorrectSignatureTest.cs
│       │   │   ├── TestMethodShouldNotBeIgnoredTest.cs
│       │   │   ├── TestsShouldNotUseThreadSleepTest.cs
│       │   │   ├── ThisShouldNotBeExposedFromConstructorsTest.cs
│       │   │   ├── ThreadResumeOrSuspendShouldNotBeCalledTest.cs
│       │   │   ├── ThreadStaticNonStaticFieldTest.cs
│       │   │   ├── ThreadStaticWithInitializerTest.cs
│       │   │   ├── ThrowReservedExceptionsTest.cs
│       │   │   ├── ToStringShouldNotReturnNullTest.cs
│       │   │   ├── TooManyGenericParametersTest.cs
│       │   │   ├── TooManyLabelsInSwitchTest.cs
│       │   │   ├── TooManyLoggingCallsTest.cs
│       │   │   ├── TooManyParametersTest.cs
│       │   │   ├── TrackNotImplementedExceptionTest.cs
│       │   │   ├── TryStatementsWithIdenticalCatchShouldBeMergedTest.cs
│       │   │   ├── TypeExaminationOnSystemTypeTest.cs
│       │   │   ├── TypeMemberVisibilityTest.cs
│       │   │   ├── TypeNamesShouldNotMatchNamespacesTest.cs
│       │   │   ├── TypeParameterNameTest.cs
│       │   │   ├── TypesShouldNotExtendOutdatedBaseTypesTest.cs
│       │   │   ├── UnaryPrefixOperatorRepeatedTest.cs
│       │   │   ├── UnchangedLocalVariablesShouldBeConstTest.cs
│       │   │   ├── UnconditionalJumpStatementTest.cs
│       │   │   ├── UninvokedEventDeclarationTest.cs
│       │   │   ├── UnnecessaryBitwiseOperationTest.cs
│       │   │   ├── UnnecessaryMathematicalComparisonTest.cs
│       │   │   ├── UnnecessaryUsingsTest.cs
│       │   │   ├── UnsignedTypesUsageTest.cs
│       │   │   ├── UnusedPrivateMemberTest.Constructors.cs
│       │   │   ├── UnusedPrivateMemberTest.Fields.cs
│       │   │   ├── UnusedPrivateMemberTest.Methods.cs
│       │   │   ├── UnusedPrivateMemberTest.Properties.cs
│       │   │   ├── UnusedPrivateMemberTest.Types.cs
│       │   │   ├── UnusedPrivateMemberTest.cs
│       │   │   ├── UnusedReturnValueTest.cs
│       │   │   ├── UnusedStringBuilderTest.cs
│       │   │   ├── UriShouldNotBeHardcodedTest.cs
│       │   │   ├── UseAwaitableMethodTest.cs
│       │   │   ├── UseCharOverloadOfStringMethodsTest.cs
│       │   │   ├── UseConstantLoggingTemplateTest.cs
│       │   │   ├── UseConstantsWhereAppropriateTest.cs
│       │   │   ├── UseCurlyBracesTest.cs
│       │   │   ├── UseDateTimeOffsetInsteadOfDateTimeTest.cs
│       │   │   ├── UseFindSystemTimeZoneByIdTest.cs
│       │   │   ├── UseGenericEventHandlerInstancesTest.cs
│       │   │   ├── UseGenericWithRefParametersTest.cs
│       │   │   ├── UseIFormatProviderForParsingDateAndTimeTest.cs
│       │   │   ├── UseIndexingInsteadOfLinqMethodsTest.cs
│       │   │   ├── UseLambdaParameterInConcurrentDictionaryTest.cs
│       │   │   ├── UseNumericLiteralSeparatorTest.cs
│       │   │   ├── UseParamsForVariableArgumentsTest.cs
│       │   │   ├── UsePascalCaseForNamedPlaceHoldersTest.cs
│       │   │   ├── UseReturnStatementTest.cs
│       │   │   ├── UseShortCircuitingOperatorTest.cs
│       │   │   ├── UseStringCreateTest.cs
│       │   │   ├── UseStringIsNullOrEmptyTest.cs
│       │   │   ├── UseTestableTimeProviderTest.cs
│       │   │   ├── UseTrueForAllTest.cs
│       │   │   ├── UseUnixEpochTest.cs
│       │   │   ├── UseUriInsteadOfStringTest.cs
│       │   │   ├── UseValueParameterTest.cs
│       │   │   ├── UseWhereBeforeOrderByTest.cs
│       │   │   ├── UseWhileLoopInsteadTest.cs
│       │   │   ├── UseWithStatementTest.cs
│       │   │   ├── Utilities/
│       │   │   │   ├── AnalysisWarningAnalyzerTest.cs
│       │   │   │   ├── CopyPasteTokenAnalyzerTest.cs
│       │   │   │   ├── FileMetadataAnalyzerTest.cs
│       │   │   │   ├── LogAnalyzerTest.cs
│       │   │   │   ├── MethodDeclarationInfoComparerTest.cs
│       │   │   │   ├── MetricsAnalyzerTest.cs
│       │   │   │   ├── SymbolReferenceAnalyzerTest.cs
│       │   │   │   ├── TelemetryAnalyzerTest.cs
│       │   │   │   ├── TestMethodDeclarationsAnalyzerTest.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.Classifier.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.ClassifierTestHarness.cs
│       │   │   │   ├── TokenTypeAnalyzerTest.cs
│       │   │   │   └── UtilityAnalyzerBaseTest.cs
│       │   │   ├── ValueTypeShouldImplementIEquatableTest.cs
│       │   │   ├── ValuesUselesslyIncrementedTest.cs
│       │   │   ├── VariableShadowsFieldTest.cs
│       │   │   ├── VariableUnusedTest.cs
│       │   │   ├── VirtualEventFieldTest.cs
│       │   │   ├── WcfMissingContractAttributeTest.cs
│       │   │   ├── WcfNonVoidOneWayTest.cs
│       │   │   ├── WeakSslTlsProtocolsTest.cs
│       │   │   ├── XMLSignatureCheckTest.cs
│       │   │   └── XmlExternalEntityShouldNotBeParsedTest.cs
│       │   ├── SonarAnalyzer.Test.csproj
│       │   ├── Syntax/
│       │   │   ├── Extensions/
│       │   │   │   ├── IfStatementSyntaxExtensionsTest.cs
│       │   │   │   ├── SwitchSectionSyntaxExtensionsTest.cs
│       │   │   │   └── SyntaxNodeExtensionsTest.CSharp.cs
│       │   │   └── Utilities/
│       │   │       ├── EquivalenceCheckerTest.cs
│       │   │       ├── MethodParameterLookupTest.cs
│       │   │       ├── RemovableDeclarationCollectorTest.cs
│       │   │       ├── SymbolUsageCollectorTest.cs
│       │   │       └── SyntaxClassifierTest.cs
│       │   ├── TestCases/
│       │   │   ├── AbstractClassToInterface.Latest.Partial.cs
│       │   │   ├── AbstractClassToInterface.Latest.cs
│       │   │   ├── AbstractClassToInterface.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.Latest.Partial.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.Latest.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.TopLevelStatements.cs
│       │   │   ├── AbstractTypesShouldNotHaveConstructors.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.CSharp9.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.cs
│       │   │   ├── AllBranchesShouldNotHaveSameImplementation.vb
│       │   │   ├── AlwaysSetDateTimeKind.cs
│       │   │   ├── AlwaysSetDateTimeKind.vb
│       │   │   ├── AnonymousDelegateEventUnsubscribe.Latest.cs
│       │   │   ├── AnonymousDelegateEventUnsubscribe.cs
│       │   │   ├── AppSettings/
│       │   │   │   ├── DatabasePasswordsShouldBeSecure/
│       │   │   │   │   ├── Corrupt/
│       │   │   │   │   │   └── appsettings.json
│       │   │   │   │   ├── UnexpectedContent/
│       │   │   │   │   │   ├── ArrayInside/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── ConnectionStringComment/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── EmptyArray/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── EmptyFile/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── Null/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── PropertyKinds/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   ├── ValueKind/
│       │   │   │   │   │   │   └── appsettings.json
│       │   │   │   │   │   └── WrongStructure/
│       │   │   │   │   │       └── appsettings.json
│       │   │   │   │   └── Values/
│       │   │   │   │       └── appsettings.json
│       │   │   │   ├── DoNotHardcodeCredentials/
│       │   │   │   │   ├── Corrupt/
│       │   │   │   │   │   └── AppSettings.json
│       │   │   │   │   ├── UnexpectedContent/
│       │   │   │   │   │   └── AppSettings.json
│       │   │   │   │   └── Valid/
│       │   │   │   │       ├── AppSettings.Custom.json
│       │   │   │   │       ├── AppSettings.Development.json
│       │   │   │   │       ├── AppSettings.Production.json
│       │   │   │   │       ├── AppSettings.json
│       │   │   │   │       └── OtherFile.json
│       │   │   │   └── DoNotHardcodeSecrets/
│       │   │   │       ├── Corrupt/
│       │   │   │       │   └── AppSettings.json
│       │   │   │       ├── UnexpectedContent/
│       │   │   │       │   └── AppSettings.json
│       │   │   │       └── Valid/
│       │   │   │           ├── AppSettings.Custom.json
│       │   │   │           ├── AppSettings.Development.json
│       │   │   │           ├── AppSettings.Production.json
│       │   │   │           ├── AppSettings.json
│       │   │   │           └── OtherFile.json
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameter.Latest.cs
│       │   │   ├── ArgumentSpecifiedForCallerInfoParameter.cs
│       │   │   ├── ArrayCovariance.CSharp9.cs
│       │   │   ├── ArrayCovariance.cs
│       │   │   ├── ArrayCreationLongSyntax.Fixed.vb
│       │   │   ├── ArrayCreationLongSyntax.vb
│       │   │   ├── ArrayDesignatorOnVariable.Fixed.vb
│       │   │   ├── ArrayDesignatorOnVariable.vb
│       │   │   ├── ArrayInitializationMultipleStatements.vb
│       │   │   ├── ArrayPassedAsParams.Latest.cs
│       │   │   ├── ArrayPassedAsParams.cs
│       │   │   ├── ArrayPassedAsParams.vb
│       │   │   ├── AspNet/
│       │   │   │   ├── AnnotateApiActionsWithHttpVerb.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromController.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.Fixed.cs
│       │   │   │   ├── ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.cs
│       │   │   │   ├── AvoidUnderPosting.AutogeneratedModel.cs
│       │   │   │   ├── AvoidUnderPosting.Latest.Partial.cs
│       │   │   │   ├── AvoidUnderPosting.Latest.cs
│       │   │   │   ├── AvoidUnderPosting.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNet4x.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNet4x.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2AndAbove.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2x.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore2x.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore3AndAbove.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore3AndAbove.vb
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore8AndAbove.Latest.cs
│       │   │   │   ├── BackslashShouldBeAvoidedInAspNetRoutes.AspNetCore8AndAbove.vb
│       │   │   │   ├── CallModelStateIsValid.AutogeneratedController.cs
│       │   │   │   ├── CallModelStateIsValid.Latest.cs
│       │   │   │   ├── CallModelStateIsValid.cs
│       │   │   │   ├── ControllerReuseClient.CSharp12.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilities.Latest.Partial.cs
│       │   │   │   ├── ControllersHaveMixedResponsibilities.Latest.cs
│       │   │   │   ├── ControllersReuseClient.CSharp9.cs
│       │   │   │   ├── ControllersReuseClient.Csharp8.cs
│       │   │   │   ├── ControllersReuseClient.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.PartialAutogenerated.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNet4x.vb
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.CSharp12.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.PartialAutogenerated.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.cs
│       │   │   │   ├── RouteTemplateShouldNotStartWithSlash.AspNetCore.vb
│       │   │   │   ├── SpecifyRouteAttribute.CSharp12.cs
│       │   │   │   └── UseAspNetModelBinding_AspNetCore_Latest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.MsTest.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.NUnit.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.NUnit4.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.Xunit.cs
│       │   │   ├── AssertionArgsShouldBePassedInCorrectOrder.XunitV3.cs
│       │   │   ├── AssertionsShouldBeComplete.AllFrameworks.cs
│       │   │   ├── AssertionsShouldBeComplete.FluentAssertions.CSharp7.cs
│       │   │   ├── AssertionsShouldBeComplete.FluentAssertions.Latest.cs
│       │   │   ├── AssertionsShouldBeComplete.NFluent.Latest.cs
│       │   │   ├── AssertionsShouldBeComplete.NFluent.cs
│       │   │   ├── AssertionsShouldBeComplete.NSubstitute.cs
│       │   │   ├── AssignmentInsideSubExpression.Latest.cs
│       │   │   ├── AssignmentInsideSubExpression.TopLevelStatements.cs
│       │   │   ├── AssignmentInsideSubExpression.cs
│       │   │   ├── AsyncAwaitIdentifier.Latest.cs
│       │   │   ├── AsyncAwaitIdentifier.cs
│       │   │   ├── AsyncVoidMethod.Latest.cs
│       │   │   ├── AsyncVoidMethod.MsTestTestFramework.cs
│       │   │   ├── AsyncVoidMethod.VsUtFramework.cs
│       │   │   ├── AsyncVoidMethod.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarking.cs
│       │   │   ├── AvoidDateTimeNowForBenchmarking.vb
│       │   │   ├── AvoidExcessiveClassCoupling.Latest.cs
│       │   │   ├── AvoidExcessiveClassCoupling.cs
│       │   │   ├── AvoidExcessiveInheritance_CustomValues.Records.cs
│       │   │   ├── AvoidExcessiveInheritance_CustomValues.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Concurrent.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.FileScopedTypes.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Records.Concurrent.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.Records.cs
│       │   │   ├── AvoidExcessiveInheritance_DefaultValues.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.LoopsWithNoBody.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.RenderFragment.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.RenderFragmentConsumer.razor
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.cs
│       │   │   ├── AvoidLambdaExpressionInLoopsInBlazor.razor
│       │   │   ├── AvoidUnsealedAttributes.cs
│       │   │   ├── AvoidUnsealedAttributes.vb
│       │   │   ├── BeginInvokePairedWithEndInvoke.Latest.Partial.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.Latest.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.Partial.vb
│       │   │   ├── BeginInvokePairedWithEndInvoke.cs
│       │   │   ├── BeginInvokePairedWithEndInvoke.vb
│       │   │   ├── BinaryOperationWithIdenticalExpressions.CSharpLatest.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressions.cs
│       │   │   ├── BinaryOperationWithIdenticalExpressions.vb
│       │   │   ├── BlazorQueryParameterRoutableComponent.Compliant.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.1.razor.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.2.razor.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.Latest.Partial.razor
│       │   │   ├── BlazorQueryParameterRoutableComponent.NoRoute.razor
│       │   │   ├── BlazorQueryParameterRoutableComponent.Noncompliant.cs
│       │   │   ├── BlazorQueryParameterRoutableComponent.razor
│       │   │   ├── BooleanCheckInverted.Fixed.Batch.cs
│       │   │   ├── BooleanCheckInverted.Fixed.cs
│       │   │   ├── BooleanCheckInverted.Latest.cs
│       │   │   ├── BooleanCheckInverted.cs
│       │   │   ├── BooleanCheckInverted.vb
│       │   │   ├── BooleanLiteralUnnecessary.Fixed.cs
│       │   │   ├── BooleanLiteralUnnecessary.Latest.Fixed.cs
│       │   │   ├── BooleanLiteralUnnecessary.Latest.cs
│       │   │   ├── BooleanLiteralUnnecessary.cs
│       │   │   ├── BooleanLiteralUnnecessary.vb
│       │   │   ├── BreakOutsideSwitch.cs
│       │   │   ├── BypassingAccessibility.Latest.cs
│       │   │   ├── BypassingAccessibility.cs
│       │   │   ├── BypassingAccessibility.vb
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.Latest.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.TopLevelStatements.cs
│       │   │   ├── CallToAsyncMethodShouldNotBeBlocking.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.Latest.Partial.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.Latest.cs
│       │   │   ├── CallerInformationParametersShouldBeLast.cs
│       │   │   ├── CallerInformationParametersShouldBeLastInvalidSyntax.cs
│       │   │   ├── CastConcreteTypeToInterface.cs
│       │   │   ├── CastShouldNotBeDuplicated.Latest.cs
│       │   │   ├── CastShouldNotBeDuplicated.cs
│       │   │   ├── CastShouldNotBeDuplicated.cshtml
│       │   │   ├── CatchEmpty.cs
│       │   │   ├── CatchRethrow.Fixed.cs
│       │   │   ├── CatchRethrow.cs
│       │   │   ├── CatchRethrow.vb
│       │   │   ├── CertificateValidationCheck.Latest.Partial.cs
│       │   │   ├── CertificateValidationCheck.Latest.cs
│       │   │   ├── CertificateValidationCheck.TopLevelStatements.cs
│       │   │   ├── CertificateValidationCheck.cs
│       │   │   ├── CertificateValidationCheck.vb
│       │   │   ├── CheckArgumentException.Latest.cs
│       │   │   ├── CheckArgumentException.TopLevelStatements.cs
│       │   │   ├── CheckArgumentException.cs
│       │   │   ├── CheckFileLicense_CSharp9.Fixed.cs
│       │   │   ├── CheckFileLicense_CSharp9.cs
│       │   │   ├── CheckFileLicense_ComplexRegex.cs
│       │   │   ├── CheckFileLicense_Compliant.vb
│       │   │   ├── CheckFileLicense_DefaultValues.Fixed.cs
│       │   │   ├── CheckFileLicense_DefaultValues.cs
│       │   │   ├── CheckFileLicense_EmptyFile.cs
│       │   │   ├── CheckFileLicense_ForcingEmptyLinesKo.cs
│       │   │   ├── CheckFileLicense_ForcingEmptyLinesOk.cs
│       │   │   ├── CheckFileLicense_MultiLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_MultiLineLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithAdditionalComment.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithAdditionalCommentOnSameLine.cs
│       │   │   ├── CheckFileLicense_MultiSingleLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithNamespace.Fixed.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithUsing.Fixed.cs
│       │   │   ├── CheckFileLicense_NoLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_NonCompliant.vb
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithNamespace.Fixed.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithUsing.Fixed.cs
│       │   │   ├── CheckFileLicense_OutdatedLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_SingleLineLicenseStartWithNamespace.cs
│       │   │   ├── CheckFileLicense_SingleLineLicenseStartWithUsing.cs
│       │   │   ├── CheckFileLicense_YearDifference.Fixed.cs
│       │   │   ├── CheckFileLicense_YearDifference.cs
│       │   │   ├── ClassAndMethodName.MethodName.Latest.Partial.cs
│       │   │   ├── ClassAndMethodName.MethodName.Latest.cs
│       │   │   ├── ClassAndMethodName.MethodName.Partial.cs
│       │   │   ├── ClassAndMethodName.MethodName.cs
│       │   │   ├── ClassAndMethodName.Partial.cs
│       │   │   ├── ClassAndMethodName.Tests.cs
│       │   │   ├── ClassAndMethodName.TopLevelStatement.Test.cs
│       │   │   ├── ClassAndMethodName.TopLevelStatement.cs
│       │   │   ├── ClassAndMethodName.cs
│       │   │   ├── ClassAndMethodName.vb
│       │   │   ├── ClassNamedException.Interop.cs
│       │   │   ├── ClassNamedException.Interop.vb
│       │   │   ├── ClassNamedException.Latest.cs
│       │   │   ├── ClassNamedException.cs
│       │   │   ├── ClassNamedException.vb
│       │   │   ├── ClassNotInstantiatable.Latest.Partial.cs
│       │   │   ├── ClassNotInstantiatable.Latest.cs
│       │   │   ├── ClassNotInstantiatable.cs
│       │   │   ├── ClassNotInstantiatable.vb
│       │   │   ├── ClassShouldNotBeEmpty.Inheritance.cs
│       │   │   ├── ClassShouldNotBeEmpty.Inheritance.vb
│       │   │   ├── ClassShouldNotBeEmpty.Latest.Partial.cs
│       │   │   ├── ClassShouldNotBeEmpty.Latest.cs
│       │   │   ├── ClassShouldNotBeEmpty.cs
│       │   │   ├── ClassShouldNotBeEmpty.vb
│       │   │   ├── ClassWithEqualityShouldImplementIEquatable.Latest.cs
│       │   │   ├── ClassWithEqualityShouldImplementIEquatable.cs
│       │   │   ├── ClassWithOnlyStaticMember.Latest.Partial.cs
│       │   │   ├── ClassWithOnlyStaticMember.Latest.cs
│       │   │   ├── ClassWithOnlyStaticMember.TopLevelStatements.cs
│       │   │   ├── ClassWithOnlyStaticMember.cs
│       │   │   ├── CloudNative/
│       │   │   │   ├── AzureFunctionsCatchExceptions.cs
│       │   │   │   ├── AzureFunctionsLogFailures.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ArmClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.CosmosClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.DocumentClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.HttpClient.CSharp9.cs
│       │   │   │   ├── AzureFunctionsReuseClients.HttpClient.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ServiceBusV5.cs
│       │   │   │   ├── AzureFunctionsReuseClients.ServiceBusV7.cs
│       │   │   │   ├── AzureFunctionsReuseClients.Storage.cs
│       │   │   │   ├── AzureFunctionsStateless.Latest.Partial.cs
│       │   │   │   ├── AzureFunctionsStateless.Latest.cs
│       │   │   │   ├── AzureFunctionsStateless.cs
│       │   │   │   ├── DurableEntityInterfaceRestrictions.CSharp11.cs
│       │   │   │   └── DurableEntityInterfaceRestrictions.cs
│       │   │   ├── CognitiveComplexity.Latest.Partial.cs
│       │   │   ├── CognitiveComplexity.Latest.cs
│       │   │   ├── CognitiveComplexity.cs
│       │   │   ├── CognitiveComplexity.vb
│       │   │   ├── CollectionEmptinessChecking.Fixed.cs
│       │   │   ├── CollectionEmptinessChecking.Latest.cs
│       │   │   ├── CollectionEmptinessChecking.cs
│       │   │   ├── CollectionEmptinessChecking.vb
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.Latest.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.cs
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.razor
│       │   │   ├── CollectionPropertiesShouldBeReadOnly.razor.cs
│       │   │   ├── CollectionQuerySimplification.Latest.cs
│       │   │   ├── CollectionQuerySimplification.NetFx.cs
│       │   │   ├── CollectionQuerySimplification.TopLevelStatements.cs
│       │   │   ├── CollectionQuerySimplification.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.CSharp10.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.CSharp9.cs
│       │   │   ├── CollectionsShouldImplementGenericInterface.cs
│       │   │   ├── CommentFixme.cs
│       │   │   ├── CommentFixme.vb
│       │   │   ├── CommentLineEnd.vb
│       │   │   ├── CommentTodo.cs
│       │   │   ├── CommentTodo.vb
│       │   │   ├── CommentedOutCode.MultiLine.Fixed.cs
│       │   │   ├── CommentedOutCode.MultiLine.ToFix.cs
│       │   │   ├── CommentedOutCode.SingleLine.Fixed.cs
│       │   │   ├── CommentedOutCode.SingleLine.ToFix.cs
│       │   │   ├── CommentedOutCode.cs
│       │   │   ├── CommentedOutCode_Nonconcurrent.cs
│       │   │   ├── CommentsShouldNotBeEmpty.cs
│       │   │   ├── CommentsShouldNotBeEmpty.vb
│       │   │   ├── ComparableInterfaceImplementation.Latest.cs
│       │   │   ├── ComparableInterfaceImplementation.cs
│       │   │   ├── CompareNaN.Latest.cs
│       │   │   ├── CompareNaN.cs
│       │   │   ├── ConditionalSimplification.BeforeCSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.BeforeCSharp8.cs
│       │   │   ├── ConditionalSimplification.CSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.CSharp8.cs
│       │   │   ├── ConditionalSimplification.FromCSharp10.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp10.cs
│       │   │   ├── ConditionalSimplification.FromCSharp8.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp8.cs
│       │   │   ├── ConditionalSimplification.FromCSharp9.Fixed.cs
│       │   │   ├── ConditionalSimplification.FromCSharp9.cs
│       │   │   ├── ConditionalStructureSameCondition.CSharp10.cs
│       │   │   ├── ConditionalStructureSameCondition.CSharp9.cs
│       │   │   ├── ConditionalStructureSameCondition.cs
│       │   │   ├── ConditionalStructureSameCondition.vb
│       │   │   ├── ConditionalStructureSameImplementation_If.Latest.cs
│       │   │   ├── ConditionalStructureSameImplementation_If.cs
│       │   │   ├── ConditionalStructureSameImplementation_If.vb
│       │   │   ├── ConditionalStructureSameImplementation_Switch.Latest.cs
│       │   │   ├── ConditionalStructureSameImplementation_Switch.cs
│       │   │   ├── ConditionalStructureSameImplementation_Switch.vb
│       │   │   ├── ConditionalsShouldStartOnNewLine.Latest.cs
│       │   │   ├── ConditionalsShouldStartOnNewLine.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp10.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp9.TopLevelStatements.cs
│       │   │   ├── ConditionalsWithSameCondition.CSharp9.cs
│       │   │   ├── ConditionalsWithSameCondition.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.Latest.Partial.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.Latest.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.cs
│       │   │   ├── ConstructorArgumentValueShouldExist.vb
│       │   │   ├── ConstructorOverridableCall.Latest.Partial.cs
│       │   │   ├── ConstructorOverridableCall.Latest.cs
│       │   │   ├── ConstructorOverridableCall.Nancy.cs
│       │   │   ├── ConstructorOverridableCall.cs
│       │   │   ├── ConsumeValueTaskCorrectly.Latest.cs
│       │   │   ├── ConsumeValueTaskCorrectly.cs
│       │   │   ├── ControlCharacterInString.Latest.cs
│       │   │   ├── ControlCharacterInString.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.BeforeNet7.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.Latest.cs
│       │   │   ├── CryptographicKeyShouldNotBeTooShort.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.CSharp9.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.cs
│       │   │   ├── DangerousGetHandleShouldNotBeCalled.vb
│       │   │   ├── DatabasePasswordsShouldBeSecure.Latest.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.Net5.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.NetCore31.cs
│       │   │   ├── DatabasePasswordsShouldBeSecure.cs
│       │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.EntityFrameworkCore.cs
│       │   │   ├── DateAndTimeShouldNotBeUsedasTypeForPrimaryKey.EntityFramewo
Download .txt
Showing preview only (3,663K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (36372 symbols across 4026 files)

FILE: analyzers/src/RuleDescriptorGenerator/Descriptors/Rule.cs
  type Rule (line 22) | [ExcludeFromCodeCoverage]

FILE: analyzers/src/RuleDescriptorGenerator/Descriptors/RuleParameter.cs
  class RuleParameter (line 24) | [ExcludeFromCodeCoverage]
    method RuleParameter (line 37) | public RuleParameter() { }
    method RuleParameter (line 39) | public RuleParameter(object attribute)
    method ToServerApi (line 52) | private static string ToServerApi(int type) =>
    method PropertyValue (line 66) | private static T PropertyValue<T>(object target, string propertyName)

FILE: analyzers/src/RuleDescriptorGenerator/Program.cs
  class Program (line 27) | [ExcludeFromCodeCoverage]
    method Main (line 30) | public static void Main(string[] args)
    method LoadAnalyzerTypes (line 46) | private static Type[] LoadAnalyzerTypes(string path) =>
    method LoadRules (line 55) | private static Rule[] LoadRules(Type[] analyzers) =>
    method RuleParameters (line 62) | private static RuleParameter[] RuleParameters(Type analyzer) =>
    method UniqueIds (line 70) | private static string[] UniqueIds(Type analyzer) =>
    method IsUtilityAnalyzer (line 73) | private static bool IsUtilityAnalyzer(Type analyzerType)

FILE: analyzers/src/SonarAnalyzer.CFG/CfgSerializer/CfgSerializer.RoslynCfgWalker.cs
  class CfgSerializer (line 23) | public static partial class CfgSerializer
    class RoslynCfgWalker (line 25) | private class RoslynCfgWalker
      method RoslynCfgWalker (line 32) | public RoslynCfgWalker(DotWriter writer, RoslynCfgIdProvider cfgIdPr...
      method Visit (line 39) | public void Visit(ControlFlowGraph cfg, string title)
      method WriteEdges (line 46) | protected virtual void WriteEdges(BasicBlock block)
      method BlockId (line 64) | protected string BlockId(BasicBlock block) =>
      method VisitSubGraph (line 67) | private void VisitSubGraph(ControlFlowGraph cfg, string title)
      method VisitContent (line 74) | private void VisitContent(ControlFlowGraph cfg, string titlePrefix)
      method Visit (line 96) | private void Visit(ControlFlowGraph cfg, ControlFlowRegion region)
      method Visit (line 110) | private void Visit(BasicBlock block)
      method WriteNode (line 117) | private void WriteNode(BasicBlock block)
      method SerializeBranchValue (line 123) | private static IEnumerable<string> SerializeBranchValue(IOperation o...
      method SerializeOperation (line 126) | private static IEnumerable<string> SerializeOperation(IOperation ope...
      method SerializeOperation (line 129) | private static IEnumerable<string> SerializeOperation(int level, str...
      method SerializeRegion (line 143) | private static string SerializeRegion(ControlFlowRegion region)
      method AnonymousFunctions (line 162) | private static IEnumerable<IFlowAnonymousFunctionOperationWrapper> A...
    class RoslynCfgIdProvider (line 171) | private sealed class RoslynCfgIdProvider
      method Next (line 175) | public int Next() => value++;

FILE: analyzers/src/SonarAnalyzer.CFG/CfgSerializer/CfgSerializer.RoslynLvaWalker.cs
  class CfgSerializer (line 23) | public static partial class CfgSerializer
    class RoslynLvaWalker (line 25) | private sealed class RoslynLvaWalker : RoslynCfgWalker
      method RoslynLvaWalker (line 29) | public RoslynLvaWalker(RoslynLiveVariableAnalysis lva, DotWriter wri...
      method WriteEdges (line 34) | protected override void WriteEdges(BasicBlock block)

FILE: analyzers/src/SonarAnalyzer.CFG/CfgSerializer/CfgSerializer.SonarCfgWalker.cs
  class CfgSerializer (line 23) | public static partial class CfgSerializer
    class SonarCfgWalker (line 25) | private sealed class SonarCfgWalker
      method SonarCfgWalker (line 30) | public SonarCfgWalker(DotWriter writer) =>
      method Visit (line 33) | public void Visit(IControlFlowGraph cfg, string title)
      method Visit (line 43) | private void Visit(Block block)
      method WriteNode (line 84) | private void WriteNode(Block block, SyntaxNode terminator = null)
      method WriteEdges (line 94) | private void WriteEdges(Block block)

FILE: analyzers/src/SonarAnalyzer.CFG/CfgSerializer/CfgSerializer.cs
  class CfgSerializer (line 24) | public static partial class CfgSerializer
    method Serialize (line 26) | public static string Serialize(IControlFlowGraph cfg, string title = "...
    method Serialize (line 33) | public static string Serialize(ControlFlowGraph cfg, string title = "R...
    method Serialize (line 40) | public static string Serialize(RoslynLiveVariableAnalysis lva, string ...

FILE: analyzers/src/SonarAnalyzer.CFG/CfgSerializer/DotWriter.cs
  class DotWriter (line 22) | public class DotWriter
    method WriteGraphStart (line 28) | public void WriteGraphStart(string graphName)
    method WriteGraphEnd (line 38) | public void WriteGraphEnd()
    method WriteSubGraphStart (line 49) | public void WriteSubGraphStart(int id, string title) =>
    method WriteSubGraphEnd (line 52) | public void WriteSubGraphEnd() =>
    method WriteRecordNode (line 55) | public void WriteRecordNode(string id, string header, params string[] ...
    method WriteNode (line 69) | public void WriteNode(string id, string[] attributes)
    method WriteEdge (line 79) | public void WriteEdge(string startId, string endId, string label)
    method ToString (line 89) | public override string ToString() =>
    method Encode (line 92) | private static string Encode(string s) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Common/RoslynVersion.cs
  class RoslynVersion (line 20) | public static class RoslynVersion
    method IsRoslynCfgSupported (line 25) | public static bool IsRoslynCfgSupported(int minimalVersion = MinimalSu...
    method IsVersionLessThan (line 28) | public static bool IsVersionLessThan(int minimalVersion = MinimalSuppo...
    method IsVersionLessThan (line 31) | public static bool IsVersionLessThan(Version version) =>
    method CurrentVersion (line 34) | private static Version CurrentVersion() =>

FILE: analyzers/src/SonarAnalyzer.CFG/Common/UniqueQueue.cs
  class UniqueQueue (line 22) | internal class UniqueQueue<T> : IEnumerable<T>
    method Enqueue (line 27) | public void Enqueue(T item)
    method Dequeue (line 36) | public T Dequeue()
    method GetEnumerator (line 43) | public IEnumerator<T> GetEnumerator() =>
    method GetEnumerator (line 46) | IEnumerator IEnumerable.GetEnumerator() =>

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/BasicBlockExtensions.cs
  class BasicBlockExtensions (line 22) | public static class BasicBlockExtensions
    method IsEnclosedIn (line 24) | public static bool IsEnclosedIn(this BasicBlock block, ControlFlowRegi...
    method EnclosingNonLocalLifetimeRegion (line 30) | public static ControlFlowRegion EnclosingNonLocalLifetimeRegion(this B...
    method EnclosingRegion (line 33) | public static ControlFlowRegion EnclosingRegion(this BasicBlock block,...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/ControlFlowGraphExtensions.cs
  class ControlFlowGraphExtensions (line 22) | public static class ControlFlowGraphExtensions
    method FlowAnonymousFunctionOperations (line 24) | public static IEnumerable<IFlowAnonymousFunctionOperationWrapper> Flow...
    method FindLocalFunctionCfgInScope (line 32) | public static ControlFlowGraph FindLocalFunctionCfgInScope(this Contro...
    method GetLocalFunctionControlFlowGraph (line 46) | public static ControlFlowGraph GetLocalFunctionControlFlowGraph(this C...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/ControlFlowRegionExtensions.cs
  class ControlFlowRegionExtensions (line 22) | public static class ControlFlowRegionExtensions
    method Blocks (line 24) | public static IEnumerable<BasicBlock> Blocks(this ControlFlowRegion re...
    method EnclosingNonLocalLifetimeRegion (line 27) | public static ControlFlowRegion EnclosingNonLocalLifetimeRegion(this C...
    method EnclosingRegionOrSelf (line 36) | public static ControlFlowRegion EnclosingRegionOrSelf(this ControlFlow...
    method EnclosingRegion (line 49) | public static ControlFlowRegion EnclosingRegion(this ControlFlowRegion...
    method NestedRegion (line 52) | public static ControlFlowRegion NestedRegion(this ControlFlowRegion re...
    method ReachableHandlers (line 58) | public static IEnumerable<ControlFlowRegion> ReachableHandlers(this Co...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/DictionaryExtensions.cs
  class DictionaryExtensions (line 20) | internal static class DictionaryExtensions
    method GetOrAdd (line 22) | public static TValue GetOrAdd<TKey, TValue>(this IDictionary<TKey, TVa...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/ExpressionSyntaxExtensions.cs
  class ExpressionSyntaxExtensions (line 22) | internal static class ExpressionSyntaxExtensions
    method RemoveParentheses (line 24) | public static ExpressionSyntax RemoveParentheses(this ExpressionSyntax...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/IEnumerableExtensions.cs
  class IEnumerableExtensions (line 20) | internal static class IEnumerableExtensions
    method ToHashSet (line 22) | public static HashSet<T> ToHashSet<T>(this IEnumerable<T> enumerable, ...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/IOperationExtensions.cs
  class IOperationExtensions (line 22) | public static class IOperationExtensions
    method ToSonar (line 24) | [Obsolete("Use extension methods for IOperation properties instead.")]...
    method ToSonar (line 28) | [Obsolete("Use extension methods for IOperation properties instead.")]...
    method Parent (line 32) | public static IOperation Parent(this IOperation operation) =>
    method Parent (line 35) | public static IOperation Parent(this IOperationWrapper operation) =>
    method Children (line 38) | public static IEnumerable<IOperation> Children(this IOperation operati...
    method Children (line 41) | public static IEnumerable<IOperation> Children(this IOperationWrapper ...
    method Language (line 44) | public static string Language(this IOperation operation) =>
    method Language (line 47) | public static string Language(this IOperationWrapper operation) =>
    method IsImplicit (line 50) | public static bool IsImplicit(this IOperation operation) =>
    method IsImplicit (line 53) | public static bool IsImplicit(this IOperationWrapper operation) =>
    method SemanticModel (line 56) | public static SemanticModel SemanticModel(this IOperation operation) =>
    method SemanticModel (line 59) | public static SemanticModel SemanticModel(this IOperationWrapper opera...
    method IsOutArgumentReference (line 62) | public static bool IsOutArgumentReference(this IOperation operation) =>
    method IsAssignmentTarget (line 67) | public static bool IsAssignmentTarget(this IOperationWrapper operation...
    method IsCompoundAssignmentTarget (line 72) | public static bool IsCompoundAssignmentTarget(this IOperationWrapper o...
    method IsOutArgument (line 77) | public static bool IsOutArgument(this IOperationWrapper operation) =>
    method IsAnyKind (line 82) | public static bool IsAnyKind(this IOperation operation, params Operati...
    method RootOperation (line 85) | public static IOperation RootOperation(this IOperation operation)
    method ArgumentValue (line 96) | public static IOperation ArgumentValue(this IInvocationOperationWrappe...
    method ArgumentValue (line 100) | public static IOperation ArgumentValue(this IObjectCreationOperationWr...
    method ArgumentValue (line 104) | public static IOperation ArgumentValue(this IPropertyReferenceOperatio...
    method ArgumentValue (line 108) | public static IOperation ArgumentValue(this IRaiseEventOperationWrappe...
    method ToExecutionOrder (line 111) | public static OperationExecutionOrder ToExecutionOrder(this IEnumerabl...
    method ToReversedExecutionOrder (line 114) | public static OperationExecutionOrder ToReversedExecutionOrder(this IE...
    method Serialize (line 117) | public static string Serialize(this IOperation operation) =>
    method DescendantsAndSelf (line 121) | public static IEnumerable<IOperation> DescendantsAndSelf(this IOperati...
    method AsAnonymousFunction (line 124) | public static IAnonymousFunctionOperationWrapper? AsAnonymousFunction(...
    method AsArgument (line 127) | public static IArgumentOperationWrapper? AsArgument(this IOperation op...
    method AsAssignment (line 130) | public static IAssignmentOperationWrapper? AsAssignment(this IOperatio...
    method AsSimpleAssignment (line 133) | public static ISimpleAssignmentOperationWrapper? AsSimpleAssignment(th...
    method AsArrayCreation (line 136) | public static IArrayCreationOperationWrapper? AsArrayCreation(this IOp...
    method AsArrayElementReference (line 139) | public static IArrayElementReferenceOperationWrapper? AsArrayElementRe...
    method AsConversion (line 142) | public static IConversionOperationWrapper? AsConversion(this IOperatio...
    method AsDeclarationExpression (line 145) | public static IDeclarationExpressionOperationWrapper? AsDeclarationExp...
    method AsDeclarationPattern (line 148) | public static IDeclarationPatternOperationWrapper? AsDeclarationPatter...
    method AsFlowAnonymousFunction (line 151) | public static IFlowAnonymousFunctionOperationWrapper? AsFlowAnonymousF...
    method AsFlowCapture (line 154) | public static IFlowCaptureOperationWrapper? AsFlowCapture(this IOperat...
    method AsFlowCaptureReference (line 157) | public static IFlowCaptureReferenceOperationWrapper? AsFlowCaptureRefe...
    method AsForEachLoop (line 160) | public static IForEachLoopOperationWrapper? AsForEachLoop(this IOperat...
    method AsInvocation (line 170) | public static IInvocationOperationWrapper? AsInvocation(this IOperatio...
    method AsLocalFunction (line 173) | public static ILocalFunctionOperationWrapper? AsLocalFunction(this IOp...
    method AsLocalReference (line 176) | public static ILocalReferenceOperationWrapper? AsLocalReference(this I...
    method AsIsNull (line 179) | public static IIsNullOperationWrapper? AsIsNull(this IOperation operat...
    method AsIsPattern (line 182) | public static IIsPatternOperationWrapper? AsIsPattern(this IOperation ...
    method AsParameterReference (line 185) | public static IParameterReferenceOperationWrapper? AsParameterReferenc...
    method AsMethodReference (line 188) | public static IMethodReferenceOperationWrapper? AsMethodReference(this...
    method AsObjectCreation (line 191) | public static IObjectCreationOperationWrapper? AsObjectCreation(this I...
    method AsPropertyReference (line 194) | public static IPropertyReferenceOperationWrapper? AsPropertyReference(...
    method AsRecursivePattern (line 197) | public static IRecursivePatternOperationWrapper? AsRecursivePattern(th...
    method AsSpread (line 200) | public static ISpreadOperationWrapper? AsSpread(this IOperation operat...
    method AsTuple (line 203) | public static ITupleOperationWrapper? AsTuple(this IOperation operatio...
    method AsVariableDeclarator (line 206) | public static IVariableDeclaratorOperationWrapper? AsVariableDeclarato...
    method ToAddressOf (line 209) | public static IAddressOfOperationWrapper ToAddressOf(this IOperation o...
    method ToAwait (line 212) | public static IAwaitOperationWrapper ToAwait(this IOperation operation...
    method ToArgument (line 215) | public static IArgumentOperationWrapper ToArgument(this IOperation ope...
    method ToArrayCreation (line 218) | public static IArrayCreationOperationWrapper ToArrayCreation(this IOpe...
    method ToAssignment (line 221) | public static IAssignmentOperationWrapper ToAssignment(this IOperation...
    method ToArrayElementReference (line 224) | public static IArrayElementReferenceOperationWrapper ToArrayElementRef...
    method ToBinary (line 227) | public static IBinaryOperationWrapper ToBinary(this IOperation operati...
    method ToBinaryPattern (line 230) | public static IBinaryPatternOperationWrapper ToBinaryPattern(this IOpe...
    method ToCatchClause (line 233) | public static ICatchClauseOperationWrapper ToCatchClause(this IOperati...
    method ToCompoundAssignment (line 236) | public static ICompoundAssignmentOperationWrapper ToCompoundAssignment...
    method ToConstantPattern (line 239) | public static IConstantPatternOperationWrapper ToConstantPattern(this ...
    method ToConversion (line 242) | public static IConversionOperationWrapper ToConversion(this IOperation...
    method ToDeclarationPattern (line 245) | public static IDeclarationPatternOperationWrapper ToDeclarationPattern...
    method ToEventReference (line 248) | public static IEventReferenceOperationWrapper ToEventReference(this IO...
    method ToFieldReference (line 251) | public static IFieldReferenceOperationWrapper ToFieldReference(this IO...
    method ToFlowCapture (line 254) | public static IFlowCaptureOperationWrapper ToFlowCapture(this IOperati...
    method ToFlowCaptureReference (line 257) | public static IFlowCaptureReferenceOperationWrapper ToFlowCaptureRefer...
    method ToIncrementOrDecrement (line 260) | public static IIncrementOrDecrementOperationWrapper ToIncrementOrDecre...
    method ToInvocation (line 263) | public static IInvocationOperationWrapper ToInvocation(this IOperation...
    method ToIsType (line 266) | public static IIsTypeOperationWrapper ToIsType(this IOperation operati...
    method ToLocalFunction (line 269) | public static ILocalFunctionOperationWrapper ToLocalFunction(this IOpe...
    method ToLocalReference (line 272) | public static ILocalReferenceOperationWrapper ToLocalReference(this IO...
    method ToMemberReference (line 275) | public static IMemberReferenceOperationWrapper ToMemberReference(this ...
    method ToMethodReference (line 278) | public static IMethodReferenceOperationWrapper ToMethodReference(this ...
    method ToNegatedPattern (line 281) | public static INegatedPatternOperationWrapper ToNegatedPattern(this IO...
    method ToObjectCreation (line 284) | public static IObjectCreationOperationWrapper ToObjectCreation(this IO...
    method ToPattern (line 287) | public static IPatternOperationWrapper ToPattern(this IOperation opera...
    method ToParameterReference (line 290) | public static IParameterReferenceOperationWrapper ToParameterReference...
    method ToPropertyReference (line 293) | public static IPropertyReferenceOperationWrapper ToPropertyReference(t...
    method ToRecursivePattern (line 296) | public static IRecursivePatternOperationWrapper ToRecursivePattern(thi...
    method ToRelationalPattern (line 299) | public static IRelationalPatternOperationWrapper ToRelationalPattern(t...
    method ToTypePattern (line 302) | public static ITypePatternOperationWrapper ToTypePattern(this IOperati...
    method ToTuple (line 305) | public static ITupleOperationWrapper ToTuple(this IOperation operation...
    method ToUnary (line 308) | public static IUnaryOperationWrapper ToUnary(this IOperation operation...
    method ToVariableDeclaration (line 311) | public static IVariableDeclarationOperationWrapper ToVariableDeclarati...
    method ToVariableDeclarator (line 314) | public static IVariableDeclaratorOperationWrapper ToVariableDeclarator...
    method UnwrapConversion (line 317) | public static IOperation UnwrapConversion(this IOperation operation)
    method Descendants (line 327) | private static IEnumerable<IOperation> Descendants(IOperation operatio...
    method ArgumentValue (line 359) | private static IOperation ArgumentValue(ImmutableArray<IOperation> arg...
    method OperationPrefix (line 372) | private static string OperationPrefix(IOperation op) =>
    method OperationSuffix (line 375) | private static string OperationSuffix(IOperation op) =>
    method As (line 384) | private static T? As<T>(this IOperation operation, OperationKind kind,...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/IsPatternExpressionSyntaxWrapperExtensions.cs
  class IsPatternExpressionSyntaxWrapperExtensions (line 20) | public static class IsPatternExpressionSyntaxWrapperExtensions
    method IsNull (line 22) | public static bool IsNull(this IsPatternExpressionSyntaxWrapper isPatt...
    method IsNot (line 25) | public static bool IsNot(this IsPatternExpressionSyntaxWrapper isPatte...
    method IsNotNull (line 31) | public static bool IsNotNull(this IsPatternExpressionSyntaxWrapper isP...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/PatternSyntaxWrapperExtensions.cs
  class PatternSyntaxWrapperExtensions (line 22) | public static class PatternSyntaxWrapperExtensions
    method IsNull (line 24) | public static bool IsNull(this PatternSyntaxWrapper patternSyntaxWrapp...
    method IsNot (line 30) | public static bool IsNot(this PatternSyntaxWrapper patternSyntaxWrappe...
    method RemoveParentheses (line 33) | public static SyntaxNode RemoveParentheses(this PatternSyntaxWrapper p...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/PropertyInfoExtensions.cs
  class PropertyInfoExtensions (line 23) | internal static class PropertyInfoExtensions
    method ReadCached (line 25) | public static T ReadCached<T>(this PropertyInfo property, object insta...
    method ReadCached (line 28) | public static T ReadCached<T>(this PropertyInfo property, object insta...
    method ReadCached (line 31) | public static T ReadCached<T>(this PropertyInfo property, object insta...
    method ReadCached (line 34) | public static ImmutableArray<T> ReadCached<T>(this PropertyInfo proper...
    method ReadCached (line 37) | public static ImmutableArray<T> ReadCached<T>(this PropertyInfo proper...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/SemanticModelExtensions.cs
  class SemanticModelExtensions (line 20) | public static class SemanticModelExtensions
    method GetSymbolOrCandidateSymbol (line 32) | public static ISymbol GetSymbolOrCandidateSymbol(this SemanticModel mo...

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/StringExtensions.cs
  class StringExtensions (line 22) | public static class StringExtensions
    method SplitCamelCaseToWords (line 41) | public static IEnumerable<string> SplitCamelCaseToWords(this string name)

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/SyntaxNodeExtensions.cs
  class SyntaxNodeExtensions (line 23) | internal static class SyntaxNodeExtensions
    method RemoveParentheses (line 27) | public static SyntaxNode RemoveParentheses(this SyntaxNode expression)

FILE: analyzers/src/SonarAnalyzer.CFG/Extensions/UnaryPatternSyntaxWrapperExtensions.cs
  class UnaryPatternSyntaxWrapperExtensions (line 22) | public static class UnaryPatternSyntaxWrapperExtensions
    method IsNot (line 24) | public static bool IsNot(this UnaryPatternSyntaxWrapper unaryPatternSy...
    method IsNotNull (line 27) | public static bool IsNotNull(this UnaryPatternSyntaxWrapper unaryPatte...

FILE: analyzers/src/SonarAnalyzer.CFG/LiveVariableAnalysis/LiveVariableAnalysisBase.cs
  class LiveVariableAnalysisBase (line 22) | public abstract class LiveVariableAnalysisBase<TCfg, TBlock>
    method IsLocal (line 30) | public abstract bool IsLocal(ISymbol symbol);
    method ProcessBlock (line 32) | protected abstract State ProcessBlock(TBlock block);
    method ReversedBlocks (line 33) | protected abstract IEnumerable<TBlock> ReversedBlocks();
    method Successors (line 34) | protected abstract IEnumerable<TBlock> Successors(TBlock block);
    method Predecessors (line 35) | protected abstract IEnumerable<TBlock> Predecessors(TBlock block);
    method LiveVariableAnalysisBase (line 40) | protected LiveVariableAnalysisBase(TCfg cfg, ISymbol originalDeclarati...
    method LiveIn (line 50) | public IEnumerable<ISymbol> LiveIn(TBlock block) =>
    method LiveOut (line 56) | public IEnumerable<ISymbol> LiveOut(TBlock block) =>
    method Analyze (line 59) | protected void Analyze()
    class State (line 101) | protected abstract class State

FILE: analyzers/src/SonarAnalyzer.CFG/LiveVariableAnalysis/RoslynLiveVariableAnalysis.cs
  class RoslynLiveVariableAnalysis (line 23) | public sealed class RoslynLiveVariableAnalysis : LiveVariableAnalysisBas...
    method RoslynLiveVariableAnalysis (line 34) | public RoslynLiveVariableAnalysis(ControlFlowGraph cfg, SyntaxClassifi...
    method ParameterOrLocalSymbols (line 51) | public IEnumerable<ISymbol> ParameterOrLocalSymbols(IOperation operation)
    method IsLocal (line 63) | public override bool IsLocal(ISymbol symbol) =>
    method ReversedBlocks (line 66) | protected override IEnumerable<BasicBlock> ReversedBlocks() =>
    method Predecessors (line 69) | protected override IEnumerable<BasicBlock> Predecessors(BasicBlock blo...
    method Successors (line 72) | protected override IEnumerable<BasicBlock> Successors(BasicBlock block...
    method ProcessBlock (line 75) | protected override State ProcessBlock(BasicBlock block)
    method ResolveCaptures (line 82) | private void ResolveCaptures(ControlFlowGraph cfg) =>
    method ResolveCaptures (line 85) | private void ResolveCaptures(ControlFlowGraph cfg, HashSet<ISymbol> pr...
    method ProcessFlowCapture (line 108) | private void ProcessFlowCapture(IFlowCaptureOperationWrapper flowCapture)
    method HandleLocalFunction (line 121) | private static IMethodSymbol HandleLocalFunction(ISet<ISymbol> process...
    method AppendFlowCaptureReference (line 136) | private void AppendFlowCaptureReference(CaptureId id, IEnumerable<ISym...
    method BuildBranches (line 146) | private void BuildBranches(BasicBlock block)
    method BuildBranchesCatch (line 201) | private void BuildBranchesCatch(BasicBlock source)
    method BuildBranchesToOuterCatch (line 213) | private void BuildBranchesToOuterCatch(BasicBlock source, ControlFlowR...
    method BuildBranchesFinally (line 225) | private void BuildBranchesFinally(BasicBlock source, ControlFlowRegion...
    method BuildBranchesRethrow (line 237) | private void BuildBranchesRethrow(BasicBlock block)
    method AddBranch (line 254) | private void AddBranch(BasicBlock source, BasicBlock destination)
    method TryRegionSuccessors (line 260) | private IEnumerable<ControlFlowBranch> TryRegionSuccessors(ControlFlow...
    method CatchOrFilterRegions (line 266) | private static IEnumerable<ControlFlowRegion> CatchOrFilterRegions(Con...
    method IsCatchAllType (line 281) | private static bool IsCatchAllType(ITypeSymbol exceptionType) =>
    method OriginalDeclaration (line 285) | private static ISymbol OriginalDeclaration(IOperation originalOperation)
    class RoslynState (line 303) | private sealed class RoslynState : State
      method RoslynState (line 308) | public RoslynState(RoslynLiveVariableAnalysis owner) =>
      method ProcessBlock (line 311) | public void ProcessBlock(ControlFlowGraph cfg, BasicBlock block)
      method ProcessOperation (line 319) | private void ProcessOperation(ControlFlowGraph cfg, IOperation opera...
      method ProcessParameterOrLocalReference (line 361) | private void ProcessParameterOrLocalReference(IOperationWrapper refe...
      method ProcessParameterOrLocalSymbols (line 367) | private void ProcessParameterOrLocalSymbols(IEnumerable<ISymbol> sym...
      method ProcessSimpleAssignment (line 380) | private void ProcessSimpleAssignment(ISimpleAssignmentOperationWrapp...
      method ProcessFlowAnonymousFunction (line 387) | private void ProcessFlowAnonymousFunction(ControlFlowGraph cfg, IFlo...
      method ProcessCaptured (line 395) | private void ProcessCaptured(ControlFlowGraph cfg)
      method ProcessCapturedLocalFunction (line 419) | private void ProcessCapturedLocalFunction(ControlFlowGraph cfg, IMet...
      method ProcessLocalFunction (line 427) | private void ProcessLocalFunction(ControlFlowGraph cfg, IMethodSymbo...

FILE: analyzers/src/SonarAnalyzer.CFG/Operations/Utilities/OperationExecutionOrder.cs
  class OperationExecutionOrder (line 22) | public class OperationExecutionOrder : IEnumerable<IOperationWrapperSonar>
    method OperationExecutionOrder (line 27) | public OperationExecutionOrder(IEnumerable<IOperation> operations, boo...
    method GetEnumerator (line 33) | public IEnumerator<IOperationWrapperSonar> GetEnumerator() =>
    method GetEnumerator (line 36) | IEnumerator IEnumerable.GetEnumerator() =>
    class Enumerator (line 39) | private sealed class Enumerator : IEnumerator<IOperationWrapperSonar>
      method Enumerator (line 47) | public Enumerator(OperationExecutionOrder owner)
      method MoveNext (line 53) | public bool MoveNext()
      method Reset (line 81) | public void Reset()
      method Dispose (line 87) | public void Dispose()
      method Init (line 95) | private void Init()
    class StackItem (line 105) | private sealed class StackItem : IDisposable
      method StackItem (line 110) | public StackItem(IOperation operation)
      method NextChild (line 116) | public IOperation NextChild() =>
      method DisposeEnumeratorAndReturnOperation (line 119) | public IOperationWrapperSonar DisposeEnumeratorAndReturnOperation()
      method Dispose (line 125) | public void Dispose() =>

FILE: analyzers/src/SonarAnalyzer.CFG/Operations/Utilities/OperationFinder.cs
  class OperationFinder (line 22) | public abstract class OperationFinder<TResult>
    method TryFindOperation (line 24) | protected abstract bool TryFindOperation(IOperationWrapperSonar operat...
    method TryFind (line 26) | public bool TryFind(BasicBlock block, out TResult result) =>
    method TryFind (line 29) | protected bool TryFind(IEnumerable<IOperation> operations, out TResult...

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/BasicBlock.cs
  class BasicBlock (line 23) | public class BasicBlock
    method BasicBlock (line 66) | static BasicBlock()
    method BasicBlock (line 83) | private BasicBlock(object instance)
    method Wrap (line 103) | public static BasicBlock Wrap(object instance) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/CfgAllPathValidator.cs
  class CfgAllPathValidator (line 20) | public abstract class CfgAllPathValidator
    method IsValid (line 24) | protected abstract bool IsValid(BasicBlock block);
    method IsInvalid (line 25) | protected abstract bool IsInvalid(BasicBlock block);
    method CfgAllPathValidator (line 27) | protected CfgAllPathValidator(ControlFlowGraph cfg) =>
    method CheckAllPaths (line 30) | public bool CheckAllPaths()

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/ControlFlowBranch.cs
  class ControlFlowBranch (line 23) | public class ControlFlowBranch
    method ControlFlowBranch (line 51) | static ControlFlowBranch()
    method ControlFlowBranch (line 65) | private ControlFlowBranch(object instance) =>
    method Wrap (line 68) | public static ControlFlowBranch Wrap(object instance) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/ControlFlowGraph.cs
  class ControlFlowGraph (line 24) | public class ControlFlowGraph
    method ControlFlowGraph (line 52) | static ControlFlowGraph()
    method ControlFlowGraph (line 69) | private ControlFlowGraph(object instance)
    method Create (line 76) | public static ControlFlowGraph Create(SyntaxNode node, SemanticModel s...
    method GetAnonymousFunctionControlFlowGraph (line 81) | public ControlFlowGraph GetAnonymousFunctionControlFlowGraph(IFlowAnon...
    method GetLocalFunctionControlFlowGraph (line 86) | public ControlFlowGraph GetLocalFunctionControlFlowGraph(IMethodSymbol...
    method Wrap (line 91) | public static ControlFlowGraph Wrap(object instance) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/ControlFlowGraphCache.cs
  class ControlFlowGraphCacheBase (line 24) | public abstract class ControlFlowGraphCacheBase
    method HasNestedCfg (line 29) | protected abstract bool HasNestedCfg(SyntaxNode node);
    method IsLocalFunction (line 30) | protected abstract bool IsLocalFunction(SyntaxNode node);
    method FindOrCreate (line 32) | public ControlFlowGraph FindOrCreate(SyntaxNode declaration, SemanticM...
    class Wrapper (line 77) | private sealed class Wrapper
      method Wrapper (line 83) | public Wrapper(ControlFlowGraph cfg) =>
      method FlowOperation (line 86) | public IFlowAnonymousFunctionOperationWrapper FlowOperation(SyntaxNo...

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/ControlFlowRegion.cs
  class ControlFlowRegion (line 23) | public class ControlFlowRegion
    method ControlFlowRegion (line 57) | static ControlFlowRegion()
    method ControlFlowRegion (line 73) | private ControlFlowRegion(object instance) =>
    method Wrap (line 76) | public static ControlFlowRegion Wrap(object instance) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Roslyn/TypeLoader.cs
  class TypeLoader (line 20) | internal static class TypeLoader
    method FlowAnalysisType (line 22) | public static Type FlowAnalysisType(string typeName) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/AbstractControlFlowGraphBuilder.cs
  class AbstractControlFlowGraphBuilder (line 20) | public abstract class AbstractControlFlowGraphBuilder
    class ControlFlowGraph (line 22) | private class ControlFlowGraph : IControlFlowGraph
      method ControlFlowGraph (line 30) | public ControlFlowGraph(List<Block> reversedBlocks, Block entryBlock...
      method RemoveEmptyBlocks (line 51) | private static Block RemoveEmptyBlocks(List<Block> reversedBlocks, B...
      method ComputePredecessors (line 86) | private void ComputePredecessors()
    method AbstractControlFlowGraphBuilder (line 103) | protected AbstractControlFlowGraphBuilder(SyntaxNode node, SemanticMod...
    method PostProcessGraph (line 111) | protected abstract void PostProcessGraph();
    method Build (line 113) | public IControlFlowGraph Build()
    method Build (line 121) | protected abstract Block Build(SyntaxNode node, Block currentBlock);
    method CreateBinaryBranchBlock (line 125) | internal BinaryBranchBlock CreateBinaryBranchBlock(SyntaxNode branchin...
    method CreateBlock (line 128) | internal SimpleBlock CreateBlock(Block successor) =>
    method CreateJumpBlock (line 131) | internal JumpBlock CreateJumpBlock(SyntaxNode jumpStatement, Block suc...
    method CreateBranchBlock (line 134) | internal BranchBlock CreateBranchBlock(SyntaxNode branchingNode, IEnum...
    method CreateExitBlock (line 137) | private ExitBlock CreateExitBlock() => AddBlock(new ExitBlock());
    method CreateTemporaryBlock (line 139) | internal TemporaryBlock CreateTemporaryBlock() => AddBlock(new Tempora...
    method AddBlock (line 141) | internal T AddBlock<T>(T block)

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/BlockIdProvider.cs
  class BlockIdProvider (line 20) | public  class BlockIdProvider
    method Get (line 25) | public string Get(Block cfgBlock) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/BinaryBranchBlock.cs
  class BinaryBranchBlock (line 20) | public class BinaryBranchBlock : BranchBlock
    method BinaryBranchBlock (line 22) | internal BinaryBranchBlock(SyntaxNode branchingNode, Block trueSuccess...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/BinaryBranchingSimpleBlock.cs
  class BinaryBranchingSimpleBlock (line 20) | public sealed class BinaryBranchingSimpleBlock : SimpleBlock
    method BinaryBranchingSimpleBlock (line 22) | internal BinaryBranchingSimpleBlock(SyntaxNode branchingInstruction, B...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/Block.cs
  class Block (line 24) | public class Block
    method Block (line 32) | protected Block()
    method GetPossibleNonEmptySuccessorBlock (line 50) | internal virtual Block GetPossibleNonEmptySuccessorBlock()
    method ReplaceSuccessors (line 55) | internal virtual void ReplaceSuccessors(Dictionary<Block, Block> repla...
    method GetAll (line 63) | private static ISet<Block> GetAll(Block initial, Func<Block, IEnumerab...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/BranchBlock.cs
  class BranchBlock (line 20) | public class BranchBlock : Block
    method BranchBlock (line 22) | internal BranchBlock(SyntaxNode branchingNode, params Block[] successors)
    method ReplaceSuccessors (line 34) | internal override void ReplaceSuccessors(Dictionary<Block, Block> repl...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/ExitBlock.cs
  class ExitBlock (line 20) | public sealed class ExitBlock : Block
    method ExitBlock (line 22) | internal ExitBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/ForInitializerBlock.cs
  class ForInitializerBlock (line 22) | public sealed class ForInitializerBlock : SimpleBlock
    method ForInitializerBlock (line 24) | internal ForInitializerBlock(ForStatementSyntax forNode, Block successor)
    method GetPossibleNonEmptySuccessorBlock (line 32) | internal override Block GetPossibleNonEmptySuccessorBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/ForeachCollectionProducerBlock.cs
  class ForeachCollectionProducerBlock (line 22) | public sealed class ForeachCollectionProducerBlock : SimpleBlock
    method ForeachCollectionProducerBlock (line 24) | internal ForeachCollectionProducerBlock(StatementSyntax foreachNode, B...
    method GetPossibleNonEmptySuccessorBlock (line 32) | internal override Block GetPossibleNonEmptySuccessorBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/JumpBlock.cs
  class JumpBlock (line 20) | public sealed class JumpBlock : SimpleBlock
    method JumpBlock (line 22) | internal JumpBlock(SyntaxNode jumpNode, Block successor, Block wouldBe...
    method GetPossibleNonEmptySuccessorBlock (line 37) | internal override Block GetPossibleNonEmptySuccessorBlock()
    method ReplaceSuccessors (line 43) | internal override void ReplaceSuccessors(Dictionary<Block, Block> repl...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/LockBlock.cs
  class LockBlock (line 22) | public class LockBlock : SimpleBlock
    method LockBlock (line 24) | public LockBlock(LockStatementSyntax lockNode, Block successor)
    method GetPossibleNonEmptySuccessorBlock (line 32) | internal override Block GetPossibleNonEmptySuccessorBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/SimpleBlock.cs
  class SimpleBlock (line 20) | public class SimpleBlock : Block
    method SimpleBlock (line 22) | internal SimpleBlock(Block successor)
    method ReplaceSuccessors (line 31) | internal override void ReplaceSuccessors(Dictionary<Block, Block> repl...
    method GetPossibleNonEmptySuccessorBlock (line 39) | internal override Block GetPossibleNonEmptySuccessorBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/TemporaryBlock.cs
  class TemporaryBlock (line 20) | public sealed class TemporaryBlock : Block
    method GetPossibleNonEmptySuccessorBlock (line 26) | internal override Block GetPossibleNonEmptySuccessorBlock()

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/Blocks/UsingEndBlock.cs
  class UsingEndBlock (line 22) | public class UsingEndBlock : SimpleBlock
    method UsingEndBlock (line 27) | public UsingEndBlock(UsingStatementSyntax usingStatement, Block succes...
    method GetIdentifiers (line 37) | private static IEnumerable<SyntaxToken> GetIdentifiers(VariableDeclara...
    method GetIdentifiers (line 44) | private static IEnumerable<SyntaxToken> GetIdentifiers(ExpressionSynta...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/CSharpControlFlowGraph.cs
  class CSharpControlFlowGraph (line 22) | public static class CSharpControlFlowGraph
    method TryGet (line 24) | public static bool TryGet(SyntaxNode node, SemanticModel semanticModel...
    method Create (line 65) | internal /* for testing */ static IControlFlowGraph Create(SyntaxNode ...

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/CSharpControlFlowGraphBuilder.cs
  class CSharpControlFlowGraphBuilder (line 23) | public sealed class CSharpControlFlowGraphBuilder : AbstractControlFlowG...
    method CSharpControlFlowGraphBuilder (line 35) | public CSharpControlFlowGraphBuilder(SyntaxNode node, SemanticModel se...
    method PostProcessGraph (line 42) | protected override void PostProcessGraph()
    method FixJumps (line 47) | private void FixJumps<TLabel>(Dictionary<TLabel, List<JumpBlock>> jump...
    method Build (line 69) | protected override Block Build(SyntaxNode node, Block currentBlock)
    method BuildConstructorInitializer (line 99) | private Block BuildConstructorInitializer(ConstructorInitializerSyntax...
    method BuildStatement (line 110) | private Block BuildStatement(StatementSyntax statement, Block currentB...
    method BuildExpression (line 208) | private Block BuildExpression(ExpressionSyntax expression, Block curre...
    method IsTooComplex (line 491) | private static bool IsTooComplex(SyntaxNode node)
    method BuildStatements (line 507) | private Block BuildStatements(IEnumerable<StatementSyntax> statements,...
    method BuildExpressions (line 517) | private Block BuildExpressions(IEnumerable<ExpressionSyntax> expressio...
    method BuildLabeledStatement (line 529) | private Block BuildLabeledStatement(LabeledStatementSyntax labeledStat...
    method BuildTryStatement (line 539) | private Block BuildTryStatement(TryStatementSyntax tryStatement, Block...
    method IsCatchingAllExceptions (line 624) | private static bool IsCatchingAllExceptions(CatchClauseSyntax catchCla...
    method BuildGotoDefaultStatement (line 637) | private Block BuildGotoDefaultStatement(GotoStatementSyntax statement,...
    method BuildGotoCaseStatement (line 657) | private Block BuildGotoCaseStatement(GotoStatementSyntax statement, Bl...
    method BuildGotoStatement (line 678) | private Block BuildGotoStatement(GotoStatementSyntax statement, Block ...
    method BuildSwitchStatement (line 701) | private Block BuildSwitchStatement(SwitchStatementSyntax switchStateme...
    method BuildSwitchExpression (line 763) | private Block BuildSwitchExpression(SwitchExpressionSyntaxWrapper swit...
    method BuildArmBranch (line 785) | private Block BuildArmBranch(SwitchExpressionArmSyntaxWrapper switchEx...
    method CreateCurrentBlock (line 796) | private Block CreateCurrentBlock(SwitchExpressionArmSyntaxWrapper swit...
    method BuildCasePattern (line 801) | private Block BuildCasePattern(CasePatternSwitchLabelSyntaxWrapper cas...
    method CreateWhenCloseNewTrueSuccessor (line 813) | private Block CreateWhenCloseNewTrueSuccessor(WhenClauseSyntaxWrapper ...
    method GetCaseIndexer (line 818) | private object GetCaseIndexer(ExpressionSyntax expression)
    method BuildBreakStatement (line 839) | private Block BuildBreakStatement(BreakStatementSyntax breakStatement,...
    method BuildContinueStatement (line 858) | private Block BuildContinueStatement(ContinueStatementSyntax continueS...
    method BuildReturnStatement (line 869) | private Block BuildReturnStatement(ReturnStatementSyntax returnStateme...
    method BuildThrowStatement (line 874) | private Block BuildThrowStatement(ThrowStatementSyntax throwStatement,...
    method BuildYieldBreakStatement (line 879) | private Block BuildYieldBreakStatement(YieldStatementSyntax yieldBreak...
    method BuildYieldReturnStatement (line 884) | private Block BuildYieldReturnStatement(YieldStatementSyntax yieldRetu...
    method BuildJumpToExitStatement (line 889) | private Block BuildJumpToExitStatement(StatementSyntax statement, Bloc...
    method BuildJumpToExitStatement (line 901) | private Block BuildJumpToExitStatement(ExpressionSyntax expression, Bl...
    method BuildLockStatement (line 910) | private Block BuildLockStatement(LockStatementSyntax lockStatement, Bl...
    method BuildUsingStatement (line 917) | private Block BuildUsingStatement(UsingStatementSyntax usingStatement,...
    method BuildFixedStatement (line 927) | private Block BuildFixedStatement(FixedStatementSyntax fixedStatement,...
    method BuildUnsafeStatement (line 933) | private Block BuildUnsafeStatement(UnsafeStatementSyntax statement, Bl...
    method BuildCheckedStatement (line 939) | private Block BuildCheckedStatement(CheckedStatementSyntax statement, ...
    method BuildDoStatement (line 949) | private Block BuildDoStatement(DoStatementSyntax doStatement, Block cu...
    method BuildForStatement (line 968) | private Block BuildForStatement(ForStatementSyntax forStatement, Block...
    method BuildForEachVariableStatement (line 999) | private Block BuildForEachVariableStatement(ForEachVariableStatementSy...
    method BuildForEachStatement (line 1002) | private Block BuildForEachStatement(ForEachStatementSyntax foreachStat...
    method BuildForEachStatement (line 1005) | private Block BuildForEachStatement(StatementSyntax foreachStatement, ...
    method BuildWhileStatement (line 1023) | private Block BuildWhileStatement(WhileStatementSyntax whileStatement,...
    method BuildIfStatement (line 1046) | private Block BuildIfStatement(IfStatementSyntax ifStatement, Block cu...
    method BuildBlock (line 1062) | private Block BuildBlock(BlockSyntax block, Block currentBlock)
    method BuildConditionalAccessExpression (line 1073) | private Block BuildConditionalAccessExpression(ConditionalAccessExpres...
    method BuildConditionalExpression (line 1082) | private Block BuildConditionalExpression(ConditionalExpressionSyntax c...
    method BuildCoalesceExpression (line 1090) | private Block BuildCoalesceExpression(BinaryExpressionSyntax expressio...
    method BuildLogicalAndExpression (line 1097) | private Block BuildLogicalAndExpression(BinaryExpressionSyntax express...
    method BuildLogicalOrExpression (line 1105) | private Block BuildLogicalOrExpression(BinaryExpressionSyntax expressi...
    method BuildArrayCreationExpression (line 1113) | private Block BuildArrayCreationExpression(ArrayCreationExpressionSynt...
    method BuildElementAccessExpression (line 1121) | private Block BuildElementAccessExpression(ElementAccessExpressionSynt...
    method BuildImplicitElementAccessExpression (line 1127) | private Block BuildImplicitElementAccessExpression(ImplicitElementAcce...
    method BuildInvocationLikeExpression (line 1132) | private Block BuildInvocationLikeExpression(ExpressionSyntax parent, B...
    method BuildObjectCreationExpression (line 1165) | private Block BuildObjectCreationExpression(ObjectCreationExpressionSy...
    method BuildAnonymousObjectCreationExpression (line 1177) | private Block BuildAnonymousObjectCreationExpression(AnonymousObjectCr...
    method BuildInvocationExpression (line 1184) | private Block BuildInvocationExpression(InvocationExpressionSyntax exp...
    method BuildInterpolatedStringExpression (line 1190) | private Block BuildInterpolatedStringExpression(InterpolatedStringExpr...
    method BuildSimpleNestedExpression (line 1197) | private Block BuildSimpleNestedExpression(ExpressionSyntax parent, Blo...
    method BuildSimpleNestedExpression (line 1203) | private Block BuildSimpleNestedExpression(ExpressionSyntax parent, Blo...
    method BuildBinaryExpression (line 1217) | private Block BuildBinaryExpression(BinaryExpressionSyntax expression,...
    method BuildAssignmentExpression (line 1224) | private Block BuildAssignmentExpression(AssignmentExpressionSyntax exp...
    method BuildCoalesceAssignmentExpression (line 1231) | private Block BuildCoalesceAssignmentExpression(AssignmentExpressionSy...
    method BuildSimpleAssignmentExpression (line 1238) | private Block BuildSimpleAssignmentExpression(AssignmentExpressionSynt...
    method IsAssignmentWithSimpleLeftSide (line 1250) | public static bool IsAssignmentWithSimpleLeftSide(AssignmentExpression...
    method BuildArrayType (line 1255) | private Block BuildArrayType(ArrayTypeSyntax arrayType, Block currentB...
    method BuildIsPatternExpression (line 1263) | private Block BuildIsPatternExpression(IsPatternExpressionSyntaxWrappe...
    method BuildPatternExpression (line 1270) | private Block BuildPatternExpression(PatternSyntaxWrapper patternSynta...
    method BuildTupleExpression (line 1300) | private Block BuildTupleExpression(TupleExpressionSyntaxWrapper tuple,...
    method BuildVariableDeclaration (line 1314) | private Block BuildVariableDeclaration(VariableDeclarationSyntax decla...
    method BuildVariableDeclarator (line 1330) | private Block BuildVariableDeclarator(VariableDeclaratorSyntax variabl...
    method CreateLockBlock (line 1345) | internal LockBlock CreateLockBlock(LockStatementSyntax lockStatement, ...
    method CreateUsingFinalizerBlock (line 1348) | internal UsingEndBlock CreateUsingFinalizerBlock(UsingStatementSyntax ...
    method BuildCondition (line 1359) | private Block BuildCondition(ExpressionSyntax expression, Block trueSu...
    method IsNameof (line 1396) | private bool IsNameof(InvocationExpressionSyntax expression) =>

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/CfgAllPathValidator.cs
  class CfgAllPathValidator (line 20) | public class CfgAllPathValidator
    method CfgAllPathValidator (line 26) | protected CfgAllPathValidator(IControlFlowGraph cfg)
    method CheckAllPaths (line 31) | public bool CheckAllPaths()
    method IsBlockValidWithSuccessors (line 36) | private bool IsBlockValidWithSuccessors(Block block)
    method AreAllSuccessorsValid (line 41) | private bool AreAllSuccessorsValid(Block block)
    method IsBlockValid (line 56) | protected virtual bool IsBlockValid(Block block)
    method IsBlockInvalid (line 61) | protected virtual bool IsBlockInvalid(Block block)

FILE: analyzers/src/SonarAnalyzer.CFG/Sonar/IControlFlowGraph.cs
  type IControlFlowGraph (line 24) | public interface IControlFlowGraph

FILE: analyzers/src/SonarAnalyzer.CFG/Syntax/Utilities/SyntaxClassifierBase.cs
  class SyntaxClassifierBase (line 25) | public abstract class SyntaxClassifierBase
    method MemberAccessExpression (line 27) | public abstract SyntaxNode MemberAccessExpression(SyntaxNode node);
    method IsCfgBoundary (line 28) | protected abstract bool IsCfgBoundary(SyntaxNode node);
    method IsStatement (line 29) | protected abstract bool IsStatement(SyntaxNode node);
    method ParentLoopCondition (line 30) | protected abstract SyntaxNode ParentLoopCondition(SyntaxNode node);
    method IsInLoopCondition (line 33) | public bool IsInLoopCondition(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Common/DescriptorFactory.cs
  class DescriptorFactory (line 22) | public static class DescriptorFactory
    method Create (line 24) | public static DiagnosticDescriptor Create(string id, string messageFor...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Common/SyntaxConstants.cs
  class SyntaxConstants (line 20) | public static class SyntaxConstants

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/CSharpCompilationExtensions.cs
  class CSharpCompilationExtensions (line 20) | public static class CSharpCompilationExtensions
    method IsCoalesceAssignmentSupported (line 22) | public static bool IsCoalesceAssignmentSupported(this Compilation comp...
    method IsTargetTypeConditionalSupported (line 25) | public static bool IsTargetTypeConditionalSupported(this Compilation c...
    method IsLambdaDiscardParameterSupported (line 28) | public static bool IsLambdaDiscardParameterSupported(this Compilation ...
    method IsAtLeastLanguageVersion (line 31) | public static bool IsAtLeastLanguageVersion(this Compilation compilati...
    method GetLanguageVersion (line 34) | public static LanguageVersion GetLanguageVersion(this Compilation comp...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/IAnalyzerConfigurationExtensions.cs
  class IAnalyzerConfigurationExtensions (line 20) | public static class IAnalyzerConfigurationExtensions
    method UseSonarCfg (line 22) | public static bool UseSonarCfg(this IAnalyzerConfiguration configurati...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/ICompilationReportExtensions.cs
  class ICompilationReportExtensions (line 21) | public static class ICompilationReportExtensions
    method ReportIssue (line 25) | public void ReportIssue(DiagnosticDescriptor rule, SyntaxNode location...
    method ReportIssue (line 28) | public void ReportIssue(DiagnosticDescriptor rule, SyntaxToken locatio...
    method ReportIssue (line 31) | public void ReportIssue(DiagnosticDescriptor rule, Location location, ...
    method ReportIssue (line 34) | public void ReportIssue(DiagnosticDescriptor rule, Location primaryLoc...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/IFieldSymbolExtensions.cs
  class IFieldSymbolExtensions (line 20) | public static class IFieldSymbolExtensions
    method IsNonStaticNonPublicDisposableField (line 22) | public static bool IsNonStaticNonPublicDisposableField(this IFieldSymb...
    method IsDisposable (line 28) | private static bool IsDisposable(this IFieldSymbol fieldSymbol, Langua...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/ILocalSymbolExtensions.cs
  class ILocalSymbolExtensions (line 20) | public static class ILocalSymbolExtensions
    method RefKind (line 24) | public static RefKind RefKind(this ILocalSymbol symbol) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/IMethodSymbolExtensions.cs
  class IMethodSymbolExtensions (line 20) | public static class IMethodSymbolExtensions
    method IsModuleInitializer (line 22) | public static bool IsModuleInitializer(this IMethodSymbol methodSymbol...
    method IsGetTypeCall (line 25) | public static bool IsGetTypeCall(this IMethodSymbol invokedMethod) =>
    method ImplementationSyntax (line 31) | public static SyntaxNode ImplementationSyntax(this IMethodSymbol metho...
    method IsObjectOrType (line 34) | private static bool IsObjectOrType(ITypeSymbol namedType) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/ISymbolExtensions.cs
  class ISymbolExtensions (line 20) | public static class ISymbolExtensions
    method extension (line 30) | extension(ISymbol symbol)
    method LocationNodes (line 46) | public IEnumerable<SyntaxNode> LocationNodes(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/ITupleOperationWrapperExtensions.cs
  class ITupleOperationWrapperExtensions (line 20) | public static class ITupleOperationWrapperExtensions
    method AllElements (line 22) | public static ImmutableArray<IOperation> AllElements(this ITupleOperat...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/ITypeSymbolExtensions.cs
  class ITypeSymbolExtensions (line 20) | public static class ITypeSymbolExtensions
    method IsDisposableRefStruct (line 22) | public static bool IsDisposableRefStruct(this ITypeSymbol symbol, Lang...
    method IsRefStruct (line 27) | public static bool IsRefStruct(this ITypeSymbol symbol) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/LanguageVersionExtensions.cs
  class LanguageVersionExtensions (line 20) | internal static class LanguageVersionExtensions
    method IsAtLeast (line 22) | internal static bool IsAtLeast(this LanguageVersion left, LanguageVers...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/SonarAnalysisContextExtensions.cs
  class SonarAnalysisContextExtensions (line 20) | public static class SonarAnalysisContextExtensions
    method extension (line 22) | extension(SonarAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/SonarCompilationStartAnalysisContextExtensions.cs
  class SonarCompilationStartAnalysisContextExtensions (line 20) | public static class SonarCompilationStartAnalysisContextExtensions
    method extension (line 22) | extension(SonarCompilationStartAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/SonarParametrizedAnalysisContextExtensions.cs
  class SonarParametrizedAnalysisContextExtensions (line 20) | public static class SonarParametrizedAnalysisContextExtensions
    method extension (line 22) | extension(SonarParametrizedAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Extensions/SonarSyntaxNodeReportingContextExtensions.cs
  class SonarSyntaxNodeReportingContextExtensions (line 20) | public static class SonarSyntaxNodeReportingContextExtensions
    method extension (line 22) | extension(SonarSyntaxNodeReportingContext context)
    method IsInExpressionTree (line 29) | public bool IsInExpressionTree() =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Facade/CSharpFacade.cs
  class CSharpFacade (line 24) | public sealed class CSharpFacade : ILanguageFacade<SyntaxKind>
    method CSharpFacade (line 44) | private CSharpFacade() { }
    method CreateDescriptor (line 46) | public DiagnosticDescriptor CreateDescriptor(string id, string message...
    method FindConstantValue (line 49) | public object FindConstantValue(SemanticModel model, SyntaxNode node) =>
    method MethodParameterLookup (line 52) | public IMethodParameterLookup MethodParameterLookup(SyntaxNode invocat...
    method MethodParameterLookup (line 60) | public IMethodParameterLookup MethodParameterLookup(SyntaxNode invocat...
    method GetName (line 65) | public string GetName(SyntaxNode expression) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Facade/Implementation/CSharpSyntaxFacade.cs
  class CSharpSyntaxFacade (line 22) | internal sealed class CSharpSyntaxFacade : SyntaxFacade<SyntaxKind>
    method AreEquivalent (line 24) | public override bool AreEquivalent(SyntaxNode firstNode, SyntaxNode se...
    method ArgumentExpressions (line 27) | public override IEnumerable<SyntaxNode> ArgumentExpressions(SyntaxNode...
    method ArgumentList (line 30) | public override IReadOnlyList<SyntaxNode> ArgumentList(SyntaxNode node...
    method ArgumentIndex (line 33) | public override int? ArgumentIndex(SyntaxNode argument) =>
    method ArgumentNameColon (line 36) | public override SyntaxToken? ArgumentNameColon(SyntaxNode argument) =>
    method AssignmentLeft (line 39) | public override SyntaxNode AssignmentLeft(SyntaxNode assignment) =>
    method AssignmentRight (line 42) | public override SyntaxNode AssignmentRight(SyntaxNode assignment) =>
    method AssignmentTargets (line 45) | public override ImmutableArray<SyntaxNode> AssignmentTargets(SyntaxNod...
    method BinaryExpressionLeft (line 48) | public override SyntaxNode BinaryExpressionLeft(SyntaxNode binary) =>
    method BinaryExpressionRight (line 51) | public override SyntaxNode BinaryExpressionRight(SyntaxNode binary) =>
    method CastType (line 54) | public override SyntaxNode CastType(SyntaxNode cast) =>
    method CastExpression (line 57) | public override SyntaxNode CastExpression(SyntaxNode cast) =>
    method ComparisonKind (line 60) | public override ComparisonKind ComparisonKind(SyntaxNode node) =>
    method EnumMembers (line 65) | public override IEnumerable<SyntaxNode> EnumMembers(SyntaxNode @enum) =>
    method FieldDeclarationIdentifiers (line 68) | public override ImmutableArray<SyntaxToken> FieldDeclarationIdentifier...
    method HasExactlyNArguments (line 71) | public override bool HasExactlyNArguments(SyntaxNode invocation, int c...
    method InvocationIdentifier (line 74) | public override SyntaxToken? InvocationIdentifier(SyntaxNode invocatio...
    method IsAnyKind (line 77) | public override bool IsAnyKind(SyntaxNode node, ISet<SyntaxKind> synta...
    method IsAnyKind (line 79) | [Obsolete("Either use '.Kind() is A or B' or the overload with the ISe...
    method IsAnyKind (line 82) | public override bool IsAnyKind(SyntaxTrivia trivia, ISet<SyntaxKind> s...
    method IsInExpressionTree (line 84) | public override bool IsInExpressionTree(SemanticModel model, SyntaxNod...
    method IsKind (line 87) | public override bool IsKind(SyntaxNode node, SyntaxKind kind) => node....
    method IsKind (line 89) | public override bool IsKind(SyntaxToken token, SyntaxKind kind) => tok...
    method IsKind (line 91) | public override bool IsKind(SyntaxTrivia trivia, SyntaxKind kind) => t...
    method IsKnownAttributeType (line 93) | public override bool IsKnownAttributeType(SemanticModel model, SyntaxN...
    method IsMemberAccessOnKnownType (line 96) | public override bool IsMemberAccessOnKnownType(SyntaxNode memberAccess...
    method IsNullLiteral (line 99) | public override bool IsNullLiteral(SyntaxNode node) =>
    method IsPartOfBinaryNegationOrCondition (line 102) | public override bool IsPartOfBinaryNegationOrCondition(SyntaxNode node...
    method IsStatic (line 105) | public override bool IsStatic(SyntaxNode node) =>
    method IsWrittenTo (line 109) | public override bool IsWrittenTo(SyntaxNode expression, SemanticModel ...
    method Kind (line 112) | public override SyntaxKind Kind(SyntaxNode node) => node.Kind();
    method LiteralText (line 114) | public override string LiteralText(SyntaxNode literal) =>
    method LocalDeclarationIdentifiers (line 117) | public override ImmutableArray<SyntaxToken> LocalDeclarationIdentifier...
    method ModifierKinds (line 120) | public override SyntaxKind[] ModifierKinds(SyntaxNode node) =>
    method NodeExpression (line 128) | public override SyntaxNode NodeExpression(SyntaxNode node) =>
    method NodeIdentifier (line 143) | public override SyntaxToken? NodeIdentifier(SyntaxNode node) =>
    method ObjectCreationTypeIdentifier (line 146) | public override SyntaxToken? ObjectCreationTypeIdentifier(SyntaxNode o...
    method RemoveConditionalAccess (line 149) | public override SyntaxNode RemoveConditionalAccess(SyntaxNode node) =>
    method RemoveParentheses (line 154) | public override SyntaxNode RemoveParentheses(SyntaxNode node) =>
    method StringValue (line 157) | public override string StringValue(SyntaxNode node, SemanticModel mode...
    method InterpolatedTextValue (line 160) | public override string InterpolatedTextValue(SyntaxNode node, Semantic...
    method Operands (line 163) | public override Pair<SyntaxNode, SyntaxNode> Operands(SyntaxNode invoc...
    method ParseExpression (line 166) | public override SyntaxNode ParseExpression(string expression) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Facade/Implementation/CSharpSyntaxKindFacade.cs
  class CSharpSyntaxKindFacade (line 20) | internal sealed class CSharpSyntaxKindFacade : ISyntaxKindFacade<SyntaxK...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Facade/Implementation/CSharpTrackerFacade.cs
  class CSharpTrackerFacade (line 23) | internal sealed class CSharpTrackerFacade : ITrackerFacade<SyntaxKind>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/LiveVariableAnalysis/SonarCSharpLiveVariableAnalysis.cs
  class SonarCSharpLiveVariableAnalysis (line 23) | public sealed class SonarCSharpLiveVariableAnalysis : LiveVariableAnalys...
    method SonarCSharpLiveVariableAnalysis (line 29) | public SonarCSharpLiveVariableAnalysis(IControlFlowGraph controlFlowGr...
    method IsLocal (line 36) | public override bool IsLocal(ISymbol symbol)
    method IsOutArgument (line 47) | public static bool IsOutArgument(IdentifierNameSyntax identifier) =>
    method ReversedBlocks (line 50) | protected override IEnumerable<Block> ReversedBlocks() =>
    method Successors (line 53) | protected override IEnumerable<Block> Successors(Block block) =>
    method Predecessors (line 56) | protected override IEnumerable<Block> Predecessors(Block block) =>
    method ProcessBlock (line 59) | protected override State ProcessBlock(Block block)
    class SonarState (line 66) | private sealed class SonarState : State
      method SonarState (line 73) | public SonarState(SonarCSharpLiveVariableAnalysis owner, SemanticMod...
      method ProcessBlock (line 79) | public void ProcessBlock(Block block)
      method ProcessVariableInForeach (line 134) | private void ProcessVariableInForeach(ForEachStatementSyntax foreach...
      method ProcessVariableDeclarator (line 143) | private void ProcessVariableDeclarator(VariableDeclaratorSyntax inst...
      method ProcessSimpleAssignment (line 152) | private void ProcessSimpleAssignment(AssignmentExpressionSyntax assi...
      method ProcessIdentifier (line 165) | private void ProcessIdentifier(IdentifierNameSyntax identifier)
      method ProcessGenericName (line 190) | private void ProcessGenericName(GenericNameSyntax genericName)
      method ProcessLocalFunction (line 199) | private void ProcessLocalFunction(ISymbol symbol)
      method CollectAllCapturedLocal (line 215) | private void CollectAllCapturedLocal(SyntaxNode instruction)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/RegularExpressions/MessageTemplatesParser.cs
  class MessageTemplatesParser (line 25) | public static class MessageTemplatesParser
    method Parse (line 43) | public static ParseResult Parse(ExpressionSyntax template)
    method Parse (line 72) | public static ParseResult Parse(string template, Regex regex)
    type ParseResult (line 88) | public record ParseResult(bool Success, Placeholder[] Placeholders = n...
    type Placeholder (line 90) | public record Placeholder(string Name, int Start, int Length);

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/AccessorDeclarationSyntaxExtensions.cs
  class AccessorDeclarationSyntaxExtensions (line 20) | public static class AccessorDeclarationSyntaxExtensions
    method HasBodyOrExpressionBody (line 22) | public static bool HasBodyOrExpressionBody(this AccessorDeclarationSyn...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ArgumentListSyntaxExtensions.cs
  class ArgumentListSyntaxExtensions (line 20) | public static class ArgumentListSyntaxExtensions
    method Get (line 22) | public static ExpressionSyntax Get(this ArgumentListSyntax argumentLis...
    method ArgumentValuesForParameter (line 32) | public static ImmutableArray<SyntaxNode> ArgumentValuesForParameter(th...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ArgumentSyntaxExtensions.cs
  class ArgumentSyntaxExtensions (line 20) | public static class ArgumentSyntaxExtensions
    method GetArgumentIndex (line 22) | public static int? GetArgumentIndex(this ArgumentSyntax argument) =>
    method GetArgumentsOfKnownType (line 25) | public static IEnumerable<ArgumentSyntax> GetArgumentsOfKnownType(this...
    method GetSymbolsOfKnownType (line 29) | public static IEnumerable<ISymbol> GetSymbolsOfKnownType(this Separate...
    method NameIs (line 34) | public static bool NameIs(this ArgumentSyntax argument, string name) =>
    method IsInTupleAssignmentTarget (line 38) | public static bool IsInTupleAssignmentTarget(this ArgumentSyntax argum...
    method OutermostTuple (line 43) | public static TupleExpressionSyntaxWrapper? OutermostTuple(this Argume...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/AssignmentExpressionSyntaxExtensions.cs
  class AssignmentExpressionSyntaxExtensions (line 20) | public static class AssignmentExpressionSyntaxExtensions
    type AssignmentMapping (line 22) | public readonly record struct AssignmentMapping(SyntaxNode Left, Synta...
    method MapAssignmentArguments (line 34) | public static ImmutableArray<AssignmentMapping> MapAssignmentArguments...
    method AssignmentTargets (line 78) | public static ImmutableArray<SyntaxNode> AssignmentTargets(this Assign...
    method MapTupleElements (line 101) | private static NestingMatch MapTupleElements(ImmutableArray<Assignment...
    method MapDesignationElements (line 129) | private static NestingMatch MapDesignationElements(ImmutableArray<Assi...
    method HandleTupleNesting (line 159) | private static NestingMatch HandleTupleNesting(ImmutableArray<Assignme...
    method HandleDesignationNesting (line 170) | private static NestingMatch HandleDesignationNesting(ImmutableArray<As...
    type NestingMatch (line 178) | private enum NestingMatch

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/AttributeListSyntaxExtensions.cs
  class AttributeListSyntaxExtensions (line 20) | public static class AttributeListSyntaxExtensions
    method GetAttributes (line 22) | public static IEnumerable<AttributeSyntax> GetAttributes(this SyntaxLi...
    method GetAttributes (line 25) | public static IEnumerable<AttributeSyntax> GetAttributes(this SyntaxLi...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/AttributeSyntaxExtensions.cs
  class AttributeSyntaxExtensions (line 20) | internal static class AttributeSyntaxExtensions
    method IsKnownType (line 24) | public static bool IsKnownType(this AttributeSyntax attribute, Immutab...
    method IsKnownType (line 36) | public static bool IsKnownType(this AttributeSyntax attribute, KnownTy...
    method GetShortNameWithoutAttributeSuffix (line 40) | private static string GetShortNameWithoutAttributeSuffix(KnownType kno...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/AwaitExpressionSyntaxExtensions.cs
  class AwaitExpressionSyntaxExtensions (line 20) | public static class AwaitExpressionSyntaxExtensions
    method AwaitedExpressionWithoutConfigureAwait (line 22) | public static ExpressionSyntax AwaitedExpressionWithoutConfigureAwait(...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/BaseArgumentListSyntaxExtensions.cs
  class BaseArgumentListSyntaxExtensions (line 20) | public static class BaseArgumentListSyntaxExtensions
    method GetArgumentByName (line 22) | public static ArgumentSyntax GetArgumentByName(this BaseArgumentListSy...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/BaseMethodDeclarationSyntaxExtensions.cs
  class BaseMethodDeclarationSyntaxExtensions (line 20) | public static class BaseMethodDeclarationSyntaxExtensions
    method GetBodyDescendantNodes (line 22) | public static IEnumerable<SyntaxNode> GetBodyDescendantNodes(this Base...
    method IsStatic (line 27) | public static bool IsStatic(this BaseMethodDeclarationSyntax methodDec...
    method IsExtern (line 30) | public static bool IsExtern(this BaseMethodDeclarationSyntax methodDec...
    method HasBodyOrExpressionBody (line 33) | public static bool HasBodyOrExpressionBody(this BaseMethodDeclarationS...
    method GetBodyOrExpressionBody (line 36) | public static SyntaxNode GetBodyOrExpressionBody(this BaseMethodDeclar...
    method ContainsMethodInvocation (line 39) | public static bool ContainsMethodInvocation(this BaseMethodDeclaration...
    method GetIdentifierOrDefault (line 57) | public static SyntaxToken? GetIdentifierOrDefault(this BaseMethodDecla...
    method FindIdentifierLocation (line 66) | public static Location FindIdentifierLocation(this BaseMethodDeclarati...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/BlockSyntaxExtensions.cs
  class BlockSyntaxExtensions (line 20) | public static class BlockSyntaxExtensions
    method IsEmpty (line 22) | public static bool IsEmpty(this BlockSyntax block, bool treatCommentsA...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/CompilationUnitSyntaxExtensions.cs
  class CompilationUnitSyntaxExtensions (line 20) | public static class CompilationUnitSyntaxExtensions
    method GetTopLevelMainBody (line 22) | public static IEnumerable<SyntaxNode> GetTopLevelMainBody(this Compila...
    method GetMethodDeclarations (line 27) | public static IEnumerable<IMethodDeclaration> GetMethodDeclarations(th...
    method IsTopLevelMain (line 33) | public static bool IsTopLevelMain(this CompilationUnitSyntax compilati...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ExpressionSyntaxExtensions.Roslyn.cs
  class ExpressionSyntaxExtensions (line 11) | [ExcludeFromCodeCoverage]
    method IsWrittenTo (line 22) | public static bool IsWrittenTo(
    method GetExpressionToAnalyzeForWrites (line 88) | private static ExpressionSyntax GetExpressionToAnalyzeForWrites(Expres...
    method IsRightSideOfDotOrArrow (line 102) | public static bool IsRightSideOfDotOrArrow(this ExpressionSyntax name)
    method IsAnyMemberAccessExpressionName (line 107) | public static bool IsAnyMemberAccessExpressionName(this ExpressionSynt...
    method IsMemberBindingExpressionName (line 118) | public static bool IsMemberBindingExpressionName(this ExpressionSyntax...
    method IsRightSideOfQualifiedName (line 124) | public static bool IsRightSideOfQualifiedName(this ExpressionSyntax ex...
    method IsOnlyWrittenTo (line 129) | public static bool IsOnlyWrittenTo(this ExpressionSyntax expression)
    method IsExpressionOfArgumentInDeconstruction (line 172) | private static bool IsExpressionOfArgumentInDeconstruction(ExpressionS...
    method IsInOutContext (line 219) | public static bool IsInOutContext(this ExpressionSyntax expression)
    method IsAttributeNamedArgumentIdentifier (line 224) | public static bool IsAttributeNamedArgumentIdentifier(this ExpressionS...
    method IsInRefContext (line 231) | public static bool IsInRefContext(this ExpressionSyntax expression)
    method IsInRefContext (line 241) | public static bool IsInRefContext(this ExpressionSyntax expression, ou...
    method IsOperandOfIncrementOrDecrementExpression (line 262) | public static bool IsOperandOfIncrementOrDecrementExpression(this Expr...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ExpressionSyntaxExtensions.cs
  class ExpressionSyntaxExtensions (line 22) | public static class ExpressionSyntaxExtensions
    method RemoveParentheses (line 40) | public static ExpressionSyntax RemoveParentheses(this ExpressionSyntax...
    method CanBeNull (line 43) | public static bool CanBeNull(this ExpressionSyntax expression, Semanti...
    method RemoveConditionalAccess (line 47) | public static ExpressionSyntax RemoveConditionalAccess(this Expression...
    method TryGetExpressionComparedToNull (line 69) | public static bool TryGetExpressionComparedToNull(this ExpressionSynta...
    method GetLeftOfDot (line 117) | public static ExpressionSyntax GetLeftOfDot(this ExpressionSyntax expr...
    method GetSelfOrTopParenthesizedExpression (line 125) | public static ExpressionSyntax GetSelfOrTopParenthesizedExpression(thi...
    method IsOnThis (line 128) | public static bool IsOnThis(this ExpressionSyntax expression) =>
    method IsInNameOfArgument (line 131) | public static bool IsInNameOfArgument(this ExpressionSyntax expression...
    method IsStringEmpty (line 137) | public static bool IsStringEmpty(this ExpressionSyntax expression, Sem...
    method HasConstantValue (line 152) | public static bool HasConstantValue(this ExpressionSyntax expression, ...
    method IsLeftSideOfAssignment (line 155) | public static bool IsLeftSideOfAssignment(this ExpressionSyntax expres...
    method ExtractMemberIdentifier (line 174) | public static IReadOnlyCollection<ExpressionSyntax> ExtractMemberIdent...
    method LeftMostInMemberAccess (line 207) | public static ExpressionSyntax LeftMostInMemberAccess(this ExpressionS...
    method IsDefaultLiteral (line 231) | public static bool IsDefaultLiteral(this ExpressionSyntax expression) =>
    method IsOn (line 237) | private static bool IsOn(this ExpressionSyntax expression, SyntaxKind ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/InterpolatedStringExpressionSyntaxExtensions.cs
  class InterpolatedStringExpressionSyntaxExtensions (line 20) | public static class InterpolatedStringExpressionSyntaxExtensions
    method ContentsText (line 22) | public static string ContentsText(this InterpolatedStringExpressionSyn...
    method InterpolatedTextValue (line 25) | public static string InterpolatedTextValue(this InterpolatedStringExpr...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/InvocationExpressionSyntaxExtensions.cs
  class InvocationExpressionSyntaxExtensions (line 20) | public static class InvocationExpressionSyntaxExtensions
    method IsMemberAccessOnKnownType (line 22) | public static bool IsMemberAccessOnKnownType(this InvocationExpression...
    method GetArgumentSymbolsOfKnownType (line 26) | public static IEnumerable<ISymbol> GetArgumentSymbolsOfKnownType(this ...
    method HasExactlyNArguments (line 29) | public static bool HasExactlyNArguments(this InvocationExpressionSynta...
    method IsGetTypeCall (line 32) | public static bool IsGetTypeCall(this InvocationExpressionSyntax invoc...
    method IsOnBase (line 36) | public static bool IsOnBase(this InvocationExpressionSyntax invocation...
    method IsEqualTo (line 39) | public static bool IsEqualTo(this InvocationExpressionSyntax first, In...
    method Operands (line 48) | public static Pair<SyntaxNode, SyntaxNode> Operands(this InvocationExp...
    method GetMethodCallIdentifier (line 56) | public static SyntaxToken? GetMethodCallIdentifier(this InvocationExpr...
    method IsNameof (line 59) | public static bool IsNameof(this InvocationExpressionSyntax expression...
    method IsMethodInvocation (line 65) | public static bool IsMethodInvocation(this InvocationExpressionSyntax ...
    method IsMethodInvocation (line 70) | public static bool IsMethodInvocation(this InvocationExpressionSyntax ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/LocalFunctionStatementSyntaxWrapperExtensions.cs
  class LocalFunctionStatementSyntaxWrapperExtensions (line 20) | public static class LocalFunctionStatementSyntaxWrapperExtensions
    method IsTopLevel (line 22) | public static bool IsTopLevel(this LocalFunctionStatementSyntaxWrapper...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/MemberAccessExpressionSyntaxExtensions.cs
  class MemberAccessExpressionSyntaxExtensions (line 20) | public static class MemberAccessExpressionSyntaxExtensions
    method IsMemberAccessOnKnownType (line 22) | public static bool IsMemberAccessOnKnownType(this MemberAccessExpressi...
    method IsPropertyInvocation (line 27) | public static bool IsPropertyInvocation(this MemberAccessExpressionSyn...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/MethodDeclarationSyntaxExtensions.cs
  class MethodDeclarationSyntaxExtensions (line 20) | public static class MethodDeclarationSyntaxExtensions
    method ThrowsOrReturnsNull (line 25) | public static bool ThrowsOrReturnsNull(this MethodDeclarationSyntax sy...
    method IsExtensionMethod (line 32) | public static bool IsExtensionMethod(this BaseMethodDeclarationSyntax ...
    method HasReturnTypeVoid (line 36) | public static bool HasReturnTypeVoid(this MethodDeclarationSyntax meth...
    method IsDeconstructor (line 39) | public static bool IsDeconstructor(this MethodDeclarationSyntax method...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ObjectCreationExpressionSyntaxExtensions.cs
  class ObjectCreationExpressionSyntaxExtensions (line 20) | public static class ObjectCreationExpressionSyntaxExtensions
    method IsKnownType (line 22) | public static bool IsKnownType(this ObjectCreationExpressionSyntax obj...
    method GetObjectCreationTypeIdentifier (line 26) | public static SyntaxToken? GetObjectCreationTypeIdentifier(this Object...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/ParameterSyntaxExtensions.cs
  class ParameterSyntaxExtensions (line 20) | public static class ParameterSyntaxExtensions
    method IsString (line 25) | public static bool IsString(this ParameterSyntax parameterSyntax) =>
    method IsString (line 28) | private static bool IsString(string parameterTypeName) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/PropertyDeclarationSyntaxExtensions.cs
  class PropertyDeclarationSyntaxExtensions (line 20) | public static class PropertyDeclarationSyntaxExtensions
    method IsAutoProperty (line 22) | public static bool IsAutoProperty(this PropertyDeclarationSyntax prope...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/StatementSyntaxExtensions.cs
  class StatementSyntaxExtensions (line 20) | public static class StatementSyntaxExtensions
    method extension (line 22) | extension(StatementSyntax statement)
    method SiblingStatements (line 56) | private IEnumerable<SyntaxNode> SiblingStatements() =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SwitchExpressionSyntaxWrapperExtensions.cs
  class SwitchExpressionSyntaxWrapperExtensions (line 20) | public static class SwitchExpressionSyntaxWrapperExtensions
    method HasDiscardPattern (line 22) | public static bool HasDiscardPattern(this SwitchExpressionSyntaxWrappe...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SwitchStatementSyntaxExtensions.cs
  class SwitchStatementSyntaxExtensions (line 20) | public static class SwitchStatementSyntaxExtensions
    method HasDefaultLabel (line 22) | public static bool HasDefaultLabel(this SwitchStatementSyntax node) =>
    method GetDefaultLabelSectionIndex (line 25) | public static int GetDefaultLabelSectionIndex(this SwitchStatementSynt...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SyntaxNodeExtensions.Roslyn.cs
  class SyntaxNodeExtensions (line 9) | [ExcludeFromCodeCoverage]
    method GetParentConditionalAccessExpression (line 17) | public static ConditionalAccessExpressionSyntax GetParentConditionalAc...
    method GetRootConditionalAccessExpression (line 100) | public static ConditionalAccessExpressionSyntax GetRootConditionalAcce...
    method IsLeftSideOfAssignExpression (line 118) | public static bool IsLeftSideOfAssignExpression(this SyntaxNode node)
    method IsParentKind (line 124) | public static bool IsParentKind(this SyntaxNode node, SyntaxKind kind)
    method IsParentKind (line 129) | public static bool IsParentKind<T>(this SyntaxNode node, SyntaxKind ki...
    method IsLeftSideOfAnyAssignExpression (line 142) | public static bool IsLeftSideOfAnyAssignExpression(this SyntaxNode node)
    method IsAnyAssignExpression (line 151) | public static bool IsAnyAssignExpression(this SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SyntaxNodeExtensionsCSharp.cs
  class SyntaxNodeExtensionsCSharp (line 25) | public static class SyntaxNodeExtensionsCSharp
    method CreateCfg (line 81) | public static ControlFlowGraph CreateCfg(this SyntaxNode node, Semanti...
    method ContainsConditionalConstructs (line 84) | public static bool ContainsConditionalConstructs(this SyntaxNode node) =>
    method FindConstantValue (line 92) | public static object FindConstantValue(this SyntaxNode node, SemanticM...
    method FindStringConstant (line 95) | public static string FindStringConstant(this SyntaxNode node, Semantic...
    method IsPartOfBinaryNegationOrCondition (line 98) | public static bool IsPartOfBinaryNegationOrCondition(this SyntaxNode n...
    method GetDeclarationTypeName (line 126) | public static string GetDeclarationTypeName(this SyntaxNode node) =>
    method TypeSyntax (line 159) | public static TypeSyntax TypeSyntax(this SyntaxNode node) =>
    method ArrowExpressionBody (line 215) | public static ArrowExpressionClauseSyntax ArrowExpressionBody(this Syn...
    method RemoveParentheses (line 228) | public static SyntaxNode RemoveParentheses(this SyntaxNode expression)
    method WalkUpParentheses (line 240) | public static SyntaxNode WalkUpParentheses(this SyntaxNode node)
    method GetIdentifier (line 249) | public static SyntaxToken? GetIdentifier(this SyntaxNode node) =>
    method FindAssignmentComplement (line 329) | public static SyntaxNode FindAssignmentComplement(this SyntaxNode node)
    method IsInExpressionTree (line 440) | public static bool IsInExpressionTree(this SyntaxNode node, SemanticMo...
    method ArgumentList (line 463) | public static BaseArgumentListSyntax ArgumentList(this SyntaxNode node...
    method ParameterList (line 477) | public static ParameterListSyntax ParameterList(this SyntaxNode node) =>
    method GetBody (line 489) | public static BlockSyntax GetBody(this SyntaxNode node) =>
    method GetInitializer (line 498) | public static SyntaxNode GetInitializer(this SyntaxNode node) =>
    method GetModifiers (line 506) | public static SyntaxTokenList GetModifiers(this SyntaxNode node) =>
    method IsTrue (line 514) | public static bool IsTrue(this SyntaxNode node) =>
    method IsFalse (line 527) | public static bool IsFalse(this SyntaxNode node) =>
    method IsDynamic (line 540) | public static bool IsDynamic(this SyntaxNode node, SemanticModel model...
    method EnclosingScope (line 543) | public static SyntaxNode EnclosingScope(this SyntaxNode node) =>
    method GetTopMostContainingMethod (line 546) | public static SyntaxNode GetTopMostContainingMethod(this SyntaxNode no...
    method GetSelfOrTopParenthesizedExpression (line 549) | public static SyntaxNode GetSelfOrTopParenthesizedExpression(this Synt...
    method GetFirstNonParenthesizedParent (line 559) | public static SyntaxNode GetFirstNonParenthesizedParent(this SyntaxNod...
    method HasAncestor (line 562) | public static bool HasAncestor(this SyntaxNode node, SyntaxKind syntax...
    method HasAncestor (line 565) | public static bool HasAncestor(this SyntaxNode node, SyntaxKind kind1,...
    method HasAncestor (line 568) | public static bool HasAncestor(this SyntaxNode node, ISet<SyntaxKind> ...
    method IsNullLiteral (line 571) | public static bool IsNullLiteral(this SyntaxNode node) =>
    method IsAnyKind (line 574) | [Obsolete("Either use '.Kind() is A or B' or the overload with the ISe...
    method IsAnyKind (line 578) | public static bool IsAnyKind(this SyntaxNode node, ISet<SyntaxKind> sy...
    method GetName (line 581) | public static string GetName(this SyntaxNode node) =>
    method NameIs (line 584) | public static bool NameIs(this SyntaxNode node, string name) =>
    method NameIs (line 587) | public static bool NameIs(this SyntaxNode node, string name, params st...
    method StringValue (line 592) | public static string StringValue(this SyntaxNode node, SemanticModel m...
    method AnyOfKind (line 600) | public static bool AnyOfKind(this IEnumerable<SyntaxNode> nodes, Synta...
    method PerformanceSensitiveAttribute (line 603) | public static AttributeData PerformanceSensitiveAttribute(this SyntaxN...
    method ChangeSyntaxElement (line 622) | public static T ChangeSyntaxElement<T>(this T originalNode, T newNode,...
    type PathPosition (line 655) | private readonly record struct PathPosition(int Index, int TupleLength);
    class ControlFlowGraphCache (line 657) | private sealed class ControlFlowGraphCache : ControlFlowGraphCacheBase
      method IsLocalFunction (line 659) | protected override bool IsLocalFunction(SyntaxNode node) =>
      method HasNestedCfg (line 662) | protected override bool HasNestedCfg(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SyntaxTokenExtensions.cs
  class SyntaxTokenExtensions (line 20) | public static class SyntaxTokenExtensions
    method IsAnyKind (line 22) | [Obsolete("Either use '.Kind() is A or B' or the overload with the ISe...
    method IsAnyKind (line 26) | public static bool IsAnyKind(this SyntaxToken token, ISet<SyntaxKind> ...
    method AnyOfKind (line 29) | public static bool AnyOfKind(this IEnumerable<SyntaxToken> tokens, Syn...
    method ToComparisonKind (line 32) | public static ComparisonKind ToComparisonKind(this SyntaxToken token) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SyntaxTokenListExtensions.cs
  class SyntaxTokenListExtensions (line 20) | public static class SyntaxTokenListExtensions
    method Find (line 22) | public static SyntaxToken? Find(this SyntaxTokenList tokenList, Syntax...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/SyntaxTriviaExtensions.cs
  class SyntaxTriviaExtensions (line 20) | public static class SyntaxTriviaExtensions
    method IsAnyKind (line 30) | public static bool IsAnyKind(this SyntaxTrivia syntaxTravia, ISet<Synt...
    method IsComment (line 33) | public static bool IsComment(this SyntaxTrivia trivia) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/TupleExpressionSyntaxExtensions.cs
  class TupleExpressionSyntaxExtensions (line 20) | public static class TupleExpressionSyntaxExtensions
    method AllArguments (line 22) | public static ImmutableArray<ArgumentSyntax> AllArguments(this TupleEx...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/TypeDeclarationSyntaxExtensions.cs
  class TypeDeclarationSyntaxExtensions (line 20) | public static class TypeDeclarationSyntaxExtensions
    method GetMethodDeclarations (line 25) | public static IEnumerable<IMethodDeclaration> GetMethodDeclarations(th...
    method GetLocalFunctions (line 30) | private static IEnumerable<IMethodDeclaration> GetLocalFunctions(Metho...
    method PrimaryConstructor (line 35) | public static IMethodSymbol PrimaryConstructor(this TypeDeclarationSyn...
    method ParameterList (line 51) | public static ParameterListSyntax ParameterList(this TypeDeclarationSy...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/TypeSyntaxExtensions.cs
  class TypeSyntaxExtensions (line 20) | public static class TypeSyntaxExtensions
    method Unwrap (line 29) | public static TypeSyntax Unwrap(this TypeSyntax type) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Extensions/VariableDesignationSyntaxWrapperExtensions.cs
  class VariableDesignationSyntaxWrapperExtensions (line 20) | public static class VariableDesignationSyntaxWrapperExtensions
    method AllVariables (line 27) | public static ImmutableArray<SingleVariableDesignationSyntaxWrapper> A...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpAttributeParameterLookup.cs
  class CSharpAttributeParameterLookup (line 20) | internal class CSharpAttributeParameterLookup(AttributeSyntax attribute,...
    method Expression (line 23) | protected override SyntaxNode Expression(AttributeArgumentSyntax argum...
    method GetNameColonIdentifier (line 26) | protected override SyntaxToken? GetNameColonIdentifier(AttributeArgume...
    method GetNameEqualsIdentifier (line 29) | protected override SyntaxToken? GetNameEqualsIdentifier(AttributeArgum...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpEquivalenceChecker.cs
  class CSharpEquivalenceChecker (line 20) | public static class CSharpEquivalenceChecker
    method AreEquivalent (line 22) | public static bool AreEquivalent(SyntaxNode node1, SyntaxNode node2) =>
    method AreEquivalent (line 25) | public static bool AreEquivalent(SyntaxList<SyntaxNode> nodeList1, Syn...
    method NodeComparator (line 28) | private static bool NodeComparator(SyntaxNode node1, SyntaxNode node2) =>
    method NullCheckState (line 36) | private static NullCheck NullCheckState(SyntaxNode node, bool isPositive)
    method NullCheckExpression (line 61) | private static SyntaxNode NullCheckExpression(BinaryExpressionSyntax b...
    method NullCheckPattern (line 78) | private static NullCheck NullCheckPattern(SyntaxNode expression, Synta...
    class NullCheck (line 94) | private class NullCheck
      method NullCheck (line 99) | public NullCheck(SyntaxNode expression, bool isPositive)
  class CSharpSyntaxNodeEqualityComparer (line 107) | public class CSharpSyntaxNodeEqualityComparer<T> : IEqualityComparer<T>,...
    method Equals (line 110) | public bool Equals(T x, T y) =>
    method Equals (line 113) | public bool Equals(SyntaxList<T> x, SyntaxList<T> y) =>
    method GetHashCode (line 116) | public int GetHashCode(T obj) =>
    method GetHashCode (line 119) | public int GetHashCode(SyntaxList<T> obj) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpExpressionNumericConverter.cs
  class CSharpExpressionNumericConverter (line 20) | public class CSharpExpressionNumericConverter : ExpressionNumericConvert...
    method TokenValue (line 28) | protected override object TokenValue(LiteralExpressionSyntax literalEx...
    method Operand (line 31) | protected override SyntaxNode Operand(PrefixUnaryExpressionSyntax unar...
    method IsSupportedOperator (line 34) | protected override bool IsSupportedOperator(PrefixUnaryExpressionSynta...
    method IsMinusOperator (line 37) | protected override bool IsMinusOperator(PrefixUnaryExpressionSyntax un...
    method RemoveParentheses (line 40) | protected override SyntaxNode RemoveParentheses(SyntaxNode expression) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpGeneratedCodeRecognizer.cs
  class CSharpGeneratedCodeRecognizer (line 20) | public class CSharpGeneratedCodeRecognizer : GeneratedCodeRecognizer
    method CSharpGeneratedCodeRecognizer (line 24) | private CSharpGeneratedCodeRecognizer()
    method IsTriviaComment (line 35) | protected override bool IsTriviaComment(SyntaxTrivia trivia) =>
    method GetAttributeName (line 39) | protected override string GetAttributeName(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpMethodParameterLookup.cs
  class CSharpMethodParameterLookup (line 20) | public class CSharpMethodParameterLookup : MethodParameterLookupBase<Arg...
    method CSharpMethodParameterLookup (line 22) | public CSharpMethodParameterLookup(InvocationExpressionSyntax invocati...
    method CSharpMethodParameterLookup (line 25) | public CSharpMethodParameterLookup(InvocationExpressionSyntax invocati...
    method CSharpMethodParameterLookup (line 28) | public CSharpMethodParameterLookup(BaseArgumentListSyntax argumentList...
    method CSharpMethodParameterLookup (line 31) | public CSharpMethodParameterLookup(BaseArgumentListSyntax argumentList...
    method Expression (line 34) | protected override SyntaxNode Expression(ArgumentSyntax argument) =>
    method GetNameColonIdentifier (line 37) | protected override SyntaxToken? GetNameColonIdentifier(ArgumentSyntax ...
    method GetNameEqualsIdentifier (line 40) | protected override SyntaxToken? GetNameEqualsIdentifier(ArgumentSyntax...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpRemovableDeclarationCollector.cs
  class CSharpRemovableDeclarationCollector (line 20) | public class CSharpRemovableDeclarationCollector : RemovableDeclarationC...
    method CSharpRemovableDeclarationCollector (line 22) | public CSharpRemovableDeclarationCollector(INamedTypeSymbol namedType,...
    method RemovableFieldLikeDeclarations (line 24) | public override IEnumerable<NodeSymbolAndModel<SyntaxNode, ISymbol>> R...
    method OwnerOfSubnodes (line 30) | public override BaseTypeDeclarationSyntax OwnerOfSubnodes(BaseTypeDecl...
    method IsNodeContainerTypeDeclaration (line 33) | public static bool IsNodeContainerTypeDeclaration(SyntaxNode node) =>
    method MatchingDeclarations (line 36) | protected override IEnumerable<SyntaxNode> MatchingDeclarations(NodeAn...
    method IsNodeStructOrClassOrRecordDeclaration (line 39) | private static bool IsNodeStructOrClassOrRecordDeclaration(SyntaxNode ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpStringInterpolationConstantValueResolver.cs
  class CSharpStringInterpolationConstantValueResolver (line 20) | public class CSharpStringInterpolationConstantValueResolver : StringInte...
    method Contents (line 32) | protected override IEnumerable<InterpolatedStringContentSyntax> Conten...
    method TextToken (line 35) | protected override SyntaxToken TextToken(InterpolatedStringTextSyntax ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/CSharpSyntaxClassifier.cs
  class CSharpSyntaxClassifier (line 22) | public sealed class CSharpSyntaxClassifier : SyntaxClassifierBase
    method CSharpSyntaxClassifier (line 28) | private CSharpSyntaxClassifier() { }
    method MemberAccessExpression (line 30) | public override SyntaxNode MemberAccessExpression(SyntaxNode node) =>
    method IsStatement (line 33) | protected override bool IsStatement(SyntaxNode node) =>
    method ParentLoopCondition (line 36) | protected override SyntaxNode ParentLoopCondition(SyntaxNode node) =>
    method IsCfgBoundary (line 47) | protected override bool IsCfgBoundary(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/MutedSyntaxWalker.cs
  class MutedSyntaxWalker (line 23) | public class MutedSyntaxWalker : CSharpSyntaxWalker
    method MutedSyntaxWalker (line 49) | public MutedSyntaxWalker(SemanticModel model, SyntaxNode node)
    method MutedSyntaxWalker (line 52) | public MutedSyntaxWalker(SemanticModel model, SyntaxNode node, params ...
    method IsMuted (line 59) | public bool IsMuted()
    method Visit (line 68) | public override void Visit(SyntaxNode node)
    method VisitIdentifierName (line 76) | public override void VisitIdentifierName(IdentifierNameSyntax node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Syntax/Utilities/SafeCSharpSyntaxWalker.cs
  class SafeCSharpSyntaxWalker (line 20) | public class SafeCSharpSyntaxWalker : CSharpSyntaxWalker, ISafeSyntaxWalker
    method SafeCSharpSyntaxWalker (line 22) | protected SafeCSharpSyntaxWalker() { }
    method SafeCSharpSyntaxWalker (line 24) | protected SafeCSharpSyntaxWalker(SyntaxWalkerDepth depth) : base(depth...
    method SafeVisit (line 26) | public bool SafeVisit(SyntaxNode syntaxNode)

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpArgumentTracker.cs
  class CSharpArgumentTracker (line 22) | internal sealed class CSharpArgumentTracker : ArgumentTracker<SyntaxKind>
    method ArgumentList (line 32) | protected override IReadOnlyCollection<SyntaxNode> ArgumentList(Syntax...
    method Position (line 40) | protected override int? Position(SyntaxNode argumentNode) =>
    method ArgumentRefKind (line 47) | protected override RefKind? ArgumentRefKind(SyntaxNode argumentNode) =>
    method InvocationMatchesMemberKind (line 61) | protected override bool InvocationMatchesMemberKind(SyntaxNode invoked...
    method InvokedMemberMatches (line 73) | protected override bool InvokedMemberMatches(SemanticModel model, Synt...
    method FindClassNameFromConstructorInitializerSyntax (line 95) | private static string FindClassNameFromConstructorInitializerSyntax(Co...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpAssignmentFinder.cs
  class CSharpAssignmentFinder (line 22) | public class CSharpAssignmentFinder : AssignmentFinder
    method GetTopMostContainingMethod (line 24) | protected override SyntaxNode GetTopMostContainingMethod(SyntaxNode no...
    method IsAssignmentToIdentifier (line 28) | protected override bool IsAssignmentToIdentifier(SyntaxNode node, stri...
    method IsIdentifierDeclaration (line 49) | protected override bool IsIdentifierDeclaration(SyntaxNode node, strin...
    method IsLoop (line 67) | protected override bool IsLoop(SyntaxNode node) =>
    method IdentifierMutation (line 75) | private static SyntaxNode IdentifierMutation(SyntaxNode mutation, stri...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpBaseTypeTracker.cs
  class CSharpBaseTypeTracker (line 22) | public class CSharpBaseTypeTracker : BaseTypeTracker<SyntaxKind>
    method GetBaseTypeNodes (line 27) | protected override IEnumerable<SyntaxNode> GetBaseTypeNodes(SyntaxNode...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpBuilderPatternCondition.cs
  class CSharpBuilderPatternCondition (line 22) | public class CSharpBuilderPatternCondition : BuilderPatternCondition<Syn...
    method CSharpBuilderPatternCondition (line 24) | public CSharpBuilderPatternCondition(bool constructorIsSafe, params Bu...
    method GetExpression (line 29) | protected override SyntaxNode GetExpression(InvocationExpressionSyntax...
    method GetIdentifierName (line 32) | protected override string GetIdentifierName(InvocationExpressionSyntax...
    method IsMemberAccess (line 35) | protected override bool IsMemberAccess(SyntaxNode node, out SyntaxNode...
    method IsObjectCreation (line 46) | protected override bool IsObjectCreation(SyntaxNode node) =>
    method IsIdentifier (line 49) | protected override bool IsIdentifier(SyntaxNode node, out string ident...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpConstantValueFinder.cs
  class CSharpConstantValueFinder (line 22) | public class CSharpConstantValueFinder : ConstantValueFinder<IdentifierN...
    method CSharpConstantValueFinder (line 24) | public CSharpConstantValueFinder(SemanticModel semanticModel) : base(s...
    method IdentifierName (line 26) | protected override string IdentifierName(IdentifierNameSyntax node) =>
    method InitializerValue (line 29) | protected override SyntaxNode InitializerValue(VariableDeclaratorSynta...
    method VariableDeclarator (line 32) | protected override VariableDeclaratorSyntax VariableDeclarator(SyntaxN...
    method IsPtrZero (line 35) | protected override bool IsPtrZero(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpElementAccessTracker.cs
  class CSharpElementAccessTracker (line 22) | public class CSharpElementAccessTracker : ElementAccessTracker<SyntaxKind>
    method AssignedValue (line 27) | public override object AssignedValue(ElementAccessContext context) =>
    method ArgumentAtIndexEquals (line 32) | public override Condition ArgumentAtIndexEquals(int index, string value)
    method MatchSetter (line 46) | public override Condition MatchSetter() =>
    method MatchProperty (line 49) | public override Condition MatchProperty(MemberDescriptor member) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpFieldAccessTracker.cs
  class CSharpFieldAccessTracker (line 22) | public class CSharpFieldAccessTracker : FieldAccessTracker<SyntaxKind>
    method WhenRead (line 33) | public override Condition WhenRead() =>
    method MatchSet (line 36) | public override Condition MatchSet() =>
    method AssignedValueIsConstant (line 39) | public override Condition AssignedValueIsConstant() =>
    method IsIdentifierWithinMemberAccess (line 46) | protected override bool IsIdentifierWithinMemberAccess(SyntaxNode expr...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpInvocationTracker.cs
  class CSharpInvocationTracker (line 22) | public class CSharpInvocationTracker : InvocationTracker<SyntaxKind>
    method ArgumentAtIndexIsStringConstant (line 27) | public override Condition ArgumentAtIndexIsStringConstant(int index) =>
    method ArgumentAtIndexIsAny (line 31) | public override Condition ArgumentAtIndexIsAny(int index, params strin...
    method ArgumentAtIndexIs (line 35) | public override Condition ArgumentAtIndexIs(int index, Func<SyntaxNode...
    method MatchProperty (line 39) | public override Condition MatchProperty(MemberDescriptor member) =>
    method ConstArgumentForParameter (line 47) | public override object ConstArgumentForParameter(InvocationContext con...
    method ExpectedExpressionIdentifier (line 56) | protected override SyntaxToken? ExpectedExpressionIdentifier(SyntaxNod...
    method ArgumentAtIndexConformsTo (line 59) | private static Condition ArgumentAtIndexConformsTo(int index, Func<Arg...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpMethodDeclarationTracker.cs
  class CSharpMethodDeclarationTracker (line 22) | public class CSharpMethodDeclarationTracker : MethodDeclarationTracker<S...
    method ParameterAtIndexIsUsed (line 26) | public override Condition ParameterAtIndexIsUsed(int index) =>
    method GetMethodInfo (line 48) | private static MethodInfo GetMethodInfo(MethodDeclarationContext context)
    method GetMethodIdentifier (line 78) | protected override SyntaxToken? GetMethodIdentifier(SyntaxNode methodD...
    class MethodInfo (line 94) | private sealed class MethodInfo
      method MethodInfo (line 100) | public MethodInfo(SemanticModel model, IEnumerable<SyntaxNode> desce...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpObjectCreationTracker.cs
  class CSharpObjectCreationTracker (line 22) | public class CSharpObjectCreationTracker : ObjectCreationTracker<SyntaxK...
    method ArgumentAtIndexIsConst (line 26) | public override Condition ArgumentAtIndexIsConst(int index) =>
    method ConstArgumentForParameter (line 31) | public override object ConstArgumentForParameter(ObjectCreationContext...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpObjectInitializationTracker.cs
  class CSharpObjectInitializationTracker (line 26) | public class CSharpObjectInitializationTracker
    method CSharpObjectInitializationTracker (line 60) | public CSharpObjectInitializationTracker(Predicate<object> isAllowedCo...
    method ShouldBeReported (line 73) | public bool ShouldBeReported(IObjectCreation objectCreation, SemanticM...
    method ShouldBeReported (line 78) | public bool ShouldBeReported(AssignmentExpressionSyntax assignment, Se...
    method IsAllowedConstantValue (line 92) | private bool IsAllowedConstantValue(object constantValue) =>
    method IsTrackedType (line 95) | private bool IsTrackedType(ExpressionSyntax expression, SemanticModel ...
    method IsAllowedValue (line 102) | private bool IsAllowedValue(SyntaxNode expression, SemanticModel model)
    method ObjectCreatedWithAllowedValue (line 136) | private bool ObjectCreatedWithAllowedValue(IObjectCreation objectCreat...
    method IsTrackedPropertyName (line 163) | private bool IsTrackedPropertyName(string propertyName) =>
    method IsTrackedPropertyName (line 169) | private bool IsTrackedPropertyName(SyntaxNode expression)
    method IsPropertyOnTrackedType (line 180) | private bool IsPropertyOnTrackedType(SyntaxNode expression, SemanticMo...
    method IsLaterAssignedWithAllowedValue (line 192) | private bool IsLaterAssignedWithAllowedValue(IObjectCreation objectCre...
    method InitializerExpressions (line 220) | private static IEnumerable<ExpressionSyntax> InitializerExpressions(In...
    method AssignedVariableSymbol (line 223) | private static ISymbol AssignedVariableSymbol(IObjectCreation objectCr...
    method AssignedVariableSymbol (line 235) | private static ISymbol AssignedVariableSymbol(SyntaxNode node, Semanti...
    method NextStatements (line 241) | private static IEnumerable<StatementSyntax> NextStatements(StatementSy...
    method InnerStatements (line 244) | private static IEnumerable<StatementSyntax> InnerStatements(StatementS...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Trackers/CSharpPropertyAccessTracker.cs
  class CSharpPropertyAccessTracker (line 22) | public class CSharpPropertyAccessTracker : PropertyAccessTracker<SyntaxK...
    method AssignedValue (line 33) | public override object AssignedValue(PropertyAccessContext context) =>
    method MatchGetter (line 38) | public override Condition MatchGetter() =>
    method MatchSetter (line 41) | public override Condition MatchSetter() =>
    method AssignedValueIsConstant (line 44) | public override Condition AssignedValueIsConstant() =>
    method IsIdentifierWithinMemberAccess (line 47) | protected override bool IsIdentifierWithinMemberAccess(SyntaxNode expr...
    method IsSimpleMemberWithinMemberAccess (line 50) | private static bool IsSimpleMemberWithinMemberAccess(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Wrappers/IMethodDeclaration.cs
  type IMethodDeclaration (line 20) | public interface IMethodDeclaration

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Wrappers/MethodDeclarationFactory.cs
  class MethodDeclarationFactory (line 20) | public static class MethodDeclarationFactory
    method Create (line 22) | public static IMethodDeclaration Create(SyntaxNode node)
    class LocalFunctionStatementAdapter (line 42) | private sealed class LocalFunctionStatementAdapter : IMethodDeclaration
      method LocalFunctionStatementAdapter (line 55) | public LocalFunctionStatementAdapter(LocalFunctionStatementSyntaxWra...
    class MethodDeclarationSyntaxAdapter (line 59) | private sealed class MethodDeclarationSyntaxAdapter : IMethodDeclaration
      method MethodDeclarationSyntaxAdapter (line 72) | public MethodDeclarationSyntaxAdapter(MethodDeclarationSyntax declar...

FILE: analyzers/src/SonarAnalyzer.CSharp.Core/Wrappers/ObjectCreationFactory.cs
  type IObjectCreation (line 20) | public interface IObjectCreation
    method IsKnownType (line 27) | bool IsKnownType(KnownType knownType, SemanticModel semanticModel);
    method TypeAsString (line 28) | string TypeAsString(SemanticModel semanticModel);
    method TypeSymbol (line 29) | ITypeSymbol TypeSymbol(SemanticModel semanticModel);
    method MethodSymbol (line 30) | IMethodSymbol MethodSymbol(SemanticModel semanticModel);
  class ObjectCreationFactory (line 33) | public class ObjectCreationFactory
    method Create (line 35) | public static IObjectCreation Create(SyntaxNode node) =>
    method TryCreate (line 44) | public static IObjectCreation TryCreate(SyntaxNode node) =>
    method TryCreate (line 49) | public static bool TryCreate(SyntaxNode node, out IObjectCreation obje...
    class ObjectCreation (line 55) | private sealed class ObjectCreation : IObjectCreation
      method ObjectCreation (line 64) | public ObjectCreation(ObjectCreationExpressionSyntax objectCreationE...
      method IsKnownType (line 67) | public bool IsKnownType(KnownType knownType, SemanticModel semanticM...
      method TypeAsString (line 70) | public string TypeAsString(SemanticModel semanticModel) =>
      method TypeSymbol (line 73) | public ITypeSymbol TypeSymbol(SemanticModel semanticModel) =>
      method MethodSymbol (line 76) | public IMethodSymbol MethodSymbol(SemanticModel semanticModel) =>
    class ImplicitObjectCreation (line 80) | private sealed class ImplicitObjectCreation : IObjectCreation
      method ImplicitObjectCreation (line 89) | public ImplicitObjectCreation(ImplicitObjectCreationExpressionSyntax...
      method IsKnownType (line 92) | public bool IsKnownType(KnownType knownType, SemanticModel semanticM...
      method TypeAsString (line 96) | public string TypeAsString(SemanticModel semanticModel)
      method TypeSymbol (line 104) | public ITypeSymbol TypeSymbol(SemanticModel semanticModel) =>
      method MethodSymbol (line 107) | public IMethodSymbol MethodSymbol(SemanticModel semanticModel) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Common/DescriptorFactory.cs
  class DescriptorFactory (line 22) | internal static class DescriptorFactory
    method Create (line 24) | public static DiagnosticDescriptor Create(string id, string messageFor...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Common/OrderDescriptor.cs
  type OrderDescriptor (line 20) | internal sealed record OrderDescriptor(int Value, string Description);

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Common/StylingAnalyzer.cs
  class StylingAnalyzer (line 22) | public abstract class StylingAnalyzer : SonarDiagnosticAnalyzer
    method StylingAnalyzer (line 28) | protected StylingAnalyzer(string id, string messageFormat, SourceScope...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Extensions/LambdaExpressionSyntaxExtensions.cs
  class LambdaExpressionSyntaxExtensions (line 20) | public static class LambdaExpressionSyntaxExtensions
    method IsAnalysisContextAction (line 22) | public static bool IsAnalysisContextAction(this LambdaExpressionSyntax...
    method IsAnalysisContextName (line 26) | private static bool IsAnalysisContextName(string name) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Extensions/MemberDeclarationSyntaxExtensions.cs
  class MemberDeclarationSyntaxExtensions (line 20) | internal static class MemberDeclarationSyntaxExtensions
    method ComputeOrder (line 22) | public static OrderDescriptor ComputeOrder(this MemberDeclarationSynta...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Extensions/SyntaxNodeExtensions.cs
  class SyntaxNodeExtensions (line 20) | internal static class SyntaxNodeExtensions
    method HasSameStartLineAs (line 22) | public static bool HasSameStartLineAs(this SyntaxNode first, SyntaxNod...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AllArgumentsOnSameLine.cs
  class AllArgumentsOnSameLine (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AllArgumentsOnSameLine (line 23) | public AllArgumentsOnSameLine() : base("T0028", "All arguments should ...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Verify (line 33) | private void Verify(SonarSyntaxNodeReportingContext context, IEnumerab...
    method IsOnNewLine (line 50) | private static bool IsOnNewLine(SyntaxNode node) =>
    method IsIgnored (line 53) | private static bool IsIgnored(SemanticModel model, SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AllParametersBase.cs
  class AllParametersBase (line 20) | public abstract class AllParametersBase : StylingAnalyzer
    method Verify (line 22) | protected abstract void Verify(SonarSyntaxNodeReportingContext context...
    method AllParametersBase (line 24) | protected AllParametersBase(string id, string messageFormat) : base(id...
    method Initialize (line 26) | protected override void Initialize(SonarAnalysisContext context) =>
    method Parameters (line 34) | private static IEnumerable<SyntaxNode> Parameters(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AllParametersOnSameColumn.cs
  class AllParametersOnSameColumn (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AllParametersOnSameColumn (line 23) | public AllParametersOnSameColumn() : base("T0022", "Parameters should ...
    method Verify (line 25) | protected override void Verify(SonarSyntaxNodeReportingContext context...
    method IsSameColumn (line 36) | private static bool IsSameColumn(SyntaxNode first, SyntaxNode second) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AllParametersOnSameLine.cs
  class AllParametersOnSameLine (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AllParametersOnSameLine (line 23) | public AllParametersOnSameLine() : base("T0023", "Parameters should be...
    method Verify (line 25) | protected override void Verify(SonarSyntaxNodeReportingContext context...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/ArrowLocation.cs
  class ArrowLocation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method ArrowLocation (line 23) | public ArrowLocation() : base("T0002", "Place the arrow at the end of ...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Verify (line 33) | private void Verify(SonarSyntaxNodeReportingContext context, SyntaxTok...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidArrangeActAssertComment.cs
  class AvoidArrangeActAssertComment (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidArrangeActAssertComment (line 28) | public AvoidArrangeActAssertComment() : base("T0044", "Remove this Arr...
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method ExtractWords (line 44) | private static string[] ExtractWords(SyntaxTrivia comment) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidDeconstruction.cs
  class AvoidDeconstruction (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidDeconstruction (line 28) | public AvoidDeconstruction() : base("T0035", "Don't use this deconstru...
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsUsedEnough (line 48) | private static bool IsUsedEnough(SonarSyntaxNodeReportingContext conte...
  class IdentifierWalker (line 64) | file sealed class IdentifierWalker : SafeCSharpSyntaxWalker
    method IdentifierWalker (line 74) | public IdentifierWalker(SemanticModel model, ISymbol symbol)
    method Visit (line 80) | public override void Visit(SyntaxNode node)
    method VisitIdentifierName (line 88) | public override void VisitIdentifierName(IdentifierNameSyntax node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidGet.cs
  class AvoidGet (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidGet (line 23) | public AvoidGet() : base("T0000", "Do not use 'Get' prefix. Just don't...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Process (line 31) | private void Process(SonarSyntaxNodeReportingContext context, SyntaxTo...
    method HasGetPrefix (line 39) | private static bool HasGetPrefix(string name) =>
    method IgnoreMethod (line 42) | private static bool IgnoreMethod(IMethodSymbol method) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidListForEach.cs
  class AvoidListForEach (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidListForEach (line 23) | public AvoidListForEach() : base("T0011", "Use 'foreach' iteration ins...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidNullable.cs
  class AvoidNullable (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidNullable (line 23) | public AvoidNullable() : base("T0036", "Do not use nullable context.")...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidPrimaryConstructor.cs
  class AvoidPrimaryConstructor (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidPrimaryConstructor (line 23) | public AvoidPrimaryConstructor() : base("T0043", "Do not use primary c...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidUnusedInterpolation.cs
  class AvoidUnusedInterpolation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidUnusedInterpolation (line 26) | public AvoidUnusedInterpolation() : base("T0040", "{0}") { }
    method Initialize (line 28) | protected override void Initialize(SonarAnalysisContext context) =>
    method DollarCount (line 42) | private static int DollarCount(InterpolatedStringExpressionSyntax inte...
    method CurlyBraceCount (line 45) | private static int CurlyBraceCount(InterpolatedStringExpressionSyntax ...
    method CurlyBraceCount (line 55) | private static int CurlyBraceCount(string text)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidValueTuple.cs
  class AvoidValueTuple (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidValueTuple (line 23) | public AvoidValueTuple() : base("T0003", "Do not use ValueTuple in the...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/AvoidVarPattern.cs
  class AvoidVarPattern (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AvoidVarPattern (line 23) | public AvoidVarPattern() : base("T0034", "Avoid embedding this var pat...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method CanBeExtracted (line 35) | private static bool CanBeExtracted(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/FieldOrdering.cs
  class FieldOrdering (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method FieldOrdering (line 23) | public FieldOrdering() : base("T0013", "Move this static field above t...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method ValidateMembers (line 33) | private void ValidateMembers(SonarSyntaxNodeReportingContext context)
    method ValidateMembers (line 42) | private void ValidateMembers(SonarSyntaxNodeReportingContext context, ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/FileScopeNamespace.cs
  class FileScopeNamespace (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method FileScopeNamespace (line 23) | public FileScopeNamespace() : base("T0001", "Use file-scoped namespace...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/HelperInTypeName.cs
  class HelperInTypeName (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method HelperInTypeName (line 23) | public HelperInTypeName() : base("T0006", "Do not use 'Helper' in type...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentArgument.cs
  class IndentArgument (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IndentArgument (line 23) | public IndentArgument() : base("T0029", "argument") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method NodeRoot (line 42) | protected override SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode cur...
    method FirstMemberOnLine (line 53) | private static SyntaxNode FirstMemberOnLine(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentBase.cs
  class IndentBase (line 22) | public abstract class IndentBase : StylingAnalyzer
    method IndentBase (line 24) | protected IndentBase(string id, string expressionName) : base(id, $$""...
    method Verify (line 26) | protected void Verify(SonarSyntaxNodeReportingContext context, int exp...
    method Offset (line 35) | protected virtual int Offset(SyntaxNode node, SyntaxNode root) =>
    method ExpectedPosition (line 38) | protected int? ExpectedPosition(SyntaxNode node) =>
    method ExpectedPosition (line 43) | protected static int ExpectedPosition(int character, int offset) =>
    method NodeRoot (line 46) | protected virtual SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode curr...
    method IsIgnored (line 65) | protected virtual bool IsIgnored(SyntaxNode node) =>
    method StatementRoot (line 68) | private SyntaxNode StatementRoot(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentInvocation.cs
  class IndentInvocation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IndentInvocation (line 23) | public IndentInvocation() : base("T0026", "member access") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method NodeRoot (line 47) | protected override SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode cur...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentOperator.cs
  class IndentOperator (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IndentOperator (line 23) | public IndentOperator() : base("T0019", "operator") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Offset (line 87) | protected override int Offset(SyntaxNode node, SyntaxNode root) =>
    method NodeRoot (line 92) | protected override SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode cur...
    method CoalesceRoot (line 125) | private static SyntaxNode CoalesceRoot(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentRawString.cs
  class IndentRawString (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IndentRawString (line 25) | public IndentRawString() : base("T0042", "raw string literal") { }
    method Initialize (line 27) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsIgnored (line 49) | protected override bool IsIgnored(SyntaxNode node) =>
    method NodeRoot (line 52) | protected override SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode cur...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/IndentTernary.cs
  class IndentTernary (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IndentTernary (line 23) | public IndentTernary() : base("T0025", "ternary") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method NodeRoot (line 37) | protected override SyntaxNode NodeRoot(SyntaxNode node, SyntaxNode cur...
    method ExpectedPosition (line 42) | private int? ExpectedPosition(ConditionalExpressionSyntax ternary)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/InitializerLine.cs
  class InitializerLine (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method InitializerLine (line 27) | public InitializerLine() : base("T0030", "Move this {0} to the previou...
    method Initialize (line 29) | protected override void Initialize(SonarAnalysisContext context)
    method Verify (line 67) | private void Verify(SonarSyntaxNodeReportingContext context, Expressio...
    method MissplacedLocation (line 76) | private static Location MissplacedLocation(ExpressionSyntax value, int...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/LambdaParameterName.cs
  class LambdaParameterName (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method LambdaParameterName (line 23) | public LambdaParameterName() : base("T0010", "Use 'x' for the lambda p...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method MatchesDelegateParameterName (line 38) | private static bool MatchesDelegateParameterName(SemanticModel model, ...
    method IsFuncOrAction (line 48) | private static bool IsFuncOrAction(INamedTypeSymbol delegateType) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/LocalFunctionLocation.cs
  class LocalFunctionLocation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method LocalFunctionLocation (line 23) | public LocalFunctionLocation() : base("T0015", "This local function sh...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsInTopLevelBlock (line 36) | private static bool IsInTopLevelBlock(LocalFunctionStatementSyntax fun...
    method IsLastStatement (line 44) | private static bool IsLastStatement(LocalFunctionStatementSyntax funct...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/MemberAccessLine.cs
  class MemberAccessLine (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method MemberAccessLine (line 25) | public MemberAccessLine() : base("T0027", "Move this member access to ...
    method Initialize (line 27) | protected override void Initialize(SonarAnalysisContext context) =>
    method FindStartLineMemberAccess (line 41) | private static MemberAccessExpressionSyntax FindStartLineMemberAccess(...
    method IsIgnored (line 51) | private static bool IsIgnored(MemberAccessExpressionSyntax startLine, ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/MemberVisibilityOrdering.cs
  class MemberVisibilityOrdering (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method MemberVisibilityOrdering (line 23) | public MemberVisibilityOrdering() : base("T0009", "Move this {0} {1} a...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method ValidateMembers (line 34) | private void ValidateMembers(SonarSyntaxNodeReportingContext context)
    method Category (line 64) | private static string Category(MemberDeclarationSyntax member) =>
    method ReportingLocation (line 80) | private static Location ReportingLocation(SyntaxNode node) =>
    type MemberInfo (line 88) | private sealed record MemberInfo(Location Location, OrderDescriptor Or...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/MethodExpressionBodyLine.cs
  class MethodExpressionBodyLine (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method MethodExpressionBodyLine (line 23) | public MethodExpressionBodyLine() : base("T0032", "Move this expressio...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsStubThrow (line 43) | private static bool IsStubThrow(IMethodSymbol method, ExpressionSyntax...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/MoveMethodToDedicatedExtensionClass.cs
  class MoveMethodToDedicatedExtensionClass (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method MoveMethodToDedicatedExtensionClass (line 23) | public MoveMethodToDedicatedExtensionClass() : base("T0046", "Move thi...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method ExpectedContainingType (line 36) | private static string ExpectedContainingType(IMethodSymbol method)
    method ValidTypeArguments (line 67) | private static IEnumerable<INamedTypeSymbol> ValidTypeArguments(INamed...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/NamespaceName.cs
  class NamespaceName (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method NamespaceName (line 23) | public NamespaceName() : base("T0037", "Use {0} namespace.", SourceSco...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/NullPatternMatching.cs
  class NullPatternMatching (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method NullPatternMatching (line 23) | public NullPatternMatching() : base("T0007", "Use 'is {0}null' pattern...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Validate (line 39) | private void Validate(SonarSyntaxNodeReportingContext context, string ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/OperatorLocation.cs
  class OperatorLocation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method OperatorLocation (line 23) | public OperatorLocation() : base("T0018", "The '{0}' operator should n...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Validate (line 72) | private void Validate(SonarSyntaxNodeReportingContext context, SyntaxT...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/PropertyOrdering.cs
  class PropertyOrdering (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method PropertyOrdering (line 23) | public PropertyOrdering() : base("T0014", "Move this static property a...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method ValidateMembers (line 33) | private void ValidateMembers(SonarSyntaxNodeReportingContext context)
    method ValidateMembers (line 41) | private void ValidateMembers(SonarSyntaxNodeReportingContext context, ...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/ProtectedFieldsCase.cs
  class ProtectedFieldsCase (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method ProtectedFieldsCase (line 23) | public ProtectedFieldsCase() : base("T0039", "Protected field should s...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/SeparateDeclarations.cs
  class SeparateDeclarations (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method SeparateDeclarations (line 23) | public SeparateDeclarations() : base("T0016", "Add an empty line befor...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method ValidatePossibleSingleLineMember (line 50) | private void ValidatePossibleSingleLineMember(SonarSyntaxNodeReporting...
    method ValidateSeparatedMember (line 69) | private void ValidateSeparatedMember(SonarSyntaxNodeReportingContext c...
    method ContainsEmptyLine (line 82) | private static bool ContainsEmptyLine(SyntaxTriviaList trivia)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/TermaryLine.cs
  class TernaryLine (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method TernaryLine (line 25) | public TernaryLine() : base("T0024", "Place branches of the multiline ...
    method Initialize (line 27) | protected override void Initialize(SonarAnalysisContext context) =>
    method Verify (line 40) | private void Verify(SonarSyntaxNodeReportingContext context, SyntaxTok...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/TypeMemberOrdering.cs
  class TypeMemberOrdering (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method TypeMemberOrdering (line 51) | public TypeMemberOrdering() : base("T0008", "Move {0} {1}.") { }
    method Initialize (line 53) | protected override void Initialize(SonarAnalysisContext context) =>
    method ValidateMembers (line 63) | private void ValidateMembers(SonarSyntaxNodeReportingContext context)
    method Kind (line 92) | private static MemberKind Kind(MemberDeclarationSyntax member)
    method ReportingLocation (line 112) | private static Location ReportingLocation(SyntaxNode node) =>
    method ExpectedLocation (line 120) | private static string ExpectedLocation(MemberKind[] availableKinds, in...
    type MemberInfo (line 126) | private sealed record MemberInfo(MemberDeclarationSyntax Member, Locat...
    type MemberKind (line 128) | private sealed record MemberKind(int Order, string Description);

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseDifferentMember.cs
  class UseDifferentMember (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseDifferentMember (line 23) | public UseDifferentMember() : base("T0047", "Use '{0}' instead of '{1}...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseField.cs
  class UseField (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseField (line 25) | public UseField() : base("T0038", "Use field instead of this {0} auto-...
    method Initialize (line 27) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseInnermostRegistrationContext.cs
  class UseInnermostRegistrationContext (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseInnermostRegistrationContext (line 23) | public UseInnermostRegistrationContext() : base("T0005", "Use inner-mo...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method ViolationsInInnerScopes (line 67) | private static IEnumerable<NodeAndSymbol> ViolationsInInnerScopes(Sema...
    method RegistrationContextParameterSymbol (line 87) | private static IParameterSymbol RegistrationContextParameterSymbol(Sem...
    method IsRegistrationParameter (line 102) | private static bool IsRegistrationParameter(ImmutableArray<INamedTypeS...
    method RegistrationOrReportingContextParameterSymbol (line 105) | private static IParameterSymbol RegistrationOrReportingContextParamete...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseLinqExtensions.cs
  class UseLinqExtensions (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseLinqExtensions (line 23) | public UseLinqExtensions() : base("T0021", "Use IEnumerable extensions...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseNullInsteadOfDefault.cs
  class UseNullInsteadOfDefault (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseNullInsteadOfDefault (line 23) | public UseNullInsteadOfDefault() : base("T0012", "Use 'null' instead o...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsReferenceType (line 35) | private static bool IsReferenceType(SyntaxNode node, SemanticModel model)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UsePositiveLogic.cs
  class UsePositiveLogic (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UsePositiveLogic (line 23) | public UsePositiveLogic() : base("T0033", "Swap the branches and use p...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)
    method Validate (line 42) | private void Validate(SonarSyntaxNodeReportingContext context, Express...
    method IsNegative (line 50) | private static bool IsNegative(ExpressionSyntax expression, Operator o...
    method IsNegative (line 60) | private static bool IsNegative(BinaryExpressionSyntax binary, Operator...
    method IsNegative (line 64) | private static bool IsNegative(PatternSyntax pattern, Operator outerAn...
    method CheckAndOr (line 68) | private static Operator CheckAndOr(SyntaxNode node, Operator outerAndO...
    class Operator (line 73) | private sealed class Operator
      method Operator (line 81) | private Operator(SyntaxKind logical, SyntaxKind pattern)
      method From (line 87) | public static Operator From(SyntaxKind kind)
      method IsMatch (line 103) | public bool IsMatch(SyntaxKind kind) =>

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseRawString.cs
  class UseRawString (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseRawString (line 23) | public UseRawString() : base("T0041", "Use raw string literal for mult...
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseRegexSafeIsMatch.cs
  class UseRegexSafeIsMatch (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseRegexSafeIsMatch (line 23) | public UseRegexSafeIsMatch() : base("T0004", "Use '{0}{1}' instead.") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>
    method Verify (line 34) | private void Verify(

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseShortName.cs
  class UseShortName (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseShortName (line 41) | public UseShortName() : base("T0017", "Use short name '{0}'.") { }
    method Initialize (line 43) | protected override void Initialize(SonarAnalysisContext context)
    method ValidateDeclaration (line 57) | private void ValidateDeclaration(SonarSyntaxNodeReportingContext conte...
    method FindRename (line 67) | private static RenameInfo FindRename(string name) =>
    method FollowsPredefinedName (line 70) | private static bool FollowsPredefinedName(ISymbol symbol) =>
    type RenameInfo (line 74) | private sealed record RenameInfo(string TypeName, string UsedName, str...

FILE: analyzers/src/SonarAnalyzer.CSharp.Styling/Rules/UseVar.cs
  class UseVar (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseVar (line 23) | public UseVar() : base("T0045", "Use var.") { }
    method Initialize (line 25) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Metrics/CSharpCognitiveComplexityMetric.cs
  class CSharpCognitiveComplexityMetric (line 22) | public static class CSharpCognitiveComplexityMetric
    method GetComplexity (line 24) | public static CognitiveComplexity GetComplexity(SyntaxNode node) =>
    method GetComplexity (line 27) | public static CognitiveComplexity GetComplexity(SyntaxNode node, bool ...
    class CognitiveWalker (line 42) | private sealed class CognitiveWalker : SafeCSharpSyntaxWalker
      method CognitiveWalker (line 48) | public CognitiveWalker(bool onlyGlobalStatements) =>
      method Visit (line 51) | public override void Visit(SyntaxNode node)
      method VisitCompilationUnit (line 92) | public override void VisitCompilationUnit(CompilationUnitSyntax node)
      method VisitMethodDeclaration (line 105) | public override void VisitMethodDeclaration(MethodDeclarationSyntax ...
      method VisitIfStatement (line 117) | public override void VisitIfStatement(IfStatementSyntax node)
      method VisitElseClause (line 130) | public override void VisitElseClause(ElseClauseSyntax node)
      method VisitConditionalExpression (line 136) | public override void VisitConditionalExpression(ConditionalExpressio...
      method VisitSwitchStatement (line 142) | public override void VisitSwitchStatement(SwitchStatementSyntax node)
      method VisitForStatement (line 148) | public override void VisitForStatement(ForStatementSyntax node)
      method VisitWhileStatement (line 154) | public override void VisitWhileStatement(WhileStatementSyntax node)
      method VisitDoStatement (line 160) | public override void VisitDoStatement(DoStatementSyntax node)
      method VisitForEachStatement (line 166) | public override void VisitForEachStatement(ForEachStatementSyntax node)
      method VisitCatchClause (line 172) | public override void VisitCatchClause(CatchClauseSyntax node)
      method VisitInvocationExpression (line 178) | public override void VisitInvocationExpression(InvocationExpressionS...
      method VisitBinaryExpression (line 191) | public override void VisitBinaryExpression(BinaryExpressionSyntax node)
      method VisitGotoStatement (line 213) | public override void VisitGotoStatement(GotoStatementSyntax node)
      method VisitSimpleLambdaExpression (line 219) | public override void VisitSimpleLambdaExpression(SimpleLambdaExpress...
      method VisitParenthesizedLambdaExpression (line 222) | public override void VisitParenthesizedLambdaExpression(Parenthesize...
      method VisitLocalFunction (line 225) | public void VisitLocalFunction(LocalFunctionStatementSyntaxWrapper l...

FILE: analyzers/src/SonarAnalyzer.CSharp/Metrics/CSharpCyclomaticComplexityMetric.cs
  class CSharpCyclomaticComplexityMetric (line 20) | public static class CSharpCyclomaticComplexityMetric
    class CyclomaticComplexity (line 22) | public class CyclomaticComplexity
      method CyclomaticComplexity (line 24) | public CyclomaticComplexity(ImmutableArray<SecondaryLocation> locati...
    method GetComplexity (line 33) | public static CyclomaticComplexity GetComplexity(SyntaxNode syntaxNode...
    method GetComplexity (line 36) | public static CyclomaticComplexity GetComplexity(SyntaxNode syntaxNode...
    class CyclomaticWalker (line 51) | private sealed class CyclomaticWalker : SafeCSharpSyntaxWalker
      method CyclomaticWalker (line 57) | public CyclomaticWalker(bool onlyGlobalStatements) =>
      method VisitCompilationUnit (line 60) | public override void VisitCompilationUnit(CompilationUnitSyntax node)
      method VisitMethodDeclaration (line 76) | public override void VisitMethodDeclaration(MethodDeclarationSyntax ...
      method VisitPropertyDeclaration (line 85) | public override void VisitPropertyDeclaration(PropertyDeclarationSyn...
      method VisitOperatorDeclaration (line 94) | public override void VisitOperatorDeclaration(OperatorDeclarationSyn...
      method VisitConstructorDeclaration (line 100) | public override void VisitConstructorDeclaration(ConstructorDeclarat...
      method VisitDestructorDeclaration (line 106) | public override void VisitDestructorDeclaration(DestructorDeclaratio...
      method VisitAccessorDeclaration (line 112) | public override void VisitAccessorDeclaration(AccessorDeclarationSyn...
      method VisitIfStatement (line 118) | public override void VisitIfStatement(IfStatementSyntax node)
      method VisitConditionalExpression (line 124) | public override void VisitConditionalExpression(ConditionalExpressio...
      method VisitConditionalAccessExpression (line 130) | public override void VisitConditionalAccessExpression(ConditionalAcc...
      method VisitWhileStatement (line 136) | public override void VisitWhileStatement(WhileStatementSyntax node)
      method VisitDoStatement (line 142) | public override void VisitDoStatement(DoStatementSyntax node)
      method VisitForStatement (line 148) | public override void VisitForStatement(ForStatementSyntax node)
      method VisitForEachStatement (line 154) | public override void VisitForEachStatement(ForEachStatementSyntax node)
      method VisitBinaryExpression (line 160) | public override void VisitBinaryExpression(BinaryExpressionSyntax node)
      method VisitAssignmentExpression (line 172) | public override void VisitAssignmentExpression(AssignmentExpressionS...
      method VisitCaseSwitchLabel (line 182) | public override void VisitCaseSwitchLabel(CaseSwitchLabelSyntax node)
      method VisitLocalFunction (line 188) | public void VisitLocalFunction(LocalFunctionStatementSyntaxWrapper n...
      method Visit (line 194) | public override void Visit(SyntaxNode node)
      method AddLocation (line 213) | private void AddLocation(SyntaxToken node) => IncrementLocations.Add...
      method HasBody (line 215) | private static bool HasBody(SyntaxNode node) => node.ChildNodes().An...
      method IsStaticLocalFunction (line 217) | private static bool IsStaticLocalFunction(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Metrics/CSharpExecutableLinesMetric.cs
  class CSharpExecutableLinesMetric (line 20) | public static class CSharpExecutableLinesMetric
    method GetLineNumbers (line 22) | public static ImmutableArray<int> GetLineNumbers(SyntaxTree syntaxTree...
    method GetWalker (line 29) | private static ExecutableLinesWalker GetWalker(SyntaxTree syntaxTree, ...
    class ExecutableLinesWalker (line 34) | private class ExecutableLinesWalker : SafeCSharpSyntaxWalker
      method AddExecutableLineNumbers (line 40) | protected virtual bool AddExecutableLineNumbers(Location location)
      method ExecutableLinesWalker (line 46) | public ExecutableLinesWalker(SemanticModel model) =>
      method DefaultVisit (line 49) | public override void DefaultVisit(SyntaxNode node)
      method FindExecutableLines (line 57) | private bool FindExecutableLines(SyntaxNode node)
      method HasExcludedCodeAttribute (line 132) | private bool HasExcludedCodeAttribute(SyntaxNode node, SyntaxList<At...
      method IsExcludedAttribute (line 141) | private bool IsExcludedAttribute(AttributeSyntax attribute) =>
    class RazorExecutableLinesWalker (line 145) | private sealed class RazorExecutableLinesWalker : ExecutableLinesWalker
      method RazorExecutableLinesWalker (line 147) | public RazorExecutableLinesWalker(SemanticModel model) : base(model)...
      method AddExecutableLineNumbers (line 149) | protected override bool AddExecutableLineNumbers(Location location)

FILE: analyzers/src/SonarAnalyzer.CSharp/Metrics/CSharpMetrics.cs
  class CSharpMetrics (line 22) | public class CSharpMetrics : MetricsBase
    method CSharpMetrics (line 29) | public CSharpMetrics(SyntaxTree tree, SemanticModel semanticModel) : b...
    method ComputeCognitiveComplexity (line 40) | protected override int ComputeCognitiveComplexity(SyntaxNode node) =>
    method ComputeCyclomaticComplexity (line 43) | public override int ComputeCyclomaticComplexity(SyntaxNode node) =>
    method IsClass (line 46) | protected override bool IsClass(SyntaxNode node)
    method IsCommentTrivia (line 62) | protected override bool IsCommentTrivia(SyntaxTrivia trivia) =>
    method IsEndOfFile (line 65) | protected override bool IsEndOfFile(SyntaxToken token) =>
    method IsFunction (line 68) | protected override bool IsFunction(SyntaxNode node)
    method IsNoneToken (line 111) | protected override bool IsNoneToken(SyntaxToken token) =>
    method IsStatement (line 114) | protected override bool IsStatement(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AbstractClassToInterface.cs
  class AbstractClassToInterface (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method AbstractClassToInterface (line 28) | public AbstractClassToInterface() : base(DiagnosticId) { }
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsRecordWithParameters (line 60) | private static bool IsRecordWithParameters(ISymbol symbol) =>
    method AllMethodsAreAbstract (line 65) | private static bool AllMethodsAreAbstract(INamedTypeSymbol symbol)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AbstractTypesShouldNotHaveConstructors.cs
  class AbstractTypesShouldNotHaveConstructors (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsPublicOrInternal (line 45) | private static bool IsPublicOrInternal(SyntaxToken token) =>
    method SuggestModifier (line 48) | private static string SuggestModifier(SyntaxToken token) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AllBranchesShouldNotHaveSameImplementation.cs
  class AllBranchesShouldNotHaveSameImplementation (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 29) | protected override void Initialize(SonarAnalysisContext context)
    method Analyze (line 48) | private static void Analyze(SonarSyntaxNodeReportingContext context, S...
    class IfStatementAnalyzer (line 63) | private class IfStatementAnalyzer : IfStatementAnalyzerBase<ElseClause...
      method IsLastElseInChain (line 65) | protected override bool IsLastElseInChain(ElseClauseSyntax elseSynta...
      method GetStatements (line 68) | protected override IEnumerable<SyntaxNode> GetStatements(ElseClauseS...
      method GetIfBlocksStatements (line 71) | protected override IEnumerable<IEnumerable<SyntaxNode>> GetIfBlocksS...
      method GetLocation (line 90) | protected override Location GetLocation(IfStatementSyntax topLevelIf...
    class TernaryStatementAnalyzer (line 93) | private class TernaryStatementAnalyzer : TernaryStatementAnalyzerBase<...
      method GetWhenFalse (line 95) | protected override SyntaxNode GetWhenFalse(ConditionalExpressionSynt...
      method GetWhenTrue (line 98) | protected override SyntaxNode GetWhenTrue(ConditionalExpressionSynta...
      method GetLocation (line 101) | protected override Location GetLocation(ConditionalExpressionSyntax ...
    class SwitchStatementAnalyzer (line 105) | private class SwitchStatementAnalyzer : SwitchStatementAnalyzerBase<Sw...
      method AreEquivalent (line 107) | protected override bool AreEquivalent(SwitchSectionSyntax section1, ...
      method GetSections (line 110) | protected override IEnumerable<SwitchSectionSyntax> GetSections(Swit...
      method HasDefaultLabel (line 113) | protected override bool HasDefaultLabel(SwitchStatementSyntax switch...
      method GetLocation (line 116) | protected override Location GetLocation(SwitchStatementSyntax switch...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AlwaysSetDateTimeKind.cs
  class AlwaysSetDateTimeKind (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 29) | protected override void Initialize(SonarAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AnonymousDelegateEventUnsubscribe.cs
  class AnonymousDelegateEventUnsubscribe (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 31) | protected override void Initialize(SonarAnalysisContext context)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ArgumentSpecifiedForCallerInfoParameter.cs
  class ArgumentSpecifiedForCallerInfoParameter (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 36) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsArgumentPassthroughOfParameter (line 52) | private static bool IsArgumentPassthroughOfParameter(SemanticModel mod...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ArrayCovariance.cs
  class ArrayCovariance (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 29) | protected override void Initialize(SonarAnalysisContext context)
    method RaiseOnArrayCovarianceInSimpleAssignmentExpression (line 37) | private static void RaiseOnArrayCovarianceInSimpleAssignmentExpression...
    method RaiseOnArrayCovarianceInVariableDeclaration (line 43) | private static void RaiseOnArrayCovarianceInVariableDeclaration(SonarS...
    method RaiseOnArrayCovarianceInInvocationExpression (line 54) | private static void RaiseOnArrayCovarianceInInvocationExpression(Sonar...
    method RaiseOnArrayCovarianceInCastExpression (line 70) | private static void RaiseOnArrayCovarianceInCastExpression(SonarSyntax...
    method VerifyExpression (line 78) | private static void VerifyExpression(SyntaxNode node, ITypeSymbol base...
    method AreCovariantArrayTypes (line 86) | private static bool AreCovariantArrayTypes(ITypeSymbol typeDerivedArra...
    method GetPossibleTypes (line 101) | private static IEnumerable<NodeTypePair> GetPossibleTypes(SyntaxNode s...
    type NodeTypePair (line 125) | private readonly struct NodeTypePair
      method NodeTypePair (line 131) | public NodeTypePair(SyntaxNode node, SemanticModel model)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ArrayPassedAsParams.cs
  class ArrayPassedAsParams (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method LastArgumentIfArrayCreation (line 33) | protected override CSharpSyntaxNode LastArgumentIfArrayCreation(Syntax...
    method ArrayElementType (line 47) | protected override ITypeSymbol ArrayElementType(CSharpSyntaxNode argum...
    method ArgumentList (line 55) | private static BaseArgumentListSyntax ArgumentList(SyntaxNode expressi...
    method IsArrayCreation (line 65) | private static bool IsArrayCreation(CSharpSyntaxNode argument)
    method ContainsSpread (line 78) | private static bool ContainsSpread(CollectionExpressionSyntaxWrapper e...
    method ArgumentExpression (line 81) | private static ExpressionSyntax ArgumentExpression(CSharpSyntaxNode no...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/AnnotateApiActionsWithHttpVerb.cs
  class AnnotateApiActionsWithHttpVerb (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 33) | protected override void Initialize(SonarAnalysisContext context) =>
    method IgnoresApiExplorer (line 71) | private static bool IgnoresApiExplorer(IEnumerable<AttributeData> attr...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ApiControllersShouldNotDeriveDirectlyFromController.cs
  class ApiControllersShouldNotDeriveDirectlyFromController (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 45) | protected override void Initialize(SonarAnalysisContext context) =>
    method CheckController (line 58) | private static void CheckController(SonarSymbolStartAnalysisContext co...
    method ReportIssue (line 85) | private static void ReportIssue(SonarSymbolReportingContext context, I...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix.cs
  class ApiControllersShouldNotDeriveDirectlyFromControllerCodeFix (line 22) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 29) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/AvoidUnderPosting.cs
  class AvoidUnderPosting (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 46) | protected override void Initialize(SonarAnalysisContext context) =>
    method ProcessControllerMethods (line 66) | private static void ProcessControllerMethods(SonarSyntaxNodeReportingC...
    method CheckInvalidProperties (line 82) | private static void CheckInvalidProperties(INamedTypeSymbol parameterT...
    method IgnoreType (line 107) | private static bool IgnoreType(ITypeSymbol type) =>
    method CanBeUsedInModelBinding (line 112) | private static bool CanBeUsedInModelBinding(INamedTypeSymbol type) =>
    method CanBeNull (line 120) | private static bool CanBeNull(ITypeSymbol type) =>
    method GetAllDeclaredProperties (line 125) | private static void GetAllDeclaredProperties(ITypeSymbol type, Concurr...
    method RelatedTypesToExamine (line 156) | private static IEnumerable<INamedTypeSymbol> RelatedTypesToExamine(ITy...
    method HasValidateNeverAttribute (line 167) | private static bool HasValidateNeverAttribute(ISymbol symbol) =>
    method IsInitialized (line 170) | private static bool IsInitialized(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/BackslashShouldBeAvoidedInAspNetRoutes.cs
  class BackslashShouldBeAvoidedInAspNetRoutes (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IsNamedAttributeArgument (line 27) | protected override bool IsNamedAttributeArgument(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/CallModelStateIsValid.cs
  class CallModelStateIsValid (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 40) | protected override void Initialize(SonarAnalysisContext context) =>
    method ProcessCodeBlock (line 66) | private static void ProcessCodeBlock(SonarCodeBlockStartAnalysisContex...
    method IgnoreParameter (line 99) | private static bool IgnoreParameter(IParameterSymbol parameter) =>
    method HasApiControllerAttribute (line 103) | private static bool HasApiControllerAttribute(ITypeSymbol type) =>
    method HasActionFilterAttribute (line 106) | private static bool HasActionFilterAttribute(ISymbol symbol) =>
    method IsCheckingValidityProperty (line 109) | private static bool IsCheckingValidityProperty(SyntaxNode node, Semant...
    method IsTryValidateInvocation (line 114) | private static bool IsTryValidateInvocation(SyntaxNode node, SemanticM...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersHaveMixedResponsibilities.cs
  class ControllersHaveMixedResponsibilities (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    type MemberType (line 29) | public enum MemberType
    method Initialize (line 50) | protected override void Initialize(SonarAnalysisContext context) =>
    method PopulateDependencies (line 79) | private static Action<SonarCodeBlockStartAnalysisContext<SyntaxKind>> ...
    method CalculateAndReportOnResponsibilities (line 96) | private static Action<SonarSymbolReportingContext> CalculateAndReportO...
    method ResponsibilityGroups (line 112) | private static List<List<string>> ResponsibilityGroups(
    method BlockName (line 129) | private static string BlockName(SyntaxNode block) =>
    method RelevantMembers (line 141) | private static ImmutableDictionary<string, MemberType> RelevantMembers...
    method IsService (line 174) | private static bool IsService(ISymbol symbol) =>
    method SecondaryLocations (line 177) | private static IEnumerable<SecondaryLocation> SecondaryLocations(IName...
    method IdentifierLocations (line 191) | private static IEnumerable<Location> IdentifierLocations<T>(ISymbol sy...
    type Dependency (line 194) | private record struct Dependency(string From, string To);

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/ControllersReuseClient.cs
  class ControllersReuseClient (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 32) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsInPublicMethod (line 61) | public static bool IsInPublicMethod(SyntaxNode node) =>
    method IsInsideConstructor (line 66) | private static bool IsInsideConstructor(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/RouteTemplateShouldNotStartWithSlash.cs
  class RouteTemplateShouldNotStartWithSlash (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/SpecifyRouteAttribute.cs
  class SpecifyRouteAttribute (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 32) | protected override void Initialize(SonarAnalysisContext context) =>
    method ReportIssues (line 61) | private void ReportIssues(SonarSymbolReportingContext context, ISymbol...
    method UsesAttributeRouting (line 77) | private static bool UsesAttributeRouting(Compilation compilation) =>
    method CanBeIgnored (line 80) | private static bool CanBeIgnored(string template) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AspNet/UseAspNetModelBinding.cs
  class UseAspNetModelBinding (line 23) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method UseAspNetModelBinding (line 37) | public UseAspNetModelBinding() : base(DiagnosticId) { }
    method Initialize (line 39) | protected override void Initialize(SonarAnalysisContext context) =>
    method RegisterForSymbols (line 49) | private void RegisterForSymbols(SonarCompilationStartAnalysisContext c...
    method RegisterCodeBlockActions (line 83) | private void RegisterCodeBlockActions(
    method AddMatchingArgumentToCandidates (line 133) | private bool AddMatchingArgumentToCandidates(
    method GetDescriptors (line 148) | private static Descriptors GetDescriptors(Compilation compilation)
    method AddAspNetCoreDescriptors (line 160) | private static void AddAspNetCoreDescriptors(List<ArgumentDescriptor> ...
    method IsAccessedViaHeaderDictionary (line 224) | private static bool IsAccessedViaHeaderDictionary(SemanticModel model,...
    method IsOverridingFilterMethods (line 230) | private static bool IsOverridingFilterMethods(ISymbol owningSymbol) =>
    method IsOriginatingFromParameter (line 235) | private static bool IsOriginatingFromParameter(SemanticModel semanticM...
    method IsOriginatingFromParameter (line 238) | private static bool IsOriginatingFromParameter(SemanticModel semanticM...
    method MostLeftOfDottedChain (line 241) | private static ExpressionSyntax MostLeftOfDottedChain(ExpressionSyntax...
    method GetExpressionOfArgumentParent (line 256) | private static ExpressionSyntax GetExpressionOfArgumentParent(Argument...
    method GetPrimaryLocation (line 265) | private static Location GetPrimaryLocation(ArgumentSyntax argument) =>
    method IsGetterParameter (line 268) | private static bool IsGetterParameter(IParameterSymbol parameter) =>
    method IsIDictionaryStringStringValuesInvocation (line 271) | private static bool IsIDictionaryStringStringValuesInvocation(IMethodS...
    type ReportCandidate (line 277) | private readonly record struct ReportCandidate(string Message, Locatio...
    type Descriptors (line 278) | private readonly record struct Descriptors(ArgumentDescriptor[] Argume...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AssertionArgsShouldBePassedInCorrectOrder.cs
  class AssertionArgsShouldBePassedInCorrectOrder (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 44) | protected override void Initialize(SonarAnalysisContext context) =>
    method Parameters (line 61) | private static KnownAssertParameters[] Parameters(string name) =>
    method FindWrongArguments (line 103) | private static WrongArguments? FindWrongArguments(SemanticModel model,
    method CreateLocation (line 119) | private static Location CreateLocation(SyntaxNode argument1, SyntaxNod...
    type KnownAssertParameters (line 124) | private readonly record struct KnownAssertParameters(KnownType AssertC...
    type WrongArguments (line 126) | private readonly record struct WrongArguments(SyntaxNode ExpectedArgs,...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AssertionsShouldBeComplete.cs
  class AssertionsShouldBeComplete (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method CheckInvocation (line 87) | private static void CheckInvocation(SonarSyntaxNodeReportingContext c,...
    method HasContinuation (line 97) | private static bool HasContinuation(InvocationExpressionSyntax invocat...
    method IsVoid (line 126) | private static bool IsVoid(TypeSyntax type) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AssignmentInsideSubExpression.cs
  class AssignmentInsideSubExpression (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 49) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsNonCompliantSubExpression (line 73) | private static bool IsNonCompliantSubExpression(AssignmentExpressionSy...
    method IsInInitializerExpression (line 78) | private static bool IsInInitializerExpression(ExpressionSyntax express...
    method IsCompliantAssignmentInsideExpression (line 81) | private static bool IsCompliantAssignmentInsideExpression(AssignmentEx...
    method IsCompliantNullConditionalAssignment (line 87) | private static bool IsCompliantNullConditionalAssignment(AssignmentExp...
    method IsCompliantCoalesceExpression (line 92) | private static bool IsCompliantCoalesceExpression(ExpressionSyntax par...
    method CoalesceExpressionParent (line 97) | private static BinaryExpressionSyntax CoalesceExpressionParent(Express...
    method IsDirectlyInStatementCondition (line 103) | private static bool IsDirectlyInStatementCondition(ExpressionSyntax ex...
    method IsInStatementCondition (line 114) | private static bool IsInStatementCondition(ExpressionSyntax expression)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AsyncAwaitIdentifier.cs
  class AsyncAwaitIdentifier (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 33) | protected override void Initialize(SonarAnalysisContext context)
    method GetAsyncOrAwaitTokens (line 46) | private static IEnumerable<SyntaxToken> GetAsyncOrAwaitTokens(SyntaxNo...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AsyncVoidMethod.cs
  class AsyncVoidMethod (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 49) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsViolatingRule (line 63) | private static bool IsViolatingRule(IMethodSymbol methodSymbol) =>
    method IsExceptionToTheRule (line 67) | private static bool IsExceptionToTheRule(MethodDeclarationSyntax metho...
    method IsAcceptedUsage (line 73) | private static bool IsAcceptedUsage(MethodDeclarationSyntax methodDecl...
    method GetIdentifierArguments (line 86) | private static IEnumerable<IdentifierNameSyntax> GetIdentifierArgument...
    method GetIdentifierArguments (line 89) | private static IEnumerable<IdentifierNameSyntax> GetIdentifierArgument...
    method GetIdentifierRightHandSide (line 92) | private static IEnumerable<IdentifierNameSyntax> GetIdentifierRightHan...
    method GetParentDeclaration (line 97) | private static SyntaxNode GetParentDeclaration(SyntaxNode syntaxNode) =>
    method IsNamedAsEventHandler (line 100) | private static bool IsNamedAsEventHandler(ISymbol symbol) =>
    method HasAnyMsTestV1AllowedAttribute (line 105) | private static bool HasAnyMsTestV1AllowedAttribute(IMethodSymbol metho...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AvoidDateTimeNowForBenchmarking.cs
  class AvoidDateTimeNowForBenchmarking (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method ContainsDateTimeArgument (line 25) | protected override bool ContainsDateTimeArgument(InvocationExpressionS...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AvoidExcessiveClassCoupling.cs
  class AvoidExcessiveClassCoupling (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 68) | protected override void Initialize(SonarParametrizedAnalysisContext co...
    method IsTrackedType (line 98) | private static bool IsTrackedType(INamedTypeSymbol namedType) =>
    method ExpandGenericTypes (line 110) | private static IEnumerable<INamedTypeSymbol> ExpandGenericTypes(INamed...
    class TypeDependencyCollector (line 138) | private sealed class TypeDependencyCollector : SafeCSharpSyntaxWalker
      method TypeDependencyCollector (line 145) | public TypeDependencyCollector(SemanticModel model, TypeDeclarationS...
      method Visit (line 157) | public override void Visit(SyntaxNode node)
      method VisitVariableDeclarator (line 177) | public override void VisitVariableDeclarator(VariableDeclaratorSynta...
      method VisitMemberAccessExpression (line 186) | public override void VisitMemberAccessExpression(MemberAccessExpress...
      method VisitInvocationExpression (line 205) | public override void VisitInvocationExpression(InvocationExpressionS...
      method IsSimpleNameChain (line 231) | private static bool IsSimpleNameChain(ExpressionSyntax expression)
      method AddDependentType (line 241) | private void AddDependentType(TypeSyntax typeSyntax)
      method AddDependentType (line 249) | private void AddDependentType(TypeInfo typeInfo)
      method AddDependentType (line 255) | private bool AddDependentType(ISymbol symbol) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AvoidExcessiveInheritance.cs
  class AvoidExcessiveInheritance (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 54) | protected override void Initialize(SonarParametrizedAnalysisContext co...
    method GetRootNamespace (line 81) | private static string GetRootNamespace(ISymbol symbol)
    method WildcardPatternToRegularExpression (line 91) | private static Regex WildcardPatternToRegularExpression(string pattern)
    type ObjectTypeInfo (line 97) | private readonly struct ObjectTypeInfo
      method ObjectTypeInfo (line 105) | public ObjectTypeInfo(SyntaxNode node, SemanticModel model)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AvoidLambdaExpressionInLoopsInBlazor.cs
  class AvoidLambdaExpressionInLoopsInBlazor (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 32) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsWithinRenderTreeBuilderInvocation (line 55) | private static bool IsWithinRenderTreeBuilderInvocation(SyntaxNode nod...
    method IsWithinLoopBody (line 61) | private static bool IsWithinLoopBody(SyntaxNode node) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/AvoidUnsealedAttributes.cs
  class AvoidUnsealedAttributes (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BeginInvokePairedWithEndInvoke.cs
  class BeginInvokePairedWithEndInvoke (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method VisitInvocation (line 42) | protected override void VisitInvocation(EndInvokeContext context) =>
    method IsInvalidCallback (line 45) | protected override bool IsInvalidCallback(SyntaxNode callbackArg, Sema...
    method FindCallback (line 65) | private static SyntaxNode FindCallback(SyntaxNode callbackArg, Semanti...
    method LookupIdentifierInitializer (line 85) | private static SyntaxNode LookupIdentifierInitializer(IdentifierNameSy...
    class InvocationWalker (line 91) | private class InvocationWalker : SafeCSharpSyntaxWalker
      method InvocationWalker (line 95) | public InvocationWalker(EndInvokeContext context) =>
      method Visit (line 98) | public override void Visit(SyntaxNode node)
      method VisitInvocationExpression (line 106) | public override void VisitInvocationExpression(InvocationExpressionS...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BinaryOperationWithIdenticalExpressions.cs
  class BinaryOperationWithIdenticalExpressions (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 45) | protected override void Initialize(SonarAnalysisContext context)
    method ReportOnObjectEqualsMatches (line 68) | private static void ReportOnObjectEqualsMatches(SonarSyntaxNodeReporti...
    method GetOperands (line 80) | private static Tuple<SyntaxNode, SyntaxNode> GetOperands(InvocationExp...
    method RemoveParentheses (line 104) | private static SyntaxNode RemoveParentheses(SyntaxNode node) =>
    method ReportIfOperatorExpressionsMatch (line 107) | private static void ReportIfOperatorExpressionsMatch(SonarSyntaxNodeRe...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BlazorQueryParameterRoutableComponent.cs
  class BlazorQueryParameterRoutableComponent (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 48) | protected override void Initialize(SonarAnalysisContext context) =>
    method CheckQueryProperties (line 57) | private static void CheckQueryProperties(SonarSymbolReportingContext c)
    method IsSupportedType (line 80) | private static bool IsSupportedType(ITypeSymbol type, KnownType suppor...
    method GetTypeName (line 95) | private static string GetTypeName(TypeSyntax propertyType) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BooleanCheckInverted.cs
  class BooleanCheckInverted (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 45) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsUnsafeInversionOperation (line 55) | protected override bool IsUnsafeInversionOperation(BinaryExpressionSyn...
    method LogicalNotNode (line 64) | protected override SyntaxNode LogicalNotNode(BinaryExpressionSyntax ex...
    method SuggestedReplacement (line 70) | protected override string SuggestedReplacement(BinaryExpressionSyntax ...
    method IsConditionalAccessExpression (line 73) | private static bool IsConditionalAccessExpression(ExpressionSyntax exp...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BooleanCheckInvertedCodeFix.cs
  class BooleanCheckInvertedCodeFix (line 22) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 34) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...
    method ChangeOperator (line 68) | private static ExpressionSyntax ChangeOperator(BinaryExpressionSyntax ...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BooleanLiteralUnnecessary.cs
  class BooleanLiteralUnnecessary (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method GetOperatorToken (line 25) | protected override SyntaxToken? GetOperatorToken(SyntaxNode node) =>
    method IsTrue (line 33) | protected override bool IsTrue(SyntaxNode syntaxNode) => syntaxNode.Is...
    method IsFalse (line 35) | protected override bool IsFalse(SyntaxNode syntaxNode) => syntaxNode.I...
    method IsInsideTernaryWithThrowExpression (line 37) | protected override bool IsInsideTernaryWithThrowExpression(SyntaxNode ...
    method GetLeftNode (line 41) | protected override SyntaxNode GetLeftNode(SyntaxNode node) =>
    method GetRightNode (line 49) | protected override SyntaxNode GetRightNode(SyntaxNode node) =>
    method Initialize (line 57) | protected override void Initialize(SonarAnalysisContext context)
    method CheckForLoopCondition (line 69) | private void CheckForLoopCondition(SonarSyntaxNodeReportingContext con...
    method CheckLogicalNot (line 80) | private void CheckLogicalNot(SonarSyntaxNodeReportingContext context)
    method CheckConditional (line 90) | private void CheckConditional(SonarSyntaxNodeReportingContext context)
    method IsThrowExpression (line 111) | private static bool IsThrowExpression(ExpressionSyntax expressionSynta...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BooleanLiteralUnnecessaryCodeFix.cs
  class BooleanLiteralUnnecessaryCodeFix (line 23) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 30) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...
    method RegisterPatternExpressionReplacement (line 91) | private static void RegisterPatternExpressionReplacement(SonarCodeFixC...
    method RegisterForStatementConditionRemoval (line 116) | private static void RegisterForStatementConditionRemoval(SonarCodeFixC...
    method RegisterBinaryExpressionRemoval (line 129) | private static void RegisterBinaryExpressionRemoval(SonarCodeFixContex...
    method RegisterConditionalExpressionRewrite (line 148) | private static void RegisterConditionalExpressionRewrite(SonarCodeFixC...
    method RegisterBooleanInversion (line 154) | private static void RegisterBooleanInversion(SonarCodeFixContext conte...
    method RegisterConditionalExpressionRemoval (line 160) | private static void RegisterConditionalExpressionRemoval(SonarCodeFixC...
    method RegisterBinaryExpressionReplacement (line 166) | private static void RegisterBinaryExpressionReplacement(SonarCodeFixCo...
    method FindNodeToKeep (line 178) | private static SyntaxNode FindNodeToKeep(BinaryExpressionSyntax binary)
    method TwoSidesAreDifferentBooleans (line 237) | private static bool TwoSidesAreDifferentBooleans(BinaryExpressionSynta...
    method TwoSidesAreSameBooleans (line 243) | private static bool TwoSidesAreSameBooleans(BinaryExpressionSyntax bin...
    method RemovePrefixUnary (line 249) | private static Document RemovePrefixUnary(Document document, SyntaxNod...
    method RemoveConditional (line 263) | private static Document RemoveConditional(Document document, SyntaxNod...
    method ReplaceExpressionWithBinary (line 281) | private static SyntaxNode ReplaceExpressionWithBinary(SyntaxNode nodeT...
    method RewriteConditional (line 286) | private static Document RewriteConditional(Document document, SyntaxNo...
    method GetNegatedExpression (line 342) | private static ExpressionSyntax GetNegatedExpression(ExpressionSyntax ...
    method AddParenthesis (line 345) | private static ExpressionSyntax AddParenthesis(ExpressionSyntax expres...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BreakOutsideSwitch.cs
  class BreakOutsideSwitch (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 31) | protected override void Initialize(SonarAnalysisContext context)
    method IsInSwitch (line 45) | private static bool IsInSwitch(BreakStatementSyntax node)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/BypassingAccessibility.cs
  class BypassingAccessibility (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method BypassingAccessibility (line 25) | public BypassingAccessibility() : base(AnalyzerConfiguration.AlwaysEna...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CallToAsyncMethodShouldNotBeBlocking.cs
  class CallToAsyncMethodShouldNotBeBlocking (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 72) | protected override void Initialize(SonarAnalysisContext context) =>
    method ReportOnViolation (line 75) | private static void ReportOnViolation(SonarSyntaxNodeReportingContext ...
    method IsAwaited (line 114) | private static bool IsAwaited(SonarSyntaxNodeReportingContext context,...
    method IsAwaitForMultipleTasksExecutionCall (line 128) | private static bool IsAwaitForMultipleTasksExecutionCall(SemanticModel...
    method IsAwaitForSingleTaskExecutionCall (line 132) | private static bool IsAwaitForSingleTaskExecutionCall(SemanticModel mo...
    method IsResultInContinueWithCall (line 136) | private static bool IsResultInContinueWithCall(string memberAccessName...
    method IsContinueWithCallWithArgumentName (line 142) | private static bool IsContinueWithCallWithArgumentName(InvocationExpre...
    method IsLambdaExpressionWithArgumentName (line 146) | private static bool IsLambdaExpressionWithArgumentName(ExpressionSynta...
    method IsChainedAfterThreadPoolCall (line 154) | private static bool IsChainedAfterThreadPoolCall(SemanticModel model, ...
    method IsNamedSymbolOfExpectedType (line 157) | private static bool IsNamedSymbolOfExpectedType(SemanticModel model, M...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CallerInformationParametersShouldBeLast.cs
  class CallerInformationParametersShouldBeLast (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    method ReportOnViolation (line 41) | private static void ReportOnViolation(SonarSyntaxNodeReportingContext ...
    method HasIdentifier (line 75) | private static bool HasIdentifier(ParameterSyntax parameter) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CastConcreteTypeToInterface.cs
  class CastConcreteTypeToInterface (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context)
    method CheckForIssue (line 49) | private static void CheckForIssue(SonarSyntaxNodeReportingContext cont...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CastShouldNotBeDuplicated.cs
  class CastShouldNotBeDuplicated (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 33) | protected override void Initialize(SonarAnalysisContext context)
    method CasePatternSwitchLabel (line 41) | private static void CasePatternSwitchLabel(SonarSyntaxNodeReportingCon...
    method SwitchExpressionArm (line 50) | private static void SwitchExpressionArm(SonarSyntaxNodeReportingContex...
    method IsPatternExpression (line 61) | private static void IsPatternExpression(SonarSyntaxNodeReportingContex...
    method IsExpression (line 70) | private static void IsExpression(SonarSyntaxNodeReportingContext analy...
    method DuplicatedCastLocations (line 80) | private static Location[] DuplicatedCastLocations(SonarSyntaxNodeRepor...
    method ProcessPatternExpression (line 111) | private static void ProcessPatternExpression(SonarSyntaxNodeReportingC...
    method GetTypesFromPattern (line 146) | private static IEnumerable<TypeSyntax> GetTypesFromPattern(SyntaxNode ...
    method GetType (line 183) | private static TypeSyntax GetType(SyntaxNode pattern)
    method ReportPatternAtMainVariable (line 200) | private static void ReportPatternAtMainVariable(SonarSyntaxNodeReporti...
    method ReportPatternAtCastLocation (line 214) | private static void ReportPatternAtCastLocation(SonarSyntaxNodeReporti...
    method IsEquivalentVariable (line 228) | private static bool IsEquivalentVariable(ExpressionSyntax expression, ...
    method CleanupExpression (line 245) | private static SyntaxNode CleanupExpression(SyntaxNode node)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CatchEmpty.cs
  class CatchEmpty (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 31) | protected override void Initialize(SonarAnalysisContext context)
    method IsGenericCatch (line 48) | private static bool IsGenericCatch(CatchClauseSyntax catchClause, Sema...
    method HasComments (line 64) | private static bool HasComments(CatchClauseSyntax catchClause)
    method IsCommentTrivia (line 70) | private static bool IsCommentTrivia(SyntaxTrivia trivia)
    method HasStatements (line 75) | private static bool HasStatements(CatchClauseSyntax catchClause)

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CatchRethrow.cs
  class CatchRethrow (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method ContainsOnlyThrow (line 27) | protected override bool ContainsOnlyThrow(CatchClauseSyntax currentCat...
    method AllCatches (line 30) | protected override CatchClauseSyntax[] AllCatches(SyntaxNode node) =>
    method DeclarationType (line 33) | protected override SyntaxNode DeclarationType(CatchClauseSyntax catchC...
    method HasFilter (line 36) | protected override bool HasFilter(CatchClauseSyntax catchClause) =>
    method Initialize (line 39) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CatchRethrowCodeFix.cs
  class CatchRethrowCodeFix (line 22) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 28) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...
    method CalculateNewRoot (line 51) | private static SyntaxNode CalculateNewRoot(SyntaxNode root, SyntaxNode...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CertificateValidationCheck.cs
  class CertificateValidationCheck (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method CreateParameterLookup (line 37) | internal override MethodParameterLookupBase<ArgumentSyntax> CreatePara...
    method Initialize (line 45) | protected override void Initialize(SonarAnalysisContext context)
    method FindRootTypeDeclaration (line 57) | protected override SyntaxNode FindRootTypeDeclaration(SyntaxNode node) =>
    method ExpressionLocation (line 60) | protected override Location ExpressionLocation(SyntaxNode expression) =>
    method SplitAssignment (line 64) | protected override void SplitAssignment(AssignmentExpressionSyntax ass...
    method CreateNodeEqualityComparer (line 70) | protected override IEqualityComparer<ExpressionSyntax> CreateNodeEqual...
    method FindReturnAndThrowExpressions (line 73) | protected override ExpressionSyntax[] FindReturnAndThrowExpressions(In...
    method IsTrueLiteral (line 79) | protected override bool IsTrueLiteral(ExpressionSyntax expression) =>
    method VariableInitializer (line 82) | protected override ExpressionSyntax VariableInitializer(VariableDeclar...
    method LambdaLocations (line 85) | protected override ImmutableArray<Location> LambdaLocations(Inspection...
    method LocalVariableScope (line 98) | protected override SyntaxNode LocalVariableScope(VariableDeclaratorSyn...
    method ExtractArgumentExpressionNode (line 101) | protected override SyntaxNode ExtractArgumentExpressionNode(SyntaxNode...
    method SyntaxFromReference (line 104) | protected override SyntaxNode SyntaxFromReference(SyntaxReference refe...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CheckArgumentException.cs
  class CheckArgumentException (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 40) | protected override void Initialize(SonarAnalysisContext context) =>
    method CheckForIssue (line 43) | private static void CheckForIssue(SonarSyntaxNodeReportingContext anal...
    method RetrieveParameterAndMessageArgumentValue (line 79) | private static Tuple<Optional<object>, Optional<object>> RetrieveParam...
    method GetMethodArgumentNames (line 104) | private static IEnumerable<string> GetMethodArgumentNames(SyntaxNode c...
    method TakeOnlyBeforeDot (line 161) | private static string TakeOnlyBeforeDot(Optional<object> value) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CheckFileLicense.cs
  class CheckFileLicense (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CheckFileLicenseCodeFix.cs
  class CheckFileLicenseCodeFix (line 20) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 26) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...
    method CreateFileHeaderTrivias (line 57) | private static IEnumerable<SyntaxTrivia> CreateFileHeaderTrivias(strin...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassAndMethodName.cs
  class ClassAndMethodName (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method SplitToParts (line 42) | internal static IEnumerable<string> SplitToParts(string name)
    method Initialize (line 88) | protected override void Initialize(SonarAnalysisContext context)
    method CheckTypeName (line 114) | private static void CheckTypeName(SonarSyntaxNodeReportingContext cont...
    method CheckMemberName (line 156) | private static void CheckMemberName(SonarSyntaxNodeReportingContext co...
    method IsMemberNameValid (line 192) | private static bool IsMemberNameValid(string identifierName, out strin...
    method IsTypeNameValid (line 219) | private static bool IsTypeNameValid(string identifierName, bool requir...
    method HandleFirstPartOfTypeName (line 258) | private static string HandleFirstPartOfTypeName(string input, bool req...
    method SuggestCapitalLetterAfterNonLetter (line 281) | private static string SuggestCapitalLetterAfterNonLetter(StringBuilder...
    method SuggestFixedCaseName (line 295) | private static string SuggestFixedCaseName(string input, int maxUpperc...
    method FirstCharToUpper (line 303) | private static string FirstCharToUpper(string input) =>
    method IsCharUpper (line 308) | private static bool IsCharUpper(string input, int idx) =>
    method GetDeclarationIdentifier (line 313) | private static SyntaxToken GetDeclarationIdentifier(SyntaxNode declara...
    method IsTestClassName (line 322) | private static bool IsTestClassName(string className) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassNamedException.cs
  class ClassNamedException (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassNotInstantiatable.cs
  class ClassNotInstantiatable (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method CollectRemovableDeclarations (line 25) | protected override IEnumerable<ConstructorContext> CollectRemovableDec...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassShouldNotBeEmpty.cs
  class ClassShouldNotBeEmpty (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IsEmptyAndNotPartial (line 25) | protected override bool IsEmptyAndNotPartial(SyntaxNode node) =>
    method GetIfHasDeclaredBaseClassOrInterface (line 30) | protected override BaseTypeDeclarationSyntax GetIfHasDeclaredBaseClass...
    method HasInterfaceOrGenericBaseClass (line 37) | protected override bool HasInterfaceOrGenericBaseClass(BaseTypeDeclara...
    method HasAnyAttribute (line 41) | protected override bool HasAnyAttribute(SyntaxNode node) =>
    method DeclarationTypeKeyword (line 44) | protected override string DeclarationTypeKeyword(SyntaxNode node) =>
    method HasConditionalCompilationDirectives (line 47) | protected override bool HasConditionalCompilationDirectives(SyntaxNode...
    method LacksParameterizedPrimaryConstructor (line 55) | private static bool LacksParameterizedPrimaryConstructor(SyntaxNode no...
    method IsParameterlessClass (line 59) | private static bool IsParameterlessClass(SyntaxNode node) =>
    method IsParameterlessRecord (line 63) | private static bool IsParameterlessRecord(SyntaxNode node) =>
    method LacksParameters (line 67) | private static bool LacksParameters(ParameterListSyntax parameterList,...
    method RecordDeclarationSyntax (line 71) | private static RecordDeclarationSyntaxWrapper? RecordDeclarationSyntax...
    method BaseTypeSyntax (line 76) | private static PrimaryConstructorBaseTypeSyntaxWrapper? BaseTypeSyntax...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassWithEqualityShouldImplementIEquatable.cs
  class ClassWithEqualityShouldImplementIEquatable (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 32) | protected override void Initialize(SonarAnalysisContext context)
    method ImplementsIEquatableInterface (line 54) | private bool ImplementsIEquatableInterface(ITypeSymbol classSymbol) =>
    method IsIEquatableEqualsMethodCandidate (line 60) | private static bool IsIEquatableEqualsMethodCandidate(IMethodSymbol me...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/ClassWithOnlyStaticMember.cs
  class ClassWithOnlyStaticMember (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 38) | protected override void Initialize(SonarAnalysisContext context) =>
    method CheckClasses (line 53) | private static void CheckClasses(SonarSymbolReportingContext context, ...
    method CheckConstructors (line 71) | private static void CheckConstructors(SonarSymbolReportingContext cont...
    method ClassIsRelevant (line 101) | private static bool ClassIsRelevant(INamedTypeSymbol @class) =>
    method ClassQualifiesForIssue (line 105) | private static bool ClassQualifiesForIssue(INamedTypeSymbol @class) =>
    method HasOnlyQualifyingMembers (line 111) | private static bool HasOnlyQualifyingMembers(INamedTypeSymbol @class, ...
    method ClassUsedAsInstanceInMembers (line 116) | private static bool ClassUsedAsInstanceInMembers(INamedTypeSymbol @cla...
    method HasMembersAndAllAreStaticExceptConstructors (line 121) | private static bool HasMembersAndAllAreStaticExceptConstructors(INamed...
    method IsConstructor (line 130) | private static bool IsConstructor(ISymbol member) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CloudNative/AzureFunctionsCatchExceptions.cs
  class AzureFunctionsCatchExceptions (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context) =>
    class Walker (line 45) | private sealed class Walker : SafeCSharpSyntaxWalker
      method Walker (line 49) | public Walker(SemanticModel semanticModel) =>
      method Visit (line 54) | public override void Visit(SyntaxNode node)
      method VisitInvocationExpression (line 68) | public override void VisitInvocationExpression(InvocationExpressionS...
      method VisitTryStatement (line 76) | public override void VisitTryStatement(TryStatementSyntax node)
      method CatchesAllExceptions (line 84) | private static bool CatchesAllExceptions(CatchClauseSyntax catchClau...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CloudNative/AzureFunctionsLogFailures.cs
  class AzureFunctionsLogFailures (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 37) | protected override void Initialize(SonarAnalysisContext context) =>
    method HasLoggerInScope (line 57) | private static bool HasLoggerInScope(IMethodSymbol entryPoint) =>
    method HasLoggerMember (line 64) | internal static bool HasLoggerMember(ITypeSymbol typeSymbol)
    class LoggerCallWalker (line 80) | private sealed class LoggerCallWalker : SafeCSharpSyntaxWalker
      method LoggerCallWalker (line 89) | public LoggerCallWalker(SemanticModel model, CancellationToken cancel)
      method Visit (line 95) | public override void Visit(SyntaxNode node)
      method VisitInvocationExpression (line 104) | public override void VisitInvocationExpression(InvocationExpressionS...
      method VisitArgument (line 122) | public override void VisitArgument(ArgumentSyntax node)
      method IsValidLogCall (line 128) | private bool IsValidLogCall(InvocationExpressionSyntax invocation, I...
      method IsPassingValidLogLevel (line 150) | private bool IsPassingValidLogLevel(InvocationExpressionSyntax invoc...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CloudNative/AzureFunctionsReuseClients.cs
  class AzureFunctionsReuseClients (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 52) | protected override void Initialize(SonarAnalysisContext context) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CloudNative/AzureFunctionsStateless.cs
  class AzureFunctionsStateless (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 30) | protected override void Initialize(SonarAnalysisContext context)
    method CheckTarget (line 69) | private static void CheckTarget(SonarSyntaxNodeReportingContext contex...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CloudNative/DurableEntityInterfaceRestrictions.cs
  method Initialize (line 33) | protected override void Initialize(SonarAnalysisContext context) =>
  method IsRestrictedMethod (line 49) | private static bool IsRestrictedMethod(IMethodSymbol method) =>
  method InterfaceErrorMessage (line 54) | private static string InterfaceErrorMessage(INamedTypeSymbol entityInter...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CognitiveComplexity.cs
  class CognitiveComplexity (line 23) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 28) | protected override void Initialize(SonarParametrizedAnalysisContext co...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CollectionEmptinessChecking.cs
  class CollectionEmptinessChecking (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CollectionEmptinessCheckingCodeFix.cs
  class CollectionEmptinessCheckingCodeFix (line 22) | [ExportCodeFixProvider(LanguageNames.CSharp)]
    method RegisterCodeFixesAsync (line 31) | protected override Task RegisterCodeFixesAsync(SyntaxNode root, SonarC...
    method Simplify (line 50) | private static void Simplify(SyntaxNode root, ExpressionSyntax express...
    method Replacement (line 56) | private static Task<Document> Replacement(SyntaxNode root, ExpressionS...
    method AnyFromExtension (line 69) | private static InvocationExpressionSyntax AnyFromExtension(InvocationE...
    method AnyFromStaticMethod (line 76) | private static InvocationExpressionSyntax AnyFromStaticMethod(Invocati...
    method IsExtension (line 84) | private static bool IsExtension(InvocationExpressionSyntax count) =>

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CollectionPropertiesShouldBeReadOnly.cs
  class CollectionPropertiesShouldBeReadOnly (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 46) | protected override void Initialize(SonarAnalysisContext context) =>
    method IsObservedCollectionType (line 64) | private static bool IsObservedCollectionType(IPropertySymbol propertyS...
    method HasPublicSetter (line 73) | private static bool HasPublicSetter(IPropertySymbol propertySymbol) =>
    method IsInterfaceImplementation (line 78) | private static bool IsInterfaceImplementation(IPropertySymbol property...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CollectionQuerySimplification.cs
  class CollectionQuerySimplification (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 70) | protected override void Initialize(SonarAnalysisContext context)
    method CheckCountCall (line 77) | private static void CheckCountCall(SonarSyntaxNodeReportingContext con...
    method CheckToCollectionCalls (line 102) | private static void CheckToCollectionCalls(SonarSyntaxNodeReportingCon...
    method MethodExistsOnIEnumerable (line 124) | private static bool MethodExistsOnIEnumerable(IMethodSymbol methodSymb...
    method ParametersMatch (line 146) | private static bool ParametersMatch(IMethodSymbol originalDefinition, ...
    method IsToCollectionCall (line 166) | private static bool IsToCollectionCall(IMethodSymbol methodSymbol) =>
    method GetToCollectionCallsMessage (line 171) | private static string GetToCollectionCallsMessage(SonarSyntaxNodeRepor...
    method IsLinqDatabaseQuery (line 176) | private static bool IsLinqDatabaseQuery(InvocationExpressionSyntax nod...
    method GetNodeTypeSymbol (line 191) | private static ITypeSymbol GetNodeTypeSymbol(SyntaxNode node, Semantic...
    method CheckExtensionMethodsOnIEnumerable (line 198) | private static void CheckExtensionMethodsOnIEnumerable(SonarSyntaxNode...
    method GetInnerInvocation (line 227) | private static InvocationExpressionSyntax GetInnerInvocation(Invocatio...
    method GetReducedArguments (line 254) | private static List<ArgumentSyntax> GetReducedArguments(IMethodSymbol ...
    method CheckForCastSimplification (line 259) | private static void CheckForCastSimplification(SonarSyntaxNodeReportin...
    method GetReportLocation (line 283) | private static Location GetReportLocation(InvocationExpressionSyntax i...
    method IsExpressionInLambdaIsCast (line 288) | private static bool IsExpressionInLambdaIsCast(IMethodSymbol methodSym...
    method IsFirstExpressionInLambdaIsNullChecking (line 292) | private static bool IsFirstExpressionInLambdaIsNullChecking(IMethodSym...
    method IsNullChecking (line 316) | private static bool IsNullChecking(BinaryExpressionSyntax binaryExpres...
    method GetExpressionFromLambda (line 333) | private static ExpressionSyntax GetExpressionFromLambda(ExpressionSynt...
    method GetLambdaParameter (line 344) | private static string GetLambdaParameter(ExpressionSyntax expression)
    method TryGetCastInLambda (line 359) | private static bool TryGetCastInLambda(SyntaxKind asOrIs, IMethodSymbo...
    method TryGetCastInLambda (line 392) | private static bool TryGetCastInLambda(IMethodSymbol methodSymbol, Inv...
    method CheckForSimplifiable (line 419) | private static bool CheckForSimplifiable(SonarSyntaxNodeReportingConte...
    method MethodIsNotUsingPredicate (line 436) | private static bool MethodIsNotUsingPredicate(IMethodSymbol methodSymb...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CollectionsShouldImplementGenericInterface.cs
  class CollectionsShouldImplementGenericInterface (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method Initialize (line 44) | protected override void Initialize(SonarAnalysisContext context) =>
    method SuggestGenericCollectionType (line 73) | private static string SuggestGenericCollectionType(ITypeSymbol typeSym...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CommentKeyword.cs
  class CommentKeyword (line 20) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IsComment (line 25) | protected override bool IsComment(SyntaxTrivia trivia) => trivia.IsCom...

FILE: analyzers/src/SonarAnalyzer.CSharp/Rules/CommentedOutCode.cs
  class CommentedOutCode (line 22) | [DiagnosticAnalyzer(LanguageNames.CSharp)]
    method IsCode (line 58) | internal static bool IsCode(string line)
    method Initialize (line 73) | protected override void In
Copy disabled (too large) Download .json
Condensed preview — 6476 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (24,581K chars).
[
  {
    "path": ".editorconfig",
    "chars": 26214,
    "preview": "# Editor configuration, see http://editorconfig.org\n# Visual studio supported code style syntax https://docs.microsoft.c"
  },
  {
    "path": ".gitattributes",
    "chars": 136,
    "preview": "*.cs text eol=lf\n*.vb text eol=lf\n*.ps1 text eol=lf\n*.verified.cs text eol=lf working-tree-encoding=UTF-8\npackages.lock."
  },
  {
    "path": ".github/CODEOWNERS",
    "chars": 53,
    "preview": ".github/CODEOWNERS @SonarSource/quality-dotnet-squad\n"
  },
  {
    "path": ".github/GitHub.shproj",
    "chars": 490,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project ToolsVersion=\"15.0\" xmlns=\"http://schemas.microsoft.com/developer/msbuil"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1-FalsePositive.yml",
    "chars": 914,
    "preview": "name: Report False Positive\ndescription: Analysis is raising an incorrect issue.\ntitle: \"Fix Sxxxx FP: \"\nbody:\n  - type:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2-FalseNegative.yml",
    "chars": 902,
    "preview": "name: Report False Negative\ndescription: Analysis is not raising an issue where it should.\ntitle: \"Fix Sxxxx FN: \"\nbody:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/3-AD0001.yml",
    "chars": 838,
    "preview": "name: Report AD0001\ndescription: Analysis is throwing an AD0001 error.\ntitle: \"Fix AD0001: \"\nbody:\n  - type: textarea\n  "
  },
  {
    "path": ".github/ISSUE_TEMPLATE/4-NewRule.yml",
    "chars": 1115,
    "preview": "name: Suggest New Rule\ndescription: Suggest an idea for a new rule that does not exist yet.\ntitle: \"New Rule Idea: \"\nbod"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 574,
    "preview": "blank_issues_enabled: false\n\ncontact_links:\n\n  - name: Request support or report a bug using SonarQube Cloud.\n    url: h"
  },
  {
    "path": ".github/workflows/LabelIssue.yml",
    "chars": 754,
    "preview": "name: Issue labeled\n\non:\n  issues:\n    types: [\"labeled\"]\n\njobs:\n  CreateJiraIssue_job:\n    name: Create Jira issue\n    "
  },
  {
    "path": ".github/workflows/SlackNotification.yml",
    "chars": 2597,
    "preview": "---\nname: Slack Notifications\non:\n  workflow_dispatch: # for testing\n  check_suite:\n    types: [completed]\n\njobs:\n  noti"
  },
  {
    "path": ".gitignore",
    "chars": 1516,
    "preview": "# Maven\ntarget/\n\n# IntelliJ IDEA\n*.iws\n*.iml\n*.ipr\n.idea/\n\n# Eclipse\n.classpath\n.project\n.settings\n\n# ---- Mac OS X\n.DS_"
  },
  {
    "path": ".globalconfig",
    "chars": 700,
    "preview": "# top-most GlobalConfig file, hierarchy search will stop in this file\nroot = true\n\n# Issues produced from a source gener"
  },
  {
    "path": "LICENSE.txt",
    "chars": 9666,
    "preview": "SONAR Source-Available License v1.0\nLast Updated November 13, 2024\n\n1. DEFINITIONS\n\n\"Agreement\" means this Sonar Source-"
  },
  {
    "path": "NOTICE.txt",
    "chars": 282,
    "preview": "Copyright (C) SonarSource Sàrl\nmailto:info AT sonarsource DOT com\n\nThis product includes software developed at\nSonarSou"
  },
  {
    "path": "README.md",
    "chars": 7753,
    "preview": "# Code Quality and Security for C\\# and VB.NET\r\n\r\n[![Build Status](https://dev.azure.com/sonarsource/DotNetTeam%20Proje"
  },
  {
    "path": "SECURITY.md",
    "chars": 1148,
    "preview": "# Reporting Security Issues\n\nA mature software vulnerability treatment process is a cornerstone of a robust information "
  },
  {
    "path": "analyzers/.runsettings",
    "chars": 200,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<RunSettings>\n  <RunConfiguration>\n    <!-- 0 will run all Test DLL in parallel l"
  },
  {
    "path": "analyzers/CI.NuGet.Config",
    "chars": 2657,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <packageSources>\n    <clear />\n    <add key=\"Repox\" value=\"http"
  },
  {
    "path": "analyzers/CodeAnalysis.targets",
    "chars": 985,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n  <ItemGroup>\n    <PackageReference Include=\"SonarAnalyzer.CSharp.Styli"
  },
  {
    "path": "analyzers/Common.targets",
    "chars": 2711,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n  <!-- This file is included in all projects inside src and tests direc"
  },
  {
    "path": "analyzers/README.md",
    "chars": 214,
    "preview": "# SonarAnalyzer for C# and Visual Basic .NET\n\nThis folder contains the code specific to the Roslyn based analyzer for C#"
  },
  {
    "path": "analyzers/SonarAnalyzer.sln",
    "chars": 13574,
    "preview": "Microsoft Visual Studio Solution File, Format Version 12.00\n# Visual Studio Version 18\nVisualStudioVersion = 18.0.11205."
  },
  {
    "path": "analyzers/Version.targets",
    "chars": 512,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n  <PropertyGroup>\n    <!-- These 4 values are set via set-version.ps1 "
  },
  {
    "path": "analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/Google.Protobuf-LICENSE.txt",
    "chars": 1731,
    "preview": "Copyright 2008 Google Inc.  All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmod"
  },
  {
    "path": "analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/Roslyn-LICENSE.txt",
    "chars": 1116,
    "preview": "The MIT License (MIT)\n\nCopyright (c) .NET Foundation and Contributors\n\nAll rights reserved.\n\nPermission is hereby grante"
  },
  {
    "path": "analyzers/packaging/Licenses/THIRD_PARTY_LICENSES/StyleCop.Analyzers-LICENSE.txt",
    "chars": 1082,
    "preview": "MIT License\n\nCopyright (c) Tunnel Vision Laboratories, LLC\n\nPermission is hereby granted, free of charge, to any person "
  },
  {
    "path": "analyzers/packaging/SonarAnalyzer.CFG.nuspec",
    "chars": 1175,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n  <m"
  },
  {
    "path": "analyzers/packaging/SonarAnalyzer.CSharp.Styling.nuspec",
    "chars": 1722,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n  <m"
  },
  {
    "path": "analyzers/packaging/SonarAnalyzer.CSharp.nuspec",
    "chars": 2354,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n  <m"
  },
  {
    "path": "analyzers/packaging/SonarAnalyzer.VisualBasic.nuspec",
    "chars": 2338,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<package xmlns=\"http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd\">\n  <m"
  },
  {
    "path": "analyzers/packaging/tools-cs/install.ps1",
    "chars": 1441,
    "preview": "param($installPath, $toolsPath, $package, $project)\n\n$invalidVsVersion = $false\n\nif ([Version]$project.DTE.Version -lt "
  },
  {
    "path": "analyzers/packaging/tools-cs/uninstall.ps1",
    "chars": 500,
    "preview": "param($installPath, $toolsPath, $package, $project)\n\nif ($project.Type -ne \"C#\") {\n    return\n}\n\nif ([Version]$project."
  },
  {
    "path": "analyzers/packaging/tools-vbnet/install.ps1",
    "chars": 1453,
    "preview": "param($installPath, $toolsPath, $package, $project)\n\n$invalidVsVersion = $false\n\nif ([Version]$project.DTE.Version -lt "
  },
  {
    "path": "analyzers/packaging/tools-vbnet/uninstall.ps1",
    "chars": 507,
    "preview": "param($installPath, $toolsPath, $package, $project)\n\nif ($project.Type -ne \"VB.NET\") {\n    return\n}\n\nif ([Version]$proj"
  },
  {
    "path": "analyzers/rspec/cs/S100.html",
    "chars": 1191,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Shared naming conventions allow teams to collaborate efficiently.</p>\n<p>This rule rai"
  },
  {
    "path": "analyzers/rspec/cs/S100.json",
    "chars": 463,
    "preview": "{\n  \"title\": \"Methods and properties should be named in PascalCase\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": "
  },
  {
    "path": "analyzers/rspec/cs/S1006.html",
    "chars": 3228,
    "preview": "<h2>Why is this an issue?</h2>\n<p><a\nhref=\"https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and"
  },
  {
    "path": "analyzers/rspec/cs/S1006.json",
    "chars": 460,
    "preview": "{\n  \"title\": \"Method overrides should not change parameter defaults\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\":"
  },
  {
    "path": "analyzers/rspec/cs/S101.html",
    "chars": 1255,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Shared naming conventions allow teams to collaborate efficiently.</p>\n<p>This rule rai"
  },
  {
    "path": "analyzers/rspec/cs/S101.json",
    "chars": 446,
    "preview": "{\n  \"title\": \"Types should be named in PascalCase\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAIN"
  },
  {
    "path": "analyzers/rspec/cs/S103.html",
    "chars": 118,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Scrolling horizontally to see a full line of code lowers the code readability.</p>\n\n"
  },
  {
    "path": "analyzers/rspec/cs/S103.json",
    "chars": 439,
    "preview": "{\n  \"title\": \"Lines should not be too long\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY"
  },
  {
    "path": "analyzers/rspec/cs/S104.html",
    "chars": 342,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When a source file grows too much, it can accumulate numerous responsibilities and bec"
  },
  {
    "path": "analyzers/rspec/cs/S104.json",
    "chars": 455,
    "preview": "{\n  \"title\": \"Files should not have too many lines of code\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      "
  },
  {
    "path": "analyzers/rspec/cs/S1048.html",
    "chars": 3019,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The <a href=\"https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes"
  },
  {
    "path": "analyzers/rspec/cs/S1048.json",
    "chars": 426,
    "preview": "{\n  \"title\": \"Finalizers should not throw exceptions\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \"impacts\": {\n      \"RELIABILITY\""
  },
  {
    "path": "analyzers/rspec/cs/S105.html",
    "chars": 281,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The tab width can differ from one development environment to another. Using tabs may r"
  },
  {
    "path": "analyzers/rspec/cs/S105.json",
    "chars": 448,
    "preview": "{\n  \"title\": \"Tabulation characters should not be used\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAI"
  },
  {
    "path": "analyzers/rspec/cs/S106.html",
    "chars": 1777,
    "preview": "<h2>Why is this an issue?</h2>\n<p>In software development, logs serve as a record of events within an application, provi"
  },
  {
    "path": "analyzers/rspec/cs/S106.json",
    "chars": 580,
    "preview": "{\n  \"title\": \"Standard outputs should not be used directly to log anything\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"im"
  },
  {
    "path": "analyzers/rspec/cs/S1066.html",
    "chars": 1219,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Nested code - blocks of code inside blocks of code - is eventually necessary, but incr"
  },
  {
    "path": "analyzers/rspec/cs/S1066.json",
    "chars": 451,
    "preview": "{\n  \"title\": \"Mergeable \\\"if\\\" statements should be combined\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S1067.html",
    "chars": 633,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The complexity of an expression is defined by the number of <code>&amp;&amp;</code>, <"
  },
  {
    "path": "analyzers/rspec/cs/S1067.json",
    "chars": 453,
    "preview": "{\n  \"title\": \"Expressions should not be too complex\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTA"
  },
  {
    "path": "analyzers/rspec/cs/S107.html",
    "chars": 1499,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Methods with a long parameter list are difficult to use because maintainers must figur"
  },
  {
    "path": "analyzers/rspec/cs/S107.json",
    "chars": 457,
    "preview": "{\n  \"title\": \"Methods should not have too many parameters\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \""
  },
  {
    "path": "analyzers/rspec/cs/S1075.html",
    "chars": 2581,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Hard-coding a URI makes it difficult to test a program for a variety of reasons:</p>\n<"
  },
  {
    "path": "analyzers/rspec/cs/S1075.json",
    "chars": 423,
    "preview": "{\n  \"title\": \"URIs should not be hardcoded\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY"
  },
  {
    "path": "analyzers/rspec/cs/S108.html",
    "chars": 538,
    "preview": "<h2>Why is this an issue?</h2>\n<p>An empty code block is confusing. It will require some effort from maintainers to dete"
  },
  {
    "path": "analyzers/rspec/cs/S108.json",
    "chars": 453,
    "preview": "{\n  \"title\": \"Nested blocks of code should not be left empty\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S109.html",
    "chars": 1673,
    "preview": "<p>A magic number is a hard-coded numerical value that may lack context or meaning. They should not be used because they"
  },
  {
    "path": "analyzers/rspec/cs/S109.json",
    "chars": 444,
    "preview": "{\n  \"title\": \"Magic numbers should not be used\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABI"
  },
  {
    "path": "analyzers/rspec/cs/S110.html",
    "chars": 920,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Inheritance is one of the most valuable concepts in object-oriented programming. It’s "
  },
  {
    "path": "analyzers/rspec/cs/S110.json",
    "chars": 536,
    "preview": "{\n  \"title\": \"Inheritance tree of classes should not be too deep\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n"
  },
  {
    "path": "analyzers/rspec/cs/S1104.html",
    "chars": 3219,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Public fields in public classes do not respect the encapsulation principle and have th"
  },
  {
    "path": "analyzers/rspec/cs/S1104.json",
    "chars": 505,
    "preview": "{\n  \"title\": \"Fields should not have public accessibility\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \""
  },
  {
    "path": "analyzers/rspec/cs/S1109.html",
    "chars": 531,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Shared coding conventions make it possible for a team to efficiently collaborate. This"
  },
  {
    "path": "analyzers/rspec/cs/S1109.json",
    "chars": 474,
    "preview": "{\n  \"title\": \"A close curly brace should be located at the beginning of a line\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n   "
  },
  {
    "path": "analyzers/rspec/cs/S1110.html",
    "chars": 801,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Parentheses can disambiguate the order of operations in complex expressions and make t"
  },
  {
    "path": "analyzers/rspec/cs/S1110.json",
    "chars": 456,
    "preview": "{\n  \"title\": \"Redundant pairs of parentheses should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1116.html",
    "chars": 988,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Empty statements represented by a semicolon <code>;</code> are statements that do not "
  },
  {
    "path": "analyzers/rspec/cs/S1116.json",
    "chars": 436,
    "preview": "{\n  \"title\": \"Empty statements should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINA"
  },
  {
    "path": "analyzers/rspec/cs/S1117.html",
    "chars": 1809,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Shadowing occurs when a local variable has the same name as a variable, field, or prop"
  },
  {
    "path": "analyzers/rspec/cs/S1117.json",
    "chars": 487,
    "preview": "{\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY\": \"MEDIUM\"\n    },\n    \"attribute\": \"CLEAR\""
  },
  {
    "path": "analyzers/rspec/cs/S1118.html",
    "chars": 1671,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Whenever there are portions of code that are duplicated and do not depend on the state"
  },
  {
    "path": "analyzers/rspec/cs/S1118.json",
    "chars": 458,
    "preview": "{\n  \"title\": \"Utility classes should not have public constructors\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {"
  },
  {
    "path": "analyzers/rspec/cs/S112.html",
    "chars": 3043,
    "preview": "<p>This rule raises an issue when a general or reserved exception is thrown.</p>\n<h2>Why is this an issue?</h2>\n<p>Throw"
  },
  {
    "path": "analyzers/rspec/cs/S112.json",
    "chars": 542,
    "preview": "{\n  \"title\": \"General or reserved exceptions should never be thrown\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\":"
  },
  {
    "path": "analyzers/rspec/cs/S1121.html",
    "chars": 2084,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A common code smell that can hinder the clarity of source code is making assignments w"
  },
  {
    "path": "analyzers/rspec/cs/S1121.json",
    "chars": 537,
    "preview": "{\n  \"title\": \"Assignments should not be made from within sub-expressions\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impa"
  },
  {
    "path": "analyzers/rspec/cs/S1123.html",
    "chars": 627,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The <code>Obsolete</code> attribute can be applied with or without a message argument."
  },
  {
    "path": "analyzers/rspec/cs/S1123.json",
    "chars": 478,
    "preview": "{\n  \"title\": \"\\\"Obsolete\\\" attributes should include explanations\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {"
  },
  {
    "path": "analyzers/rspec/cs/S1125.html",
    "chars": 1855,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A boolean literal can be represented in two different ways: <code>true</code> or <code"
  },
  {
    "path": "analyzers/rspec/cs/S1125.json",
    "chars": 449,
    "preview": "{\n  \"title\": \"Boolean literals should not be redundant\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAI"
  },
  {
    "path": "analyzers/rspec/cs/S1128.html",
    "chars": 3251,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Unnecessary <code>using</code> directives refer to importing namespaces, types or crea"
  },
  {
    "path": "analyzers/rspec/cs/S1128.json",
    "chars": 441,
    "preview": "{\n  \"title\": \"Unnecessary \\\"using\\\" should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAIN"
  },
  {
    "path": "analyzers/rspec/cs/S113.html",
    "chars": 317,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Some tools work better when files end with an empty line.</p>\n<p>This rule simply gene"
  },
  {
    "path": "analyzers/rspec/cs/S113.json",
    "chars": 442,
    "preview": "{\n  \"title\": \"Files should end with a newline\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABIL"
  },
  {
    "path": "analyzers/rspec/cs/S1133.html",
    "chars": 278,
    "preview": "<h2>Why is this an issue?</h2>\n<p>This rule is meant to be used as a way to track code which is marked as being deprecat"
  },
  {
    "path": "analyzers/rspec/cs/S1133.json",
    "chars": 441,
    "preview": "{\n  \"title\": \"Deprecated code should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINAB"
  },
  {
    "path": "analyzers/rspec/cs/S1134.html",
    "chars": 662,
    "preview": "<h2>Why is this an issue?</h2>\n<p><code>FIXME</code> tags are commonly used to mark places where a bug is suspected, but"
  },
  {
    "path": "analyzers/rspec/cs/S1134.json",
    "chars": 495,
    "preview": "{\n  \"title\": \"Track uses of \\\"FIXME\\\" tags\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY"
  },
  {
    "path": "analyzers/rspec/cs/S1135.html",
    "chars": 2167,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Developers often use <code>TODO</code> tags to mark areas in the code where additional"
  },
  {
    "path": "analyzers/rspec/cs/S1135.json",
    "chars": 491,
    "preview": "{\n  \"title\": \"Track uses of \\\"TODO\\\" tags\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY\""
  },
  {
    "path": "analyzers/rspec/cs/S1144.html",
    "chars": 2732,
    "preview": "<p>This rule raises an issue when a private/internal type or member is never referenced in the code.</p>\n<h2>Why is this"
  },
  {
    "path": "analyzers/rspec/cs/S1144.json",
    "chars": 454,
    "preview": "{\n  \"title\": \"Unused private types or members should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n "
  },
  {
    "path": "analyzers/rspec/cs/S1147.html",
    "chars": 486,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Calling <code>Environment.Exit(exitCode)</code> or <code>Application.Exit()</code> ter"
  },
  {
    "path": "analyzers/rspec/cs/S1147.json",
    "chars": 524,
    "preview": "{\n  \"title\": \"Exit methods should not be called\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINAB"
  },
  {
    "path": "analyzers/rspec/cs/S1151.html",
    "chars": 1189,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The <code>switch</code> statement should be used only to clearly define some new branc"
  },
  {
    "path": "analyzers/rspec/cs/S1151.json",
    "chars": 478,
    "preview": "{\n  \"title\": \"\\\"switch case\\\" clauses should not have too many lines of code\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \""
  },
  {
    "path": "analyzers/rspec/cs/S1155.html",
    "chars": 4265,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When you call <code>Any()</code>, it clearly communicates the code’s intention, which "
  },
  {
    "path": "analyzers/rspec/cs/S1155.json",
    "chars": 453,
    "preview": "{\n  \"title\": \"\\\"Any()\\\" should be used to test for emptiness\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S1163.html",
    "chars": 1381,
    "preview": "<h2>Why is this an issue?</h2>\n<p>If an exception is already being thrown within the <code>try</code> block or caught in"
  },
  {
    "path": "analyzers/rspec/cs/S1163.json",
    "chars": 489,
    "preview": "{\n  \"title\": \"Exceptions should not be thrown in finally blocks\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n "
  },
  {
    "path": "analyzers/rspec/cs/S1168.html",
    "chars": 1571,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Returning <code>null</code> or <code>default</code> instead of an actual collection fo"
  },
  {
    "path": "analyzers/rspec/cs/S1168.json",
    "chars": 454,
    "preview": "{\n  \"title\": \"Empty arrays and collections should be returned instead of null\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S1172.html",
    "chars": 1984,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A typical code smell known as unused function parameters refers to parameters declared"
  },
  {
    "path": "analyzers/rspec/cs/S1172.json",
    "chars": 447,
    "preview": "{\n  \"title\": \"Unused method parameters should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"M"
  },
  {
    "path": "analyzers/rspec/cs/S1185.html",
    "chars": 1410,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Overriding a method just to call the same method from the base class without performin"
  },
  {
    "path": "analyzers/rspec/cs/S1185.json",
    "chars": 503,
    "preview": "{\n  \"title\": \"Overriding members should do more than simply call the same member in the base class\",\n  \"type\": \"CODE_SME"
  },
  {
    "path": "analyzers/rspec/cs/S1186.html",
    "chars": 1969,
    "preview": "<h2>Why is this an issue?</h2>\n<p>An empty method is generally considered bad practice and can lead to confusion, readab"
  },
  {
    "path": "analyzers/rspec/cs/S1186.json",
    "chars": 440,
    "preview": "{\n  \"title\": \"Methods should not be empty\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY\""
  },
  {
    "path": "analyzers/rspec/cs/S1192.html",
    "chars": 1288,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Duplicated string literals make the process of refactoring complex and error-prone, as"
  },
  {
    "path": "analyzers/rspec/cs/S1192.json",
    "chars": 521,
    "preview": "{\n  \"title\": \"String literals should not be duplicated\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAI"
  },
  {
    "path": "analyzers/rspec/cs/S1199.html",
    "chars": 1566,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Nested code blocks create new scopes where variables declared within are inaccessible "
  },
  {
    "path": "analyzers/rspec/cs/S1199.json",
    "chars": 446,
    "preview": "{\n  \"title\": \"Nested code blocks should not be used\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTA"
  },
  {
    "path": "analyzers/rspec/cs/S1200.html",
    "chars": 1361,
    "preview": "<h2>Why is this an issue?</h2>\n<p>According to the Single Responsibility Principle, introduced by Robert C. Martin in hi"
  },
  {
    "path": "analyzers/rspec/cs/S1200.json",
    "chars": 469,
    "preview": "{\n  \"title\": \"Classes should not be coupled to too many other classes\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts"
  },
  {
    "path": "analyzers/rspec/cs/S1206.html",
    "chars": 2285,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Suppose you override <a href=\"https://learn.microsoft.com/en-us/dotnet/api/system.obje"
  },
  {
    "path": "analyzers/rspec/cs/S1206.json",
    "chars": 526,
    "preview": "{\n  \"title\": \"\\\"Equals(Object)\\\" and \\\"GetHashCode()\\\" should be overridden in pairs\",\n  \"type\": \"BUG\",\n  \"code\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S121.html",
    "chars": 806,
    "preview": "<p>Control structures are code statements that impact the program’s control flow (e.g., if statements, for loops, etc.)<"
  },
  {
    "path": "analyzers/rspec/cs/S121.json",
    "chars": 447,
    "preview": "{\n  \"title\": \"Control structures should use curly braces\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"M"
  },
  {
    "path": "analyzers/rspec/cs/S1210.html",
    "chars": 1791,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When you implement <code>IComparable</code> or <code>IComparable&lt;T&gt;</code> on a "
  },
  {
    "path": "analyzers/rspec/cs/S1210.json",
    "chars": 485,
    "preview": "{\n  \"title\": \"\\\"Equals\\\" and the comparison operators should be overridden when implementing \\\"IComparable\\\"\",\n  \"type\":"
  },
  {
    "path": "analyzers/rspec/cs/S1215.html",
    "chars": 6794,
    "preview": "<h2>Why is this an issue?</h2>\n<p><a href=\"https://learn.microsoft.com/en-us/dotnet/api/system.gc.collect\">GC.Collect</a"
  },
  {
    "path": "analyzers/rspec/cs/S1215.json",
    "chars": 493,
    "preview": "{\n  \"title\": \"\\\"GC.Collect\\\" should not be called\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAIN"
  },
  {
    "path": "analyzers/rspec/cs/S122.html",
    "chars": 959,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Putting multiple statements on a single line lowers the code readability and makes deb"
  },
  {
    "path": "analyzers/rspec/cs/S122.json",
    "chars": 449,
    "preview": "{\n  \"title\": \"Statements should be on separate lines\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINT"
  },
  {
    "path": "analyzers/rspec/cs/S1226.html",
    "chars": 593,
    "preview": "<h2>Why is this an issue?</h2>\n<p>While it is technically correct to assign to parameters from within method bodies, doi"
  },
  {
    "path": "analyzers/rspec/cs/S1226.json",
    "chars": 476,
    "preview": "{\n  \"title\": \"Method parameters, caught exceptions and foreach variables\\u0027 initial values should not be ignored\",\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1227.html",
    "chars": 549,
    "preview": "<p>This rule is deprecated, and will eventually be removed.</p>\n<h2>Why is this an issue?</h2>\n<p><code>break;</code> is"
  },
  {
    "path": "analyzers/rspec/cs/S1227.json",
    "chars": 451,
    "preview": "{\n  \"title\": \"break statements should not be used except for switch cases\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"imp"
  },
  {
    "path": "analyzers/rspec/cs/S1244.html",
    "chars": 2577,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Floating point numbers in C# (and in most other programming languages) are not precise"
  },
  {
    "path": "analyzers/rspec/cs/S1244.json",
    "chars": 436,
    "preview": "{\n  \"title\": \"Floating point numbers should not be tested for equality\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \"impacts\": {\n "
  },
  {
    "path": "analyzers/rspec/cs/S125.html",
    "chars": 787,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Commented-out code distracts the focus from the actual executed code. It creates a noi"
  },
  {
    "path": "analyzers/rspec/cs/S125.json",
    "chars": 447,
    "preview": "{\n  \"title\": \"Sections of code should not be commented out\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      "
  },
  {
    "path": "analyzers/rspec/cs/S126.html",
    "chars": 917,
    "preview": "<h2>Why is this an issue?</h2>\n<p>This rule applies whenever an <code>if</code> statement is followed by one or more <co"
  },
  {
    "path": "analyzers/rspec/cs/S126.json",
    "chars": 450,
    "preview": "{\n  \"title\": \"\\\"if ... else if\\\" constructs should end with \\\"else\\\" clauses\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \""
  },
  {
    "path": "analyzers/rspec/cs/S1264.html",
    "chars": 1445,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Using a <code>for</code> loop without its typical structure (initialization, condition"
  },
  {
    "path": "analyzers/rspec/cs/S1264.json",
    "chars": 459,
    "preview": "{\n  \"title\": \"A \\\"while\\\" loop should be used instead of a \\\"for\\\" loop\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impac"
  },
  {
    "path": "analyzers/rspec/cs/S127.html",
    "chars": 1861,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A <code>for</code> loop stop condition should test the loop counter against an invaria"
  },
  {
    "path": "analyzers/rspec/cs/S127.json",
    "chars": 453,
    "preview": "{\n  \"title\": \"\\\"for\\\" loop stop conditions should be invariant\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1301.html",
    "chars": 789,
    "preview": "<h2>Why is this an issue?</h2>\n<p><code>switch</code> statements and expressions are useful when there are many differen"
  },
  {
    "path": "analyzers/rspec/cs/S1301.json",
    "chars": 469,
    "preview": "{\n  \"title\": \"\\\"switch\\\" statements should have at least 3 \\\"case\\\" clauses\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"i"
  },
  {
    "path": "analyzers/rspec/cs/S1309.html",
    "chars": 323,
    "preview": "<h2>Why is this an issue?</h2>\n<p>This rule allows you to track the usage of the <code>SuppressMessage</code> attributes"
  },
  {
    "path": "analyzers/rspec/cs/S1309.json",
    "chars": 429,
    "preview": "{\n  \"title\": \"Track uses of in-source issue suppressions\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"M"
  },
  {
    "path": "analyzers/rspec/cs/S131.html",
    "chars": 1085,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The requirement for a final <code>default</code> clause is defensive programming. The "
  },
  {
    "path": "analyzers/rspec/cs/S131.json",
    "chars": 537,
    "preview": "{\n  \"title\": \"\\\"switch\\/Select\\\" statements should contain a \\\"default\\/Case Else\\\" clauses\",\n  \"type\": \"CODE_SMELL\",\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1312.html",
    "chars": 3026,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Regardless of the logging framework in use (Microsoft.Extension.Logging, Serilog, Log4"
  },
  {
    "path": "analyzers/rspec/cs/S1312.json",
    "chars": 481,
    "preview": "{\n  \"title\": \"Logger fields should be \\\"private static readonly\\\"\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {"
  },
  {
    "path": "analyzers/rspec/cs/S1313.html",
    "chars": 3437,
    "preview": "<p>Hardcoding IP addresses is security-sensitive. It has led in the past to the following vulnerabilities:</p>\n<ul>\n  <l"
  },
  {
    "path": "analyzers/rspec/cs/S1313.json",
    "chars": 558,
    "preview": "{\n  \"title\": \"Using hardcoded IP addresses is security-sensitive\",\n  \"type\": \"SECURITY_HOTSPOT\",\n  \"code\": {\n    \"impact"
  },
  {
    "path": "analyzers/rspec/cs/S134.html",
    "chars": 1923,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Nested control flow statements <code>if</code>, <code>switch</code>, <code>for</code>,"
  },
  {
    "path": "analyzers/rspec/cs/S134.json",
    "chars": 543,
    "preview": "{\n  \"title\": \"Control flow statements \\\"if\\\", \\\"switch\\\", \\\"for\\\", \\\"foreach\\\", \\\"while\\\", \\\"do\\\"  and \\\"try\\\" should no"
  },
  {
    "path": "analyzers/rspec/cs/S138.html",
    "chars": 444,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A function that grows too large tends to aggregate too many responsibilities.</p>\n<p>S"
  },
  {
    "path": "analyzers/rspec/cs/S138.json",
    "chars": 463,
    "preview": "{\n  \"title\": \"Functions should not have too many lines of code\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1449.html",
    "chars": 1293,
    "preview": "<h2>Why is this an issue?</h2>\n<p><code>string.ToLower()</code>, <code>ToUpper</code>, <code>IndexOf</code>, <code>LastI"
  },
  {
    "path": "analyzers/rspec/cs/S1449.json",
    "chars": 466,
    "preview": "{\n  \"title\": \"Culture should be specified for \\\"string\\\" operations\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\":"
  },
  {
    "path": "analyzers/rspec/cs/S1450.html",
    "chars": 677,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When the value of a private field is always assigned to in a class' methods before bei"
  },
  {
    "path": "analyzers/rspec/cs/S1450.json",
    "chars": 488,
    "preview": "{\n  \"title\": \"Private fields only used as local variables in methods should become local variables\",\n  \"type\": \"CODE_SME"
  },
  {
    "path": "analyzers/rspec/cs/S1451.html",
    "chars": 1902,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Each source file should start with a header stating file ownership and the license whi"
  },
  {
    "path": "analyzers/rspec/cs/S1451.json",
    "chars": 456,
    "preview": "{\n  \"title\": \"Track lack of copyright and license headers\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \""
  },
  {
    "path": "analyzers/rspec/cs/S1479.html",
    "chars": 3986,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When <a href=\"https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/state"
  },
  {
    "path": "analyzers/rspec/cs/S1479.json",
    "chars": 498,
    "preview": "{\n  \"title\": \"\\\"switch\\\" statements with many \\\"case\\\" clauses should have only one statement\",\n  \"type\": \"CODE_SMELL\",\n"
  },
  {
    "path": "analyzers/rspec/cs/S1481.html",
    "chars": 2662,
    "preview": "<h2>Why is this an issue?</h2>\n<p>An unused local variable is a variable that has been declared but is not used anywhere"
  },
  {
    "path": "analyzers/rspec/cs/S1481.json",
    "chars": 442,
    "preview": "{\n  \"title\": \"Unused local variables should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAI"
  },
  {
    "path": "analyzers/rspec/cs/S1541.html",
    "chars": 237,
    "preview": "<h2>Why is this an issue?</h2>\n<p>The cyclomatic complexity of methods and properties should not exceed a defined thresh"
  },
  {
    "path": "analyzers/rspec/cs/S1541.json",
    "chars": 466,
    "preview": "{\n  \"title\": \"Methods and properties should not be too complex\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1607.html",
    "chars": 1169,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When a test fails due, for example, to infrastructure issues, you might want to ignore"
  },
  {
    "path": "analyzers/rspec/cs/S1607.json",
    "chars": 472,
    "preview": "{\n  \"title\": \"Tests should not be ignored\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAINABILITY\""
  },
  {
    "path": "analyzers/rspec/cs/S1643.html",
    "chars": 3847,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Concatenating multiple string literals or strings using the <code>+</code> operator cr"
  },
  {
    "path": "analyzers/rspec/cs/S1643.json",
    "chars": 477,
    "preview": "{\n  \"title\": \"Strings should not be concatenated using \\u0027+\\u0027 in a loop\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n   "
  },
  {
    "path": "analyzers/rspec/cs/S1656.html",
    "chars": 1060,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Re-assigning a variable to itself is a defect as it has no actual effect and indicates"
  },
  {
    "path": "analyzers/rspec/cs/S1656.json",
    "chars": 418,
    "preview": "{\n  \"title\": \"Variables should not be self-assigned\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \"impacts\": {\n      \"RELIABILITY\":"
  },
  {
    "path": "analyzers/rspec/cs/S1659.html",
    "chars": 412,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Declaring multiple variable on one line is difficult to read.</p>\n<h3>Noncompliant cod"
  },
  {
    "path": "analyzers/rspec/cs/S1659.json",
    "chars": 468,
    "preview": "{\n  \"title\": \"Multiple variables should not be declared on the same line\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impa"
  },
  {
    "path": "analyzers/rspec/cs/S1694.html",
    "chars": 5599,
    "preview": "<p>A <code>class</code> with only <code>abstract</code> methods and no inheritable behavior should be converted to an <a"
  },
  {
    "path": "analyzers/rspec/cs/S1694.json",
    "chars": 478,
    "preview": "{\n  \"title\": \"An abstract class should have both abstract and concrete methods\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n   "
  },
  {
    "path": "analyzers/rspec/cs/S1696.html",
    "chars": 1875,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Catching <code>NullReferenceException</code> is generally considered a bad practice be"
  },
  {
    "path": "analyzers/rspec/cs/S1696.json",
    "chars": 537,
    "preview": "{\n  \"title\": \"NullReferenceException should not be caught\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \""
  },
  {
    "path": "analyzers/rspec/cs/S1698.html",
    "chars": 2393,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Using the equality <code>==</code> and inequality <code>!=</code> operators to compare"
  },
  {
    "path": "analyzers/rspec/cs/S1698.json",
    "chars": 553,
    "preview": "{\n  \"title\": \"\\\"\\u003d\\u003d\\\" should not be used when \\\"Equals\\\" is overridden\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n  "
  },
  {
    "path": "analyzers/rspec/cs/S1699.html",
    "chars": 5073,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Calling an overridable method from a constructor could result in failures or strange b"
  },
  {
    "path": "analyzers/rspec/cs/S1699.json",
    "chars": 467,
    "preview": "{\n  \"title\": \"Constructors should only call non-overridable methods\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\":"
  },
  {
    "path": "analyzers/rspec/cs/S1751.html",
    "chars": 3272,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A <a href=\"https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/statemen"
  },
  {
    "path": "analyzers/rspec/cs/S1751.json",
    "chars": 473,
    "preview": "{\n  \"title\": \"Loops with at most one iteration should be refactored\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \"impacts\": {\n    "
  },
  {
    "path": "analyzers/rspec/cs/S1764.html",
    "chars": 3784,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Using the same value on both sides of certain operators is a code defect. In the case "
  },
  {
    "path": "analyzers/rspec/cs/S1764.json",
    "chars": 469,
    "preview": "{\n  \"title\": \"Identical expressions should not be used on both sides of operators\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \"im"
  },
  {
    "path": "analyzers/rspec/cs/S1821.html",
    "chars": 485,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Nested <code>switch</code> structures are difficult to understand because you can easi"
  },
  {
    "path": "analyzers/rspec/cs/S1821.json",
    "chars": 452,
    "preview": "{\n  \"title\": \"\\\"switch\\\" statements should not be nested\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"M"
  },
  {
    "path": "analyzers/rspec/cs/S1848.html",
    "chars": 1019,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Creating objects that are not used is a vulnerability that can lead to unexpected beha"
  },
  {
    "path": "analyzers/rspec/cs/S1848.json",
    "chars": 456,
    "preview": "{\n  \"title\": \"Objects should not be created to be dropped immediately without being used\",\n  \"type\": \"BUG\",\n  \"code\": {\n"
  },
  {
    "path": "analyzers/rspec/cs/S1854.html",
    "chars": 2335,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Dead stores refer to assignments made to local variables that are subsequently never u"
  },
  {
    "path": "analyzers/rspec/cs/S1854.json",
    "chars": 514,
    "preview": "{\n  \"title\": \"Unused assignments should be removed\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      \"MAINTAI"
  },
  {
    "path": "analyzers/rspec/cs/S1858.html",
    "chars": 1195,
    "preview": "<h2>Why is this an issue?</h2>\n<p>Invoking a method designed to return a string representation of an object which is alr"
  },
  {
    "path": "analyzers/rspec/cs/S1858.json",
    "chars": 461,
    "preview": "{\n  \"title\": \"\\\"ToString()\\\" calls should not be redundant\",\n  \"type\": \"CODE_SMELL\",\n  \"code\": {\n    \"impacts\": {\n      "
  },
  {
    "path": "analyzers/rspec/cs/S1862.html",
    "chars": 1374,
    "preview": "<h2>Why is this an issue?</h2>\n<p>A chain of <a href=\"https://learn.microsoft.com/en-us/dotnet/csharp/language-reference"
  },
  {
    "path": "analyzers/rspec/cs/S1862.json",
    "chars": 484,
    "preview": "{\n  \"title\": \"Related \\\"if\\/else if\\\" statements should not have the same condition\",\n  \"type\": \"BUG\",\n  \"code\": {\n    \""
  },
  {
    "path": "analyzers/rspec/cs/S1871.html",
    "chars": 2902,
    "preview": "<h2>Why is this an issue?</h2>\n<p>When the same code is duplicated in two or more separate branches of a conditional, it"
  }
]

// ... and 6276 more files (download for full content)

About this extraction

This page contains the full source code of the SonarSource/sonar-csharp GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 6476 files (21.9 MB), approximately 6.1M tokens, and a symbol index with 36372 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!