diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2023-05-30 23:29:16 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-30 15:29:16 +0000 |
| commit | 4c1396c3532d6ad4973177d1c97578989385f347 (patch) | |
| tree | 619929db1811e4b675753cd28c88211cc7f04f0a | |
| parent | ab284ca61d0c4c29ac7331b99a98f95bb3ad44e5 (diff) | |
Disallow duplicate enumerator names in the same enum (#2904)
Fixes https://github.com/shader-slang/slang/issues/2895
| -rw-r--r-- | source/slang/slang-check-decl.cpp | 1 | ||||
| -rw-r--r-- | tests/bugs/overloaded-enum.slang | 10 |
2 files changed, 11 insertions, 0 deletions
diff --git a/source/slang/slang-check-decl.cpp b/source/slang/slang-check-decl.cpp index 3fd7bee7a..c7a955f06 100644 --- a/source/slang/slang-check-decl.cpp +++ b/source/slang/slang-check-decl.cpp @@ -145,6 +145,7 @@ namespace Slang #define CASE(TYPE) void visit##TYPE(TYPE* decl) { checkForRedeclaration(decl); } + CASE(EnumCaseDecl) CASE(FuncDecl) CASE(VarDeclBase) CASE(SimpleTypeDecl) diff --git a/tests/bugs/overloaded-enum.slang b/tests/bugs/overloaded-enum.slang new file mode 100644 index 000000000..3b9ac8e10 --- /dev/null +++ b/tests/bugs/overloaded-enum.slang @@ -0,0 +1,10 @@ +//TEST:SIMPLE(filecheck=CHECK): + +enum E +{ + A, + A + // CHECK: overloaded-enum.slang([[#@LINE-1]]): error 30200: declaration of 'A' conflicts with existing declaration +} + +E e = E::A; |
