microsoft / microsoft/vscode-cpptools

Extract to free function doesn't properly reference the source class object

Open
#11,473 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Feature: Extract to function insiders Language Service Visual Studio
Dominant language
TypeScript
Stars
6.2k
Forks
1.7k
Avg merge
14h 46m
Merged PRs (30d)
61

Description

Use "Extract to free function" using the code below and the selection shown in the screenshot (of code in a member function of class that references other class elements).

class foo
{
public:
    int var;
    int func();
    int func2() { return var * 2; }
};

int foo::func()
{
    return func2() + var;
}
image

Bug: The generated code doesn't properly reference the class object in the free function (i.e. by taking a pointer or reference to an object of the class). The bug repros in the latest 17.8 Preview version of VS (the earlier 17.7.4 crashes).

image

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the issue in the VS 17.8 Preview version using the provided C++ class and the shown selection, then inspect the implementation of “Extract to free function.” Done means the generated free function correctly references the source class object and the earlier crash is not reintroduced.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.