Skip to content

ILLink.RoslynAnalyzer throws System.InvalidCastException with C# 14 extensions and targeting net9.0 #120728

@meziantou

Description

@meziantou

Description

Analyzer throws an exception when building a project using new extensions syntax.

  • The exception occurs when targeting net9.0
  • Change it to net8.0 or net10.0 and the error vanish

I think #115949 fixed a part of the error, but the error still occurs when targeting net9.0.

Reproduction Steps

<Project Sdk="Microsoft.NET.Sdk">
	<PropertyGroup>
		<TargetFramework>net9.0</TargetFramework>
		<LangVersion>preview</LangVersion>
		<IsTrimmable>true</IsTrimmable>
	</PropertyGroup>
</Project>
public static class ArrayExtensions
{
    extension<T>(T[] array)
    {
        public int Count => array.Length;
    }
}

warning AD0001: Analyzer 'ILLink.RoslynAnalyzer.DynamicallyAccessedMembersAnalyzer' threw an exception of type 'System.InvalidCastException' with message 'Unable to cast object of type 'Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.NonErrorNamedTypeSymbol' to type 'Microsoft.CodeAnalysis.IMethodSymbol'.'.

Expected behavior

No exception

Actual behavior

An exception is thrown

Regression?

No response

Known Workarounds

No response

Configuration

  • .NET 10 RC2 (10.0.100-rc.2.25502.107)

Other information

No response

Metadata

Metadata

Assignees

Labels

area-Tools-ILLink.NET linker development as well as trimming analyzers

Type

No type

Projects

Status

No status

Relationships

None yet

Development

No branches or pull requests

Issue actions