microsoft / vscode-cpptools

Official repository for the Microsoft C/C++ extension for VS Code.
Other
5.53k stars 1.56k forks source link

IntelliSense fails to handle aliased struct #12724

Open mehlian opened 1 month ago

mehlian commented 1 month ago

Environment

Bug Summary and Steps to Reproduce

Bug Summary: When aliasing is used for struct that uses same name as namespace then IntelliSense shows error.

Steps to reproduce:

  1. Paste in code:

    
    namespace AAA
    {
    struct AAA
    {
        int integer;
    };
    
    int AAAtest(int a)
    {
        return a + 10;
    }
    }

namespace BBB { using AAA = AAA::AAA; // shows error

void test(AAA *aa) { aa->integer++; int result = ::AAA::AAAtest(10); } }

2. Error `overloaded function "AAA::AAA::AAA" is not a type nameC/C++(757)` will be shown on mouse hover over `using AAA = AAA::AAA; ` line.

Expected behavior:
No error should be shown here.
Code compiles using `clang version 14.0.6 Android (8490178, based on r450784d)` (other compilers not tested).

### Configuration and Logs

```shell
{
    "configurations": [
        {
            "name": "android",
            "includePath": [
                "${workspaceFolder}/src/**"
            ],
            "defines": [
                "_DEBUG",
                "DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "${workspaceFolder}/../android_sdk/ndk/25.1.8937393/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe",
            "cStandard": "c11",
            "cppStandard": "c++11",
            "intelliSenseMode": "linux-clang-arm64",
            "browse": {
                "limitSymbolsToIncludedHeaders": true
            },
            "compilerArgs": [
                "--target=aarch64-unknown-linux-android26",
                "-Werror",
                "-pedantic-errors",
                "--std=c++11",
                "-fPIC",
                "-ferror-limit=0",
                "-fstack-protector-strong",
                "-Wno-writable-strings",
                "-Wno-gnu-anonymous-struct",
                "-Wno-nested-anon-types",
                "-Wl,--no-undefined-version",
                "-Wl,-undefined,error",
                "-Wl,--error-unresolved-symbols",
                "-Wl,--no-undefined",
                "-Wl,-error-limit=0",
                "-Wl,--build-id=sha1",
                "-mno-relax"
            ]
        }
    ],
    "version": 4
}

Other Extensions

No response

Additional context

No response

Colengms commented 1 month ago

Hi @mehlian . Thanks for reporting this. Since this also repro's in VS (which shares the same IntelliSense implementation), I opened an issue against VS internally. (ID 2255630)