dotnet/roslyn
#if has same scope as other directive in C# scripting
Open
#57,467 opened on Oct 29, 2021
Area-CompilersArea-InteractiveBughelp wanted
Repository metrics
- Stars
- (20,414 stars)
- PR merge metrics
- (Avg merge 6d 17h) (256 merged PRs in 30d)
Description
ITNOA
Version Used: Latest version
Steps to Reproduce:
As you can see https://github.com/cake-build/cake/issues/1766#issuecomment-333958357, If you write below code
#if (FOO)
#r ".\Newtonsoft.Json.dll"
#endif
Console.WriteLine(
Newtonsoft.Json.JsonConvert.SerializeObject(
new {
Hello = "World"
}
)
);
Expected Behavior:
Load Newtonsoft.Json.dll if FOO is defined, otherwise Newtonsoft.Json.dll must not be load
Actual Behavior:
it works regardless #if define FOO or not, so would seem as #r is processed at same scope as #if/#define