Skip to content

Temporarily re-add ITypeSymbol extension APIs#80279

Closed
jjonescz wants to merge 1 commit intodotnet:mainfrom
jjonescz:ExtensionApi
Closed

Temporarily re-add ITypeSymbol extension APIs#80279
jjonescz wants to merge 1 commit intodotnet:mainfrom
jjonescz:ExtensionApi

Conversation

@jjonescz
Copy link
Member

Source build is currently blocked (see dotnet/dotnet#2276 (comment)) because ILLink analyzer which lives in runtime is compiled against rc1 roslyn (which has the extension APIs on ITypeSymbol). Then winforms repo is compiled in source build, using the just-built ILLink analyzer but against the latest roslyn, hence failing with MissingMethodException (because the API on ITypeSymbol doesn't exist).

Temporarily re-adding the APIs is the simplest solution to unblock the flow I think.

@dotnet-policy-service dotnet-policy-service bot added VSCode Needs API Review Needs to be reviewed by the API review council labels Sep 15, 2025
@dotnet-policy-service
Copy link
Contributor

This PR modifies public API files. Please follow the instructions at https://github.com/dotnet/roslyn/blob/main/docs/contributing/API%20Review%20Process.md for ensuring all public APIs are reviewed before merging.

@jjonescz jjonescz marked this pull request as ready for review September 15, 2025 11:48
@jjonescz jjonescz requested review from a team as code owners September 15, 2025 11:48
@jjonescz jjonescz requested a review from jcouv September 15, 2025 11:48
Copy link
Member

@jcouv jcouv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM Thanks (commit 1)

@jcouv jcouv self-assigned this Sep 15, 2025
@jjonescz
Copy link
Member Author

jjonescz commented Sep 15, 2025

Thanks for reviews, I'm planning to close this and apply the changes directly to the VMR in dotnet/dotnet#2420 for expediency (and also to verify it really fixes the issue there).

/// </summary>
bool IsNativeIntegerType { get; }

[Obsolete($"This API will be removed in the future. Use {nameof(INamedTypeSymbol)}.{nameof(INamedTypeSymbol.IsExtension)} instead.")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will Obsolete cause problems in the Source Build?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It should not. The analyzer is built against an old version of roslyn which doesn't have the Obsolete attribute. The same analyzer then runs against a new version of roslyn so it needs the API to be available at runtime only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Compilers Needs API Review Needs to be reviewed by the API review council VSCode

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants