// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++2b -ast-dump %s | FileCheck -strict-whitespace %s namespace GH116928 { struct S { int f(this S&); }; void main() { S s; int x = s.f(); // CHECK: CallExpr 0x{{[^ ]*}} 'int // CHECK-NEXT: |-ImplicitCastExpr 0x{{[^ ]*}} 'int (*)(S &)' // CHECK-NEXT: | `-DeclRefExpr 0x{{[^ ]*}} 'int (S &)' lvalue CXXMethod 0x{{[^ ]*}} 'f' 'int (S &)' } } namespace GH1269720 { template struct S { void f(this S&); void g(S s) { s.f(); } // CHECK: CallExpr 0x{{[^ ]*}} '' // CHECK-NEXT: `-MemberExpr 0x{{[^ ]*}} '' .f // CHECK-NEXT: `-DeclRefExpr 0x{{[^ ]*}} 'S' lvalue ParmVar 0x{{[^ ]*}} 's' 'S' }; } namespace GH130272 { struct A {}; struct B { operator A(this B); }; A a = A(B{}); // CHECK: CallExpr 0x{{[^ ]*}} 'A':'GH130272::A' }