================
@@ -1724,6 +1724,33 @@ TEST(InlayHints, RestrictRange) {
               ElementsAre(labelIs(": int"), labelIs(": char")));
 }
 
+TEST(ParameterHints, PseudoObjectExpr) {
+  Annotations Code(R"cpp(
+    struct S {
+      __declspec(property(get=GetX, put=PutX)) int x[];
+      int GetX(int y, int z) { return 42 + y; }
+      void PutX(int y) { x = $one[[y]]; } // FIXME: Undesired `x = y: y` for 
this ill-formed expression.
----------------
zyn0217 wrote:

It's nice to wipe out these extra hints if it won't take too many steps. The 
AST shows,
```
`-PseudoObjectExpr 'void'
  |- (Syntactic) BinaryOperator
  `- (Semantic) CXXMemberCallExpr 'void'
```
I wonder if it is possible to enumerate all the bad cases we don't want (e.g. 
Don't walk down the expression if we encounter a `BinaryOperator` in 
`PseudoObjectExpr`.)

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

Reply via email to