From 9288dfced8179ef7243af8edbd17300db4307aec Mon Sep 17 00:00:00 2001 From: Itamar Date: Sat, 27 Mar 2021 18:25:44 +0300 Subject: [PATCH] LanguageServers/Cpp: Don't include declarations bellow the current line --- .../HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp index 53a58577c9c..a5c232318fa 100644 --- a/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp +++ b/Userland/DevTools/HackStudio/LanguageServers/Cpp/ParserAutoComplete.cpp @@ -146,6 +146,8 @@ Vector ParserAutoComplete::autocomplete_name(c available_names.append(name); }; for (auto& decl : available_declarations) { + if (decl.filename() == node.filename() && decl.start().line > node.start().line) + continue; if (decl.is_variable_or_parameter_declaration()) { add_name(((Cpp::VariableOrParameterDeclaration&)decl).m_name); } @@ -241,7 +243,9 @@ String ParserAutoComplete::type_of(const DocumentData& document, const Expressio { if (expression.is_member_expression()) { auto& member_expression = (const MemberExpression&)expression; - return type_of_property(document, *member_expression.m_property); + if (member_expression.m_property->is_identifier()) + return type_of_property(document, static_cast(*member_expression.m_property)); + return {}; } if (!expression.is_identifier()) { VERIFY_NOT_REACHED(); // TODO