Closed j4m3z0r closed 5 years ago
You caught me. I've been meaning to add C# 7 syntax for a long time now... but was waiting for someone to indicate that they wanted it.
This particular feature is implemented it in a branch but I got stumped on how to support the other major C# 7 feature, tuple return types... (distinguishing between method declarations and ordinary statements was already fairly complex and tuples make it much harder in the presence of an additional feature of EC#, word attributes. It seems like I might need to write a bottom-up parser for prediction (LALR(1)), which I've never done by hand. Alternately I could try a recovery technique where we first try to parse everything as an expression, then restart parsing as a method/var/prop decl if an error occurs. Edit: wait, no, X*Y
must be treated as a var decl, can't try parsing as expression first.)
So I tried merging recent changes into the csharp7 branch but something went wrong and the test suite fails. I'll investigate that today.
I have pushed support for x is T y
to master (v2.6.3).
This code:
Will produce the following:
Note that the 's' has been dropped from the end of the
a is string
if condition. AFAIK this shouldn't happen -- the original code compiled and worked just fine.