Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/eng
diff options
context:
space:
mode:
authorSven Boemer <sbomer@gmail.com>2022-06-15 19:28:50 +0300
committerGitHub <noreply@github.com>2022-06-15 19:28:50 +0300
commit226107b9117b9d166e38dd00e30f9ab54399e658 (patch)
tree410de8da2b0f1555d977b78938f7ced082a32c72 /eng
parent2abcee1070e38d2994a25777023dfa61615ea498 (diff)
Analyze implicit indexer reference operations (#2839)
Adds support for `IImplicitIndexerReferenceOperation`, which represents an implicit access to an indexer that uses `System.Index`. Implicit means that there is no `System.Index` accessor in IL, but the compiler supports `System.Index` access via an existing indexer (for example one that takes int) for types that satisfy certain criteria. See https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/ranges#implicit-index-support for details. This operation only showed up in the CFG with a more recent version of the Roslyn APIs, so this includes an update to match the one used in dotnet/runtime. This resulted in a few changes to the generated code that required tweaking some of the test validation: - Delegate cache fields are emitted. This reuses an existing attribute originally designed for mcs, but it has been updated to check for these compiler-generated fields. - `<PrivateImplementationDetails>.ThrowSwitchExpressionException` is emitted for an implicit unhandled case in switch expressions. This change includes a new attribute to check that this is kept in a few of the tests.
Diffstat (limited to 'eng')
-rw-r--r--eng/Versions.props2
1 files changed, 1 insertions, 1 deletions
diff --git a/eng/Versions.props b/eng/Versions.props
index 285436be0..f3a76f0c0 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -21,7 +21,7 @@
<MicrosoftDotNetApiCompatVersion>7.0.0-beta.22313.1</MicrosoftDotNetApiCompatVersion>
<MicrosoftDotNetCodeAnalysisVersion>6.0.0-beta.21271.1</MicrosoftDotNetCodeAnalysisVersion>
<MicrosoftCodeAnalysisCSharpCodeStyleVersion>3.10.0-2.final</MicrosoftCodeAnalysisCSharpCodeStyleVersion>
- <MicrosoftCodeAnalysisVersion>4.0.1</MicrosoftCodeAnalysisVersion>
+ <MicrosoftCodeAnalysisVersion>4.3.0-1.22206.2</MicrosoftCodeAnalysisVersion>
<MicrosoftCodeAnalysisCSharpAnalyzerTestingXunitVersion>1.0.1-beta1.*</MicrosoftCodeAnalysisCSharpAnalyzerTestingXunitVersion>
<MicrosoftCodeAnalysisBannedApiAnalyzersVersion>3.3.2</MicrosoftCodeAnalysisBannedApiAnalyzersVersion>
<!-- This controls the version of the cecil package, or the version of cecil in the project graph