Skip to content

Conversation

@OXINARF
Copy link

@OXINARF OXINARF commented Dec 24, 2025

When a map has enum as keys and any type of struct as values, the enum value that was used for the key would be replaced as if it was base class.

As the VariableInformation class has a constructor that receives the names directly from the map, use that information to not allow the name override.

Fixes microsoft/vscode-cpptools#12102

Tested on VS Code 1.107.1 with ms-vscode.cpptools 1.29.3

Important

The check for the base class is not entirely clear to me and looking at the file history didn't really help. It seems to me that it is kind of arbitrary, based on some previous observations, but not on a proper protocol.

I'm also abusing the name argument for this, but it seems safe:

  • it was created specifically for maps and nothing else is using it
  • if a name is being provided, it doesn't make sense to me to replace it by a generic base class name

When a map has enum as keys and any type of struct as values, the enum value that was used for the key would be replaced as if it was base class.

As the VariableInformation class has a constructor that receives the names directly from the map, use that information to not allow the name override.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Locals/Watch window displays std::map<enum, struct> incorrectly

1 participant