<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>