royqh1979 / RedPanda-CPP

A light-weight C/C++ IDE based on Qt
GNU General Public License v3.0
938 stars 102 forks source link

当 lambda 表达式省略形参列表时,编辑器不能正确解析函数体中定义的变量 #390

Closed West-Pavilion closed 4 months ago

West-Pavilion commented 4 months ago

当 lambda 表达式省略形参列表时,编辑器不能正确解析函数体中定义的变量

请考虑如下的 C++ 代码:

#include <iostream>

/* 当 lambda 表达式省略形参列表时,编辑器不能正确解析函数体中定义的变量 */

int main(){
    []{
        std::string str;
//      这里编辑器不会给出变量 str 的补全提示
//      st
    };
    [](){
        std::string str;
//      这里编辑器能正确给出变量 str 的补全提示
//      str
    };
}

如下图,当省略 lambda 表达式的形参列表时,编辑器不显示局部变量 str 的补全提示 屏幕截图(376)

如下图,当 lambda 表达式存在形参列表时,编辑器能够正确显示局部变量 str 的补全提示 屏幕截图(377)

下面是对应的测试代码:

当 lambda 表达式省略形参列表时,编辑器不能正确解析函数体中定义的变量.zip