Aaron Ballman
1e606f4d46
Switching some iterator-based for loops to use range-based for loops. No functional changes intended.
...
llvm-svn: 213098
2014-07-15 22:03:49 +00:00
Aaron Ballman
2a89e8526a
Added the pack_elements range accessor. Refactoring some for loops to use range-based for loops instead. No functional changes intended.
...
llvm-svn: 213095
2014-07-15 21:32:31 +00:00
Nikola Smiljanic
1c1256830d
Fix typos.
...
llvm-svn: 212589
2014-07-09 05:42:35 +00:00
Nick Lewycky
9ea8efaf92
Propagate isAddressOfMember into typo correction so that we don't correct &qualified-id into &unqualified-id. Also make sure to set the naming class when we find the qualified-id in a different class than the nested name specifier specified so far. Fixes PR19681!
...
llvm-svn: 211551
2014-06-23 22:57:51 +00:00
Kaelyn Takata
a95ebc6801
Fix the caller of checkCorrectionVisibility too.
...
That's what I get for hurredly splitting the small change out of a much
bigger change that had moved where checkCorrectionVisibility was being
called.
llvm-svn: 211134
2014-06-17 23:47:29 +00:00
Kaelyn Takata
61df4a787e
Remove an unused argument from checkCorrectionVisibility.
...
llvm-svn: 211133
2014-06-17 23:41:33 +00:00
Hans Wennborg
660101302e
Fix the VS2012 build.
...
It didn't handle the in-class member initializer and compound literal.
llvm-svn: 210707
2014-06-11 21:24:13 +00:00
Kaelyn Takata
cd7c3a9de4
Add some comments to TypoCorrectionConsumer.
...
Also move the constructor for NamespaceSpecifierSet out of line to
improve the class' readability. I meant to do these two things while
cleaning up the previous TypoCorrectionConsumer changes and have them
folded into those changes.
No functionality changed.
llvm-svn: 210686
2014-06-11 18:33:46 +00:00
Kaelyn Takata
7dcc0e6f57
Sink SpecifierInfo into the only class that uses it.
...
SpecifierInfo is not used outside of NamespaceSpecifierSet except
indirectly through NamespaceSpecifierSet's iterator, so clean up the
code a bit by moving SpecifierInfo into NamespaceSpecifierSet. Also drop
SpecifierInfo's trivial yet verbose constructor since brace
initiialization is sufficient in the only two places the constructor was
being explicitly called.
No functionality changed.
llvm-svn: 210672
2014-06-11 18:07:08 +00:00
Kaelyn Takata
a5bdbc840c
Make a couple of helper classes private to TypoCorrectionConsumer.
...
The SpecifierInfo and NamespaceSpecifierSet are now only used by
TypoCorrectionConsumer, so treat them as the implementation details of
TypoCorrectionConsumer that they are. Also make NamespaceSpecifierSet's
method names more style guide compliant.
No functionality changed.
llvm-svn: 210671
2014-06-11 18:07:05 +00:00
Kaelyn Takata
9e2931ec60
Clean up the TypoCorrectionConsumer's interface a bit.
...
No functionality changed.
llvm-svn: 210670
2014-06-11 18:07:03 +00:00
Kaelyn Takata
68fdd59b31
Move TypoCorrection filtering into the TypoCorrectionConsumer and make it incremental.
...
The only external/visible functional change that fell out of this
refactoring is that there was one less case where the typo caching
and/or counting didn't work properly. The result is that a test case
had to be moved from typo-correction.cpp to typo-correction-pt2.cpp
to avoid the hard-coded limit on per file/TU typo correction attempts.
llvm-svn: 210669
2014-06-11 18:07:01 +00:00
Kaelyn Takata
0fc7519314
Move a few classes to be before TypoCorrectionConsumer.
...
This is in preparation for moving TypoCorrection filtering
into the TypoCorrectionConsumer, to separate out some of the purely
mechanical churn. It also makes some of the method names in
NamespaceSpecifierSet be more style guide compliant.
No functionality changed.
llvm-svn: 210668
2014-06-11 18:06:56 +00:00
Kaelyn Takata
73429fd4a6
Remove a redundant conditional when caching typo failures.
...
No functionality change.
llvm-svn: 210583
2014-06-10 21:03:49 +00:00
Craig Topper
c3ec149bb2
[C++11] Use 'nullptr'. Sema edition.
...
llvm-svn: 209613
2014-05-26 06:22:03 +00:00
John Thompson
2309b15cb0
fmodules-search-all: Removed dead code and added some comments.
...
llvm-svn: 208259
2014-05-07 22:47:08 +00:00
Richard Smith
3d23c42029
If an instantiation of a template is required to be a complete type, check
...
whether the definition of the template is visible rather than checking whether
the instantiated definition happens to be in an imported module.
llvm-svn: 208150
2014-05-07 02:25:43 +00:00
Alp Toker
b6cc592ea3
Fix a bunch of mislayered clang/Lex includes from Sema
...
llvm-svn: 207896
2014-05-03 03:45:55 +00:00
John Thompson
2d94bbb0c0
Quick fix for layering that broke shared library build.
...
llvm-svn: 207011
2014-04-23 19:04:32 +00:00
John Thompson
2255f2ce90
Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules.
...
llvm-svn: 206977
2014-04-23 12:57:01 +00:00
Richard Smith
100b24abc5
Implement [over.match.oper]p3 properly, by filtering the non-candidates out
...
when building the candidate set, rather than trying to contort name lookup into
handling this.
llvm-svn: 206436
2014-04-17 01:52:14 +00:00
Richard Smith
688866ba3e
PR19452: Implement more of [over.match.oper]p3's restrictions on which non-member overloaded operators can be found when no operand is of class type. We used to fail to implement this rule if there was an operand of dependent type.
...
llvm-svn: 206435
2014-04-17 01:12:17 +00:00
Richard Smith
83e78f5c3c
Fix handling of redeclaration lookup for using declarations, where the prior
...
declaration is not visible. Previously we didn't find hidden friend names in
this redeclaration lookup, because we forgot to treat it as a redeclaration
lookup. Conversely, we did find some local extern names, but those don't
actually conflict with a namespace-scope using declaration, because the only
conflicts we can get are scope conflicts, not conflicts due to the entities
being members of the same namespace.
llvm-svn: 206011
2014-04-11 01:03:38 +00:00
Kaelyn Takata
fb271f0cab
Try harder about not suggesting methods as corrections when they
...
obviously won't work. Specifically, don't suggest methods (static or
not) from unrelated classes when the expression is a method call
through a specific object.
llvm-svn: 205653
2014-04-04 22:16:30 +00:00
Richard Smith
f97ad226dc
Fix self-referential comment.
...
llvm-svn: 205340
2014-04-01 18:33:50 +00:00
Kaelyn Uhrain
ec2629964e
Be a bit smarter about what nested name qualifiers to allow when
...
performing typo correction on very short (1 or 2 char) identifiers.
llvm-svn: 204525
2014-03-21 21:54:25 +00:00
Kaelyn Uhrain
bbfc05727b
[C++11] Simplify some loops in Sema::CorrectTypo as range-based for loops.
...
llvm-svn: 204524
2014-03-21 21:54:22 +00:00
Aaron Ballman
804a7fb7ba
[C++11] Replacing DeclContext iterators using_directives_begin() and using_directives_end() with iterator_range using_directives(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions. Also used as an opportunity to normalize the name from getUsingDirectives() to using_directives().
...
llvm-svn: 204061
2014-03-17 17:14:12 +00:00
Aaron Ballman
5df6aa465e
[C++11] Replacing Scope iterators using_directives_begin() and using_directives_end() with iterator_range using_directives(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions.
...
llvm-svn: 204053
2014-03-17 17:03:37 +00:00
Aaron Ballman
35c5495bbb
[C++11] Replacing Scope iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops, and removing the no-longer-needed iterator versions.
...
llvm-svn: 204052
2014-03-17 16:55:25 +00:00
Aaron Ballman
83731469a1
[C++11] Replacing ObjCObjectPointerType iterators qual_begin() and qual_end() with iterator_range quals(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204048
2014-03-17 16:14:00 +00:00
Aaron Ballman
40bd0aaf68
[C++11] Replacing FunctionProtoType iterators param_type_begin() and param_type_end() with iterator_range param_types(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 204045
2014-03-17 15:23:01 +00:00
Richard Smith
594461f02c
Call RequireCompleteType when performing ADL even if the type is already
...
complete. We hook into this check from a couple of other places (modules,
debug info) so it's not OK to elide the check if the type was already
complete.
llvm-svn: 203978
2014-03-14 22:07:27 +00:00
Aaron Ballman
e42430ea31
[C++11] Removing the types_begin() and types_end() APIs and replacing with a range-only types() API.
...
llvm-svn: 203971
2014-03-14 21:11:14 +00:00
Aaron Ballman
576114e676
[C++11] Replacing DeclContext iterators lookups_begin() and lookups_end() with iterator_range lookups(). Similar for noload_lookups(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203933
2014-03-14 15:28:49 +00:00
Aaron Ballman
19a417699f
[C++11] Replacing ObjCCategoryDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203922
2014-03-14 12:55:57 +00:00
Aaron Ballman
0f6e64d505
[C++11] Replacing ObjCProtocolDecl iterators protocol_begin() and protocol_end() with iterator_range protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203863
2014-03-13 22:58:06 +00:00
Aaron Ballman
3fe486a332
[C++11] Replacing ObjCInterfaceDecl iterators visible_categories_begin() and visible_categories_end() with iterator_range visible_categories(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203851
2014-03-13 21:23:55 +00:00
Aaron Ballman
a9f49e394c
[C++11] Replacing ObjCInterfaceDecl iterators all_referenced_protocol_begin() and all_referenced_protocol_end() with iterator_range all_referenced_protocols(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203848
2014-03-13 20:55:22 +00:00
Aaron Ballman
574705ed7f
[C++11] Replacing CXXRecordDecl iterators bases_begin() and bases_end() with iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
...
llvm-svn: 203803
2014-03-13 15:41:46 +00:00
Craig Topper
e14c0f8e73
[C++11] Add 'override' keyword to virtual methods that override their base class.
...
llvm-svn: 203640
2014-03-12 04:55:44 +00:00
Ahmed Charles
b89843299a
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
llvm-svn: 203279
2014-03-07 20:03:18 +00:00
Aaron Ballman
63ab760ebe
[C++11] Updating getUsingDirectives to use iterator_range instead of a std::pair.
...
llvm-svn: 203239
2014-03-07 13:44:44 +00:00
Aaron Ballman
86c9390673
[C++11] Replacing iterators redecls_begin() and redecls_end() with iterator_range redecls(). Updating all of the usages of the iterators with range-based for loops, which allows the begin/end forms to be removed entirely.
...
llvm-svn: 203179
2014-03-06 23:45:36 +00:00
Benjamin Kramer
867ea1d426
[C++11] Replace llvm::tie with std::tie.
...
llvm-svn: 202639
2014-03-02 13:01:17 +00:00
Benjamin Kramer
167e999be9
[C++11] Replace llvm::next and llvm::prior with std::next and std::prev.
...
llvm-svn: 202635
2014-03-02 12:20:24 +00:00
Kaelyn Uhrain
b4b1475322
Don't suggest non-static methods as corrections when they obviously
...
won't work (i.e. when not doing a member lookup and not in a method from
the same class or a descendant class).
llvm-svn: 202520
2014-02-28 18:12:42 +00:00
Kaelyn Uhrain
0e35355c04
PR18685: Ignore class template specializations as potential
...
nested-name-specifiers for typos unless the typo already has
a nested-name-specifier that is a template specialization.
llvm-svn: 201056
2014-02-09 21:47:04 +00:00
Kaelyn Uhrain
21a6617c34
Don't consider records with a NULL identifier as a name for typo correction.
...
Because in C++, "anonymous" doesn't mean "nameless" for records. In
other words, RecordDecl::isAnonymousStructOrUnion only returns true if
the record lacks a name *and* is not used as the type in an object's
declaration.
llvm-svn: 200868
2014-02-05 18:57:51 +00:00
Richard Smith
bdd146435f
Add implicit declarations of allocation functions when looking them up for
...
redeclaration, not just when looking them up for a use -- we need the implicit
declaration to appropriately check various properties of them (notably, whether
they're deleted).
llvm-svn: 200729
2014-02-04 01:14:30 +00:00