This matches the behavior of MemberExpr and makes diagnostics such as
"reference to non-static member function must be called" more legible in
the case that the base & member are split over multiple lines (prior to
this change the diagnostic would point to the base, not the member -
making it very unclear in chained multi-line builder-style calls)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183149
91177308-0d34-0410-b5e6-
96231b3b80d8
// expression refers to.
SourceLocation getMemberLoc() const { return getNameLoc(); }
+ // \brief Return the preferred location (the member name) for the arrow when
+ // diagnosing a problem with this expression.
+ SourceLocation getExprLoc() const LLVM_READONLY { return getMemberLoc(); }
+
SourceLocation getLocStart() const LLVM_READONLY {
if (!isImplicitAccess())
return Base->getLocStart();
};
void f(X x, Y y) {
- y << x.i; // expected-error{{reference to non-static member function must be called}}
+ y << x
+ .i; // expected-error{{reference to non-static member function must be called}}
}
}