ckandeler wrote:

> 1. We highlight the `operator` declaration, yet the same issue remains with 
> the usages.
> 
> ```c++
> struct S {
>   void [[operator]] [[+]](int); // operator and + in the range
> };
> void f(S a, int b) {
>   a.[[operator]] +(b); // only operator in the range
> }
> ```

Done.

> 2. find-all-references/definition still return the range of `operator` 
> keyword only.

I deliberately excluded "find references", because I suspect the average client 
will not be prepared to handle multi-line results, which can now happen with 
non-contrived code.

> 3. Literal operators are not covered
> 
> ```c++
> long double [[operator]]""_test(long double); // only operator keyword in the 
> range
> // (however hover on _test works)
> auto Test = [[1.0_test]];
> ```

Done.

> 4. Conversion operator are not covered
> 
> ```c++
> struct S {
>   [[operator]] int(); // only operator keyword in the range
> };
> S A;
> int B = [[A]];
> ```

Done.


https://github.com/llvm/llvm-project/pull/220518
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to