[llvm-bugs] [Bug 33905] New: Completion provides no OVERLOAD/CXCursor_OverloadCandidate items for e.g. std::make_unique

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Jul 24 02:54:02 PDT 2017


https://bugs.llvm.org/show_bug.cgi?id=33905

            Bug ID: 33905
           Summary: Completion provides no
                    OVERLOAD/CXCursor_OverloadCandidate items for e.g.
                    std::make_unique
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: nikolai.kosjar at qt.io
                CC: dgregor at apple.com, llvm-bugs at lists.llvm.org

$ 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>
>::size_type __pos)
OVERLOAD: basic_string(<#const std::basic_string<char> &__str#>,
std::basic_string<char, std::char_traits<char>, std::allocator<char>
>::size_type __pos, std::basic_string<char, std::char_traits<char>,
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>
>::__single_object#]make_unique()

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170724/7ff6ad30/attachment.html>


More information about the llvm-bugs mailing list