diff options
| -rw-r--r-- | source/slang/slang-parser.cpp | 1 | ||||
| -rw-r--r-- | tests/language-feature/namespaces/simple-namespace.slang | 7 |
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(); } |
