dotnet/roslyn

With Operator not properly supported in C# Script

Open

#53,670 opened on May 25, 2021

View on GitHub
 (7 comments) (0 reactions) (0 assignees)C# (4,257 forks)batch import
Area-InteractiveConcept-Continuous Improvementhelp wanted

Repository metrics

Stars
 (20,414 stars)
PR merge metrics
 (Avg merge 6d 17h) (256 merged PRs in 30d)

Description

Version Used: 3.9.0

Steps to Reproduce: Execute the following script: var script = @" public record MyRecord{public int I{get;set;}} var instance = new MyRecord(); instance with {I = 2}"; await CSharpScript.EvaluateAsync(script)

Expected Behavior: Script should compile without problems.

Actual Behavior: Compilation error: (4,16): error CS1014: A get or set accessor expected

With parenthesis it works:

var script = @" public record MyRecord{public int I{get;set;}} var instance = new MyRecord(); (instance with {I = 2})"; await CSharpScript.EvaluateAsync(script)

The situation is even worse when trying to use records as fluent API: await (builder with {OptionA = 1}).ExecuteAsync(), cannot be made to work at all, no matter with which parenthesis used.

Contributor guide