summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-check-decl.cpp1
-rw-r--r--tests/bugs/overloaded-enum.slang10
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;