krasimir marked 2 inline comments as done.
krasimir added inline comments.

================
Comment at: lib/Format/UnwrappedLineParser.cpp:489
 
-  nextToken(); // Munch the closing brace.
+  nextToken(InitialLevel); // Munch the closing brace.
 
----------------
djasper wrote:
> krasimir wrote:
> > djasper wrote:
> > > What happens if you instead change the Line->Level = InitialLevel; 
> > > statement from below to before this line? That seems like the more 
> > > intuitively correct fix.
> > This doesn't work since comments before the right brace haven't been 
> > emitted yet and would get the wrong level.
> So that means this seems to be the interesting case:
> 
>   void f() {
>     DoSomething();
>     // This was a fun function.
>   }
>   // Cool macro:
>   #define A a
> 
> Now, both comments are basically read when we are reading the "}", but they 
> should have different indentation levels. I have another suggestion, see 
> below.
Here is another breaking test in case we change `Line->Level = InitialLevel` to 
above this line:
```
switch (x) {
default: {
  // Do nothing.
}
}
```
gets reformatted as:
```
switch (x) {
default: {
// Do nothing.
}
}
```


================
Comment at: lib/Format/UnwrappedLineParser.cpp:2378
       ScopedLineState BlockState(*this, SwitchToPreprocessorLines);
+      if (InitialLevel)
+        Line->Level = *InitialLevel;
----------------
djasper wrote:
> What happens if we always set the Level to 0 here?
If we always set the Level to 0 here, then
```
void  f() {
  int i;
  /* comment */

#define A
}
```
gets indented as
```
void  f() {
  int i;
/* comment */

#define A
}
```


https://reviews.llvm.org/D35485



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to