diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2011-06-28 00:00:52 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2011-06-28 00:00:52 +0000 |
commit | 6326e05fe8c2ff92b65b4759a91e45fad5ef886f (patch) | |
tree | 838ca90e2c3200b071c32ea596b1e92620fa2de8 /lib/Sema/SemaExprMember.cpp | |
parent | c03fa498b9598fe88ef8fb97315f27d09e56aa50 (diff) |
Provide fix-it for '.' <-> '->' for Objective-C ivar/property access.
// rdar://7811841
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133970 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaExprMember.cpp')
-rw-r--r-- | lib/Sema/SemaExprMember.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/Sema/SemaExprMember.cpp b/lib/Sema/SemaExprMember.cpp index 082691ffed..9509768205 100644 --- a/lib/Sema/SemaExprMember.cpp +++ b/lib/Sema/SemaExprMember.cpp @@ -1080,6 +1080,13 @@ Sema::LookupMemberExpr(LookupResult &R, ExprResult &BaseExpr, Diag(IV->getLocation(), diag::note_previous_decl) << IV->getDeclName(); } else { + if (IsArrow && IDecl->FindPropertyDeclaration(Member)) { + Diag(MemberLoc, + diag::err_property_found_suggest) + << Member << BaseExpr.get()->getType() + << FixItHint::CreateReplacement(OpLoc, "."); + return ExprError(); + } Res.clear(); Res.setLookupName(Member); @@ -1284,7 +1291,8 @@ Sema::LookupMemberExpr(LookupResult &R, ExprResult &BaseExpr, } // Normal property access. - return HandleExprPropertyRefExpr(OPT, BaseExpr.get(), MemberName, MemberLoc, + return HandleExprPropertyRefExpr(OPT, BaseExpr.get(), OpLoc, + MemberName, MemberLoc, SourceLocation(), QualType(), false); } |