MyDeveloperDay added inline comments.

================
Comment at: clang/lib/Tooling/Inclusions/HeaderIncludes.cpp:407
+    const llvm::SmallVectorImpl<llvm::StringRef> &Matches) {
+  if (Matches.size() >= 3) {
+    return Matches[2];
----------------
kwk wrote:
> MyDeveloperDay wrote:
> > ‘>= 2’
> @MyDeveloperDay correct me if I'm wrong but if an array has size `3` it has 
> indexes `0`, `1` and `2`. And an array of size `2` only has `0` and `1`.  So 
> the case `=2`, which is implied by your suggested`>=2`, is actually an out of 
> bounds access when going `Matches[2]`.  Because that is effectively accessing 
> the third element. The only valid change would be to check for 
> `Matches.size() > 2` IMHO and that is the same as `Matches.size() >= 3`.
> 
> I must admit that I had to look at the regex a few times only to realize that 
> it has two non-optional matching groups `(...)`. The third matching group at 
> index `0` is the whole line. So in theory `>=3` isn't possible with the 
> current regex. I wanted to give my best to have this logic "survive" a change 
> to the regex in which for example something is added after the matching group 
> of the include name; let's say a comment or something.
> 
> I hope I haven't made myself a complete fool.  
No foolery other than my own. I meant to say '> 2',  actually the first time I 
wrote the comment it disappear because it didn't escape the '>'

So one though I had for the config was something like this (ignore regex itself 
I just put anything in it to show the principle)

```
---
Language Cpp
IncludeRegex:  ^[\t\ ]*[@#][\t\ 
]*(import|include)([^"/]*("[^"]+")|[^</]*(<[^>]+>)|[\t/\ ]*([^;]+;)
IncludeRegexGroup: 1
---
Language: ObjectiveC
IncludeRegex:  ^[\t\ ]*[@#][\t\ 
]*(import|include)([^"/]*("[^"]+")|[^</]*(<[^>]+>)|[\t/\ ]*([^;]+;)
IncludeRegexGroup: 2
---
Language: CSharp
IncludeRegex:  using  ([A-z])*
IncludeRegexGroup: 0
---
Language: Carbon
IncludeRegex:  package ([A-z])* api
IncludeRegexGroup: 0
---

```

Wouldn't this allow different languages to have their own Include/Import regex? 
Just thinking out loud

It could be more powerful than having 1 regex to rule them all.






Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D134733/new/

https://reviews.llvm.org/D134733

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

Reply via email to