dotnet / roslyn

The Roslyn .NET compiler provides C# and Visual Basic languages with rich code analysis APIs.
https://docs.microsoft.com/dotnet/csharp/roslyn-sdk/
MIT License
19.05k stars 4.03k forks source link

[Umbrella] Make `dynamic` understand new language features. #24815

Open VSadov opened 6 years ago

VSadov commented 6 years ago

This is an umbrella bug for all the issues related to dynamic is not being on parity with static compiler one way or another.

The reality is that while static version of the language is implemented here in https://github.com/dotnet/roslyn , the run-time behavior of the dynamic requires more.

The behavior of dynamic is implemented mostly in the dynamic binder which is a run-time component. Any work to support new language features would need to be done in that component, possibly in coordination with the static compiler - to ensure that it passes enough information to be used at run-time.

The problem here is

As a result - It is hard to tell at the moment when we can implement major changes/fixes to the dynamic binder.

See also https://github.com/dotnet/csharplang/issues/158

The following expression forms do not "work" with dynamic

tmat commented 6 years ago

Can we move the binder to a separate package, so that each app can carry their own? We might need to rename the DLL to avoid loading the one in .NET Framework.