@@ -957,6 +957,48 @@ TEST(lsp_references_list_comprehension_loop_var) {
957957 free (response );
958958}
959959
960+ TEST (lsp_references_exclude_shadowed_comprehension_var_for_outer_symbol ) {
961+ const char * code =
962+ "set item to 0\n"
963+ "set values to [item for item in [1, 2, 3]]\n"
964+ "print item\n" ;
965+ ASSERT_TRUE (lsp_did_open (g_ctx , "file:///test.kr" , code ));
966+
967+ usleep (100000 ); // 100ms
968+ char * diag = lsp_read_response (g_ctx , 500 );
969+ free (diag );
970+
971+ char * response = lsp_references (g_ctx , 0 , 5 );
972+ ASSERT_PTR_NOT_NULL (response );
973+ ASSERT_TRUE (lsp_is_valid_json (response ));
974+ ASSERT_TRUE (lsp_response_contains (response , "\"line\":0,\"character\":0" ));
975+ ASSERT_TRUE (lsp_response_contains (response , "\"line\":2,\"character\":0" ));
976+ ASSERT_FALSE (lsp_response_contains (response , "\"line\":1,\"character\":0" ));
977+ free (response );
978+ }
979+
980+ TEST (lsp_rename_excludes_shadowed_comprehension_var_for_outer_symbol ) {
981+ const char * code =
982+ "set item to 0\n"
983+ "set values to [item for item in [1, 2, 3]]\n"
984+ "print item\n" ;
985+ ASSERT_TRUE (lsp_did_open (g_ctx , "file:///test.kr" , code ));
986+
987+ usleep (100000 ); // 100ms
988+ char * diag = lsp_read_response (g_ctx , 500 );
989+ free (diag );
990+
991+ char * response = lsp_rename (g_ctx , 0 , 5 , "renamed_item" );
992+ ASSERT_PTR_NOT_NULL (response );
993+ ASSERT_TRUE (lsp_is_valid_json (response ));
994+ ASSERT_TRUE (lsp_response_contains (response , "\"newText\":\"renamed_item\"" ));
995+ ASSERT_TRUE (lsp_response_contains (response , "\"line\":0,\"character\":4" ));
996+ ASSERT_TRUE (lsp_response_contains (response , "\"line\":2,\"character\":6" ));
997+ ASSERT_FALSE (lsp_response_contains (response , "\"line\":1,\"character\":15" ));
998+ ASSERT_FALSE (lsp_response_contains (response , "\"line\":1,\"character\":24" ));
999+ free (response );
1000+ }
1001+
9601002TEST (lsp_references_include_debug_statement_usage ) {
9611003 const char * code =
9621004 "set tracked to 10\n"
0 commit comments