summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/slang/slang-parser.cpp1
-rw-r--r--tests/language-feature/namespaces/simple-namespace.slang7
2 files changed, 6 insertions, 2 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index 6bf26b014..1b862de77 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -7738,7 +7738,6 @@ static Expr* parsePostfixExpr(Parser* parser)
case TokenType::LBracket:
case TokenType::OpMul:
case TokenType::Dot:
- case TokenType::Scope:
expr = parsePostfixTypeSuffix(parser, expr);
break;
default:
diff --git a/tests/language-feature/namespaces/simple-namespace.slang b/tests/language-feature/namespaces/simple-namespace.slang
index 2066d2b7c..2bf2bb508 100644
--- a/tests/language-feature/namespaces/simple-namespace.slang
+++ b/tests/language-feature/namespaces/simple-namespace.slang
@@ -3,9 +3,11 @@
//TEST(compute):COMPARE_COMPUTE: -shaderobj
// Test that simple `namespace` declarations work as expected
+// Test that the global scope operator `::` works as expected
namespace A
{
+ static int num = 16;
struct X
{
int val;
@@ -47,7 +49,10 @@ namespace A
int test(int val)
{
A.X a = A::makeX(val);
- B::X b = B.makeX(val*16, val*256);
+ // Use the global scope operator "::A::num" to access the static member of namespace A
+ // Test it with mul operator
+ int num = 16*::A::num;
+ B::X b = B.makeX(val*16, val*num);
return a.getVal() + b.getHead() + b.getTail();
}