forked from OSchip/llvm-project
UnresolvedMemberExpr should have an expr location of the member (not the base)
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) llvm-svn: 183149
This commit is contained in:
parent
93f33235e5
commit
778627a010
|
@ -3387,6 +3387,10 @@ public:
|
|||
// 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();
|
||||
|
|
|
@ -396,7 +396,8 @@ namespace rdar9136502 {
|
|||
};
|
||||
|
||||
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}}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue