The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
I've never seen a parser's output end up so confusing. The Roslyn API had an entire team behind it. Well my team consists of me, myself and I. Despite that, Slang (which parses C# similar to roslyn), while somewhat more limited than Roslyn in functionality, produces a much easier to use result than Roslyn.
What gives? I don't have a team to hash out the surface area of the API. They do. And from where I sit, they did a poor job of it. It's way too complicated for what it is.
I'm totally serious though - related when I went manic for a week it was a hell of an experience. Lots of what I call "productive delusions". Ideas I came to in a manic state where I was delusional but very creative, and despite being a product of delusional thinking patterns I learned a lot from them - stuff I still carry with me.
Both using braces and indenting is, in principle reudundant, I can't protest against that.
One of the most common problems (although in the "minor" class - they are almost always caught by the compiler) is getting the braces and indentations right - especially in C-like languages where the closing brace is "anonymous", with no indication of what it closes (no ENDFOR, OD, ENDWHILE or anything of that sort.
So I see the redundancy as a great aid to getting things right: There is never an opening brace without an indent, and never an indent without an opening brace. Never an undent without a closing brace, never a closing brace without an undent.
When an indent may or may not come with another level of bracing, and the next statement following that for-for-if were (incorrectly) indented or undented, and the function goes on for thirty lines with this mis-indentation, it could be difficult to spot the location of the missing or extra brace. The compiler will hopefully tell you that something is wrong, but it might require some work to decide what is wrong: Maybe the next statement really belongs within the inner for-loop, so the problem was a missing brace, not an incorrect indentation.
So, I go for redundancy: Neither indentation nor braces, or both indentation and braces. For the last if-statement: If you don't want the braces, then rather put it all on one line (as long as it doesn't exceed 70 chars). You know that after an if-condition, the rest of the line is either a single, short expression which is the entire if-clause, or a brace that opens an indented block. (The only thing that may follow an opening brace is an end-of-line comment.)
Obviously, the compiler doesn't care. This is only for my own sake, to make it easier for myself to spot where there is an error in the nesting levels.
Though if I'm working in a shop, I adopt whatever standards they use, if they're available. If I'm in charge of setting standards, I'd agree with yours. In my own code, I just code as I feel. I do it for enjoyment, and I like the freedom of it.
Roslyn dev #1: "We should totally output single line if statements."
Roslyn dev #2: "We should definitely NOT do that..."
Manager: "Alright guys, break it up! I'm going to make a decision here and say we start with a curly brace, but don't end it so everyone's happy!"
You know this may not even be so far from the truth
Taking inspirations from our friend Dandy's crazy idea[^] I rolled my notebook exhausts with tapes.
Then I showered PASTAS[^]... through 6 browser windows.
Laptop got red hot. All the final bunch of anterrorists ran out, got crushed by me. And some of them died inside. Occasionally falling down the exhaust grills as dead corpse.
Poor ants. They most likely were not trying to build a nest in your notebook, like ant 1.0 would have done. In my former home a young ant 1.0 queen would try to establish a new nest inside a window frame around this time every year.
I have lived with several Zen masters - all of them were cats.
His last invention was an evil Lasagna. It didn't kill anyone, and it actually tasted pretty good.