owenca wrote:

> > The following are missing:
> > 
> > * Run `dump_format_style.py`.
> > * Add a `ConfigParseTest` for the new option.
> > 
> > How does the new option interact with `CompactNamespaces`? For example:
> > 
> > * `AllowShortNamespacesOnASingleLine: true` and `CompactNamespaces: false`
> > 
> > ```
> > namespace a {
> > namespace b { class c; }
> > } // namespace a
> > ```
> > 
> > * Both `true`
> >   `namespace a { namespace b { class c; } }`
> 
> Aah, I hadn't considered the interaction of this 
> AllowShortNamespacesOnASingleLine and CompactNamespaces, as 
> AllowShortNamespacesOnASingleLine effectively forces CompactNamespaces 
> behavior when the block can all fit on a single line. However, it does appear 
> that they were in conflict where the CompactNamespaces code was running first 
> and then short circuiting out of the AllowShortNamespacesOnASingleLine logic.
> 
> Moved the logic around a bit, as AllowShortNamespacesOnASingleLine is mostly 
> a superset of the CompactNamespaces logic. There are still some ambiguous 
> situations around nested namespaces with a single statement inside that could 
> be merged with both these two rules. I am just letting those get merged with 
> CompactNamespaces first if the full expression can't be pulled onto a single 
> line.

IMO `AllowShortNamespacesOnASingleLine` shouldn't imply `CompactNamespaces` so 
that we can get any of the formats below:

- `AllowShortNamespacesOnASingleLine: false`, `CompactNamespaces: false`
```
namespace a {
namespace b {
class c;
}
}
```

- `AllowShortNamespacesOnASingleLine: false`, `CompactNamespaces: true`
```
namespace a { namespace b {
class c;
}}
```

- `AllowShortNamespacesOnASingleLine: true`, `CompactNamespaces: false`
```
namespace a {
namespace b { class c; }
}
```

- `AllowShortNamespacesOnASingleLine: true`, `CompactNamespaces: true`
```
namespace a { namespace b { class c; } }
```

https://github.com/llvm/llvm-project/pull/105597
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to