summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/SemaCodeComplete.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Improve code completion by introducing patterns for the various C andDouglas Gregor2010-01-101-20/+529
| | | | | | | | | | | | | | | | | | | | | | C++ grammatical constructs that show up in top-level (namespace-level) declarations, member declarations, template declarations, statements, expressions, conditions, etc. For example, we now provide a pattern for static_cast<type>(expr) when we can have an expression, or using namespace identifier; when we can have a using directive. Also, improves the results of code completion at the beginning of a top-level declaration. Previously, we would see value names (function names, global variables, etc.); now we see types, namespace names, etc., but no values. llvm-svn: 93134
* remove extraneous #includeChris Lattner2009-12-301-1/+0
| | | | llvm-svn: 92310
* Typo correction for type names when they appear in declarations, e.g., givenDouglas Gregor2009-12-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | tring str2; we produce the following diagnostic + fix-it: typo.cpp:15:1: error: unknown type name 'tring'; did you mean 'string'? tring str2; ^~~~~ string To make this really useful, we'll need to introduce typo correction in many more places (wherever we do name lookup), and implement declaration-vs-expression heuristics that cope with typos better. However, for now this will handle the simple cases where we already get good "unknown type name" diagnostics. The LookupVisibleDecls functions are intended to be used by code completion as well as typo correction; that refactoring will happen later. llvm-svn: 92308
* Remove some dead variables clang-analyzer found.Benjamin Kramer2009-12-251-1/+0
| | | | llvm-svn: 92162
* Objective-C methods can be variadic, too. Who knew.Douglas Gregor2009-12-231-0/+7
| | | | llvm-svn: 91951
* Extend code-completion results with the type of each resultDouglas Gregor2009-12-181-0/+36
| | | | llvm-svn: 91702
* Shift things around so that it's easier to recover from a missingJohn McCall2009-12-161-22/+13
| | | | | | | | | function in a C++ call using an arbitrary call-expression type. Actually exploit this to fix the recovery implemented earlier. The diagnostic is still iffy, though. llvm-svn: 91538
* update to match LLVM API change:Chris Lattner2009-12-151-7/+0
| | | | | | | | | Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. llvm-svn: 91422
* Un-namespace-qualify llvm_unreachable. It's a macro, so the qualification gaveJeffrey Yasskin2009-12-121-1/+1
| | | | | | no extra safety anyway. llvm-svn: 91207
* When code completion of an overload set fails, produce results for ordinary ↵Douglas Gregor2009-12-111-5/+16
| | | | | | name lookup instead. llvm-svn: 91141
* Add a function's cv-qualifiers to the code-completion results as anDouglas Gregor2009-12-111-4/+24
| | | | | | informative chunk. llvm-svn: 91139
* Teach code completion to instantiate templates when it needs toDouglas Gregor2009-12-111-1/+6
| | | | llvm-svn: 91138
* Member function templates can occur after . or ->Douglas Gregor2009-12-111-1/+2
| | | | llvm-svn: 91137
* Tweak code-completion results by suppressing class templateDouglas Gregor2009-12-111-8/+15
| | | | | | | | | specializations and class template partial specializations (they're never named directly). Also, member access expressions only refer to value declarations (fields, functions, enumerators, etc.) and Objective-C property declarations; filter out everything else. llvm-svn: 91133
* Class template (partial) specializations should not show up in code ↵Douglas Gregor2009-12-111-0/+5
| | | | | | completion results llvm-svn: 91125
* When in an Objective-C instance method, super is a valid code-completion resultDouglas Gregor2009-12-071-0/+14
| | | | llvm-svn: 90758
* Code completion for Objective-C @ keywords that are statements or expressionsDouglas Gregor2009-12-071-1/+90
| | | | llvm-svn: 90757
* Code completion for Objective-C @ directivesDouglas Gregor2009-12-071-0/+88
| | | | llvm-svn: 90756
* PointerUnion == PointerUnion does not do what I thought it did. Also, fix a ↵Douglas Gregor2009-12-061-4/+4
| | | | | | thinko in a PointerUnion::get call. llvm-svn: 90719
* Switch the std::multimap shadow map used in code completion to anDouglas Gregor2009-12-061-16/+179
| | | | | | | llvm::DenseMap, for a 20% performance improvement in the Cocoa-big-list performance benchmark. llvm-svn: 90715
* Avoid trashing two temporary strings.Benjamin Kramer2009-12-051-2/+2
| | | | llvm-svn: 90663
* strcasecmp is unportable.Benjamin Kramer2009-12-051-1/+1
| | | | llvm-svn: 90662
* Improve the performance of code completion by 2.2x when completing for ↵Douglas Gregor2009-12-051-6/+46
| | | | | | ordinary names with Cocoa.h included, by drastically improving the performance of our results sorting. llvm-svn: 90661
* Switch the clang-to-CIndex interface for code-completion to a binary format, ↵Douglas Gregor2009-12-011-18/+19
| | | | | | for a massive speedup llvm-svn: 90209
* Remove all of Sema's explicit uses of OverloadedFunctionDecl except forJohn McCall2009-11-301-11/+0
| | | | | | those associated with TemplateNames. llvm-svn: 90162
* Remove useless c_str() calls in SemaCodeComplete.Benjamin Kramer2009-11-291-17/+17
| | | | llvm-svn: 90088
* Rip out TemplateIdRefExpr and make UnresolvedLookupExpr and John McCall2009-11-241-2/+4
| | | | | | | | | | | | DependentScopeDeclRefExpr support storing templateids. Unite the common code paths between ActOnDeclarationNameExpr and ActOnTemplateIdExpr. This gets us to a point where we don't need to store function templates in the AST using TemplateNames, which is critical to ripping out OverloadedFunction. Also resolves a few FIXMEs. llvm-svn: 89785
* Encapsulate "an array of TemplateArgumentLocs and two angle bracket ↵John McCall2009-11-231-6/+4
| | | | | | | | | | locations" into a new class. Use it pervasively throughout Sema. My fingers hurt. llvm-svn: 89638
* Consider a FunctionTemplate to be an overload all on its lonesome. TrackJohn McCall2009-11-221-2/+4
| | | | | | this information through lookup rather than rederiving it. llvm-svn: 89570
* "Incremental" progress on using expressions, by which I mean totally rippingJohn McCall2009-11-211-4/+3
| | | | | | | | | | | | | | | | | | | | | | into pretty much everything about overload resolution in order to wean BuildDeclarationNameExpr off LookupResult::getAsSingleDecl(). Replace UnresolvedFunctionNameExpr with UnresolvedLookupExpr, which generalizes the idea of a non-member lookup that we haven't totally resolved yet, whether by overloading, argument-dependent lookup, or (eventually) the presence of a function template in the lookup results. Incidentally fixes a problem with argument-dependent lookup where we were still performing ADL even when the lookup results contained something from a block scope. Incidentally improves a diagnostic when using an ObjC ivar from a class method. This just fell out from rewriting BuildDeclarationNameExpr's interaction with lookup, and I'm too apathetic to break it out. The only remaining uses of OverloadedFunctionDecl that I know of are in TemplateName and MemberExpr. llvm-svn: 89544
* Objective-C code completion within properties after "setter = " orDouglas Gregor2009-11-191-31/+139
| | | | | | "getter = ", to provide suitable method names. llvm-svn: 89334
* Improve code completion for Objective-C message sends, so that weDouglas Gregor2009-11-191-22/+76
| | | | | | | | | | | provide completion results before each keyword argument, e.g., [foo Method:arg WithArg1:arg1 WithArg2:arg2] We now complete before "WithArg1" and before "WithArg2", in addition to completing before "Method". llvm-svn: 89290
* Improve the accuracy of code completion for the attributes of an @property ↵Douglas Gregor2009-11-191-8/+38
| | | | | | declaration, so that we don't produce completions for attributes that would conflict with already-specified attributes llvm-svn: 89281
* Improve code-completion results for the flags in an @propertyDouglas Gregor2009-11-191-7/+33
| | | | | | | | | declaration by providing patterns for "getter = <method>" and "setter = <method>". As part of this, invented a new "pattern" result kind that is merely a semantic string. The "pattern" result kind should help with other kinds of code templates. llvm-svn: 89277
* Rename CodeCompleteObjCProperty to something more specific. No functionality ↵Douglas Gregor2009-11-181-1/+1
| | | | | | change. llvm-svn: 89267
* Code completion after @dynamicDouglas Gregor2009-11-181-1/+1
| | | | llvm-svn: 89265
* Code completion for Objective-C @synthesized.Douglas Gregor2009-11-181-10/+85
| | | | llvm-svn: 89259
* Implement code completion for Objective-C category names in @interfaceDouglas Gregor2009-11-181-1/+67
| | | | | | and @implementation declarations. llvm-svn: 89223
* Code completion for Objective-C class names after @interface,Douglas Gregor2009-11-181-0/+70
| | | | | | | @implementation, and in the declaration of the superclass of an @interface. llvm-svn: 89207
* Code completion after @property, providing the names of forward-declared ↵Douglas Gregor2009-11-181-3/+19
| | | | | | properties llvm-svn: 89196
* Code completion for Objective-C properly listsDouglas Gregor2009-11-181-0/+46
| | | | llvm-svn: 89194
* Code completion for member accesses that involve Objective-C properties and ↵Douglas Gregor2009-11-181-27/+107
| | | | | | instance variables llvm-svn: 89182
* Finish code completion for Objective-C message sendsDouglas Gregor2009-11-181-14/+32
| | | | llvm-svn: 89168
* Rename Objective-C message send completion functions to indicate that we're ↵Douglas Gregor2009-11-171-10/+8
| | | | | | referring to message sends llvm-svn: 89164
* Refactor code-completion support for message sends, collecting theDouglas Gregor2009-11-171-84/+97
| | | | | | | | | code to find and add Objective-C methods (starting at an ObjCContainerDecl) into a single, static function. Also, make sure that we search into the implementations of classes and categories to find even more methods. llvm-svn: 89163
* Implement code completion for Objective-C message sends to "super".Douglas Gregor2009-11-171-2/+53
| | | | llvm-svn: 89112
* Augment code-completion results to provide argument names andDouglas Gregor2009-11-171-0/+33
| | | | | | placeholder arguments for Objective-C message sends. llvm-svn: 89103
* Instead of hanging a using declaration's target decls directly off the using John McCall2009-11-171-1/+1
| | | | | | | decl, create shadow declarations and put them in scope like normal. Work in progress. llvm-svn: 89048
* Rework Sema code completion interface.Daniel Dunbar2009-11-131-61/+55
| | | | | | | | | | | | | - Provide Sema in callbacks, instead of requiring it in constructor. This eliminates the need for a factory function. Clients now just pass the object to consume the results in directly. - CodeCompleteConsumer is cheap to construct, so building it whenever we are doing code completion is reasonable. Doug, please review. llvm-svn: 87099
* Make sure that we look into nested, transparent declaration contextsDouglas Gregor2009-11-091-2/+9
| | | | | | | when looking for a name within a given DeclContext. Now enumerators will show up in code-completion results. llvm-svn: 86591
OpenPOWER on IntegriCloud