diff options
author | Kaelyn Uhrain <rikka@google.com> | 2013-09-26 19:10:29 +0000 |
---|---|---|
committer | Kaelyn Uhrain <rikka@google.com> | 2013-09-26 19:10:29 +0000 |
commit | 3d9559b91c00757b296354cc6ca93e899266c7d2 (patch) | |
tree | 5a6868ce41f3fe5e7e51139528724beac04102c7 /lib/Sema/SemaAccess.cpp | |
parent | 65ea687b8abbfc892e8d91bba477999b0379b07b (diff) |
Teach typo correction to look inside of classes like it does namespaces.
Unlike with namespaces, searching inside of classes requires also
checking the access to correction candidates (i.e. don't suggest a
correction to a private class member for a correction occurring outside
that class and its methods or friends).
Included is a small (one line) fix for a bug, that was uncovered while
cleaning up the unit tests, where the decls from a TypoCorrection candidate
were preserved in new TypoCorrection candidates that are derived (copied)
from the old TypoCorrection--notably when creating a new candidate by
changing the NestedNameSpecifier associated with the base idenitifer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191449 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaAccess.cpp')
-rw-r--r-- | lib/Sema/SemaAccess.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/Sema/SemaAccess.cpp b/lib/Sema/SemaAccess.cpp index 4ecbf0ba77..6dbfad4e18 100644 --- a/lib/Sema/SemaAccess.cpp +++ b/lib/Sema/SemaAccess.cpp @@ -1390,6 +1390,8 @@ static AccessResult IsAccessible(Sema &S, CXXBasePath *Path = FindBestPath(S, EC, Entity, FinalAccess, Paths); if (!Path) return AR_dependent; + if (Path->Access == AS_none) // This can happen during typo correction. + return AR_inaccessible; assert(Path->Access <= UnprivilegedAccess && "access along best path worse than direct?"); |