<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Completion provides no OVERLOAD/CXCursor_OverloadCandidate items for e.g. std::make_unique"
   href="https://bugs.llvm.org/show_bug.cgi?id=33905">33905</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Completion provides no OVERLOAD/CXCursor_OverloadCandidate items for e.g. std::make_unique
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>C++
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>nikolai.kosjar@qt.io
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>dgregor@apple.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>$ cat -n /tmp/untitled/main.cpp
     1  #include <memory>
     2  #include <string>
     3  
     4  int main() {
     5      std::string(); // Completer after '(' (5:17) - fine
     6      std::make_unique<std::string>(); // Complete after '(' (6:35) - ops
     7  };

There are OVERLOAD/CXCursor_OverloadCandidate items for std::string constructed
with "std::string()":

$ clang -fsyntax-only -std=c++1y -Xclang -code-completion-at -Xclang $FILE:5:17
$FILE
...
COMPLETION: wmemset : [#wchar_t *#]wmemset(<#wchar_t *__s#>, <#wchar_t __c#>,
<#size_t __n#>)
COMPLETION: wprintf : [#int#]wprintf(<#const wchar_t *__restrict __format,
...#>)
COMPLETION: wscanf : [#int#]wscanf(<#const wchar_t *__restrict __format, ...#>)
OVERLOAD: basic_string()
OVERLOAD: basic_string(<#const std::allocator<char> &__a#>)
OVERLOAD: basic_string(<#const std::basic_string<char> &__str#>)
OVERLOAD: basic_string(<#const std::basic_string<char> &__str#>,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
<span class="quote">>::size_type __pos)</span >
OVERLOAD: basic_string(<#const std::basic_string<char> &__str#>,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
<span class="quote">>::size_type __pos, std::basic_string<char, std::char_traits<char>,</span >
std::allocator<char> >::size_type __n, const std::allocator<char> &__a)
OVERLOAD: basic_string(<#const char *__s#>, std::basic_string<char,
std::char_traits<char>, std::allocator<char> >::size_type __n)
OVERLOAD: basic_string(<#const char *__s#>)
OVERLOAD: basic_string(<#std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::size_type __n#>, char __c)
OVERLOAD: basic_string(<#std::basic_string<char> &&__str#>)
OVERLOAD: basic_string(<#initializer_list<char> __l#>)
OVERLOAD: basic_string(<#const std::basic_string<char> &__str#>, const
std::allocator<char> &__a)
OVERLOAD: basic_string(<#std::basic_string<char> &&__str#>, const
std::allocator<char> &__a)
OVERLOAD: basic_string(<#_InputIterator __beg#>, _InputIterator __end)


...but none (for std::string) if constructed with std::make_unique:

$clang -fsyntax-only -std=c++1y -Xclang -code-completion-at -Xclang $FILE:6:35
$FILE 
...
COMPLETION: wmemset : [#wchar_t *#]wmemset(<#wchar_t *__s#>, <#wchar_t __c#>,
<#size_t __n#>)
COMPLETION: wprintf : [#int#]wprintf(<#const wchar_t *__restrict __format,
...#>)
COMPLETION: wscanf : [#int#]wscanf(<#const wchar_t *__restrict __format, ...#>)
OVERLOAD: [#typename _MakeUniq<basic_string<char>
<span class="quote">>::__single_object#]make_unique()</span ></pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>