]> granicus.if.org Git - clang/commit
Make the construction of the code-completion string for a function
authorDouglas Gregor <dgregor@apple.com>
Fri, 18 Sep 2009 23:21:38 +0000 (23:21 +0000)
committerDouglas Gregor <dgregor@apple.com>
Fri, 18 Sep 2009 23:21:38 +0000 (23:21 +0000)
commit63f07c55d58951574afe9bbb9f7cb3f92eecdd9b
treee637e94a7e083348edb2ad9ca4414c0b548183a8
parent56ff871ae74b1edccff44efe296f3167d694ce48
Make the construction of the code-completion string for a function
template smarter, by taking into account which function template
parameters are deducible from the call arguments. For example,

  template<typename RandomAccessIterator>
  void sort(RandomAccessIterator first, RandomAccessIterator last);

will have a code-completion string like

  sort({RandomAccessIterator first}, {RandomAccessIterator last})

since the template argument for its template parameter is
deducible. On the other hand,

  template<class X, class Y>
  X* dyn_cast(Y *Val);

will have a code-completion string like

  dyn_cast<{class X}>({Y *Val})

since the template type parameter X is not deducible from the function
call.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82306 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/CodeCompleteConsumer.cpp
lib/Sema/Sema.h
lib/Sema/SemaTemplateDeduction.cpp
test/CodeCompletion/function-templates.cpp [new file with mode: 0644]