From d655302465457c5d3285ae5339201a0769cc38dc Mon Sep 17 00:00:00 2001 From: Yong He Date: Thu, 5 Sep 2024 11:24:19 -0700 Subject: Support `where` clause and type equality constraint. (#4986) * Support `where` clause. * Fix. * Fix parser. * Enhance test to cover traditional __generic syntax. * Update user-guide. * Support `where` clause on associatedtype. * Fix. * Put in more comments. --- tests/bugs/eroneous-generic-parse.slang | 3 ++- tests/bugs/eroneous-generic-parse.slang.expected | 8 -------- tests/bugs/parser-infinite-loop.slang | 3 ++- tests/bugs/parser-infinite-loop.slang.expected | 11 ----------- 4 files changed, 4 insertions(+), 21 deletions(-) delete mode 100644 tests/bugs/eroneous-generic-parse.slang.expected delete mode 100644 tests/bugs/parser-infinite-loop.slang.expected (limited to 'tests/bugs') diff --git a/tests/bugs/eroneous-generic-parse.slang b/tests/bugs/eroneous-generic-parse.slang index 80a693456..18bcb3b1e 100644 --- a/tests/bugs/eroneous-generic-parse.slang +++ b/tests/bugs/eroneous-generic-parse.slang @@ -1,8 +1,9 @@ -//DIAGNOSTIC_TEST:SIMPLE: -target hlsl -entry computeMain -stage compute +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): -target hlsl -entry computeMain -stage compute //TEST_INPUT:ubuffer(data=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0], stride=16):out RWStructuredBuffer outputBuffer; +// CHECK: error 20001 // Previously this definition would lead to an infinite loop in parsing. int doThing<1>() { return 2; } diff --git a/tests/bugs/eroneous-generic-parse.slang.expected b/tests/bugs/eroneous-generic-parse.slang.expected deleted file mode 100644 index a6ee73d88..000000000 --- a/tests/bugs/eroneous-generic-parse.slang.expected +++ /dev/null @@ -1,8 +0,0 @@ -result code = -1 -standard error = { -tests/bugs/eroneous-generic-parse.slang(7): error 20001: unexpected integer literal, expected identifier -int doThing<1>() { return 2; } - ^ -} -standard output = { -} diff --git a/tests/bugs/parser-infinite-loop.slang b/tests/bugs/parser-infinite-loop.slang index 70abc9260..036202c4a 100644 --- a/tests/bugs/parser-infinite-loop.slang +++ b/tests/bugs/parser-infinite-loop.slang @@ -1,5 +1,6 @@ -//DIAGNOSTIC_TEST:SIMPLE: +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): +// CHECK: error 20001: struct test { float3 field; diff --git a/tests/bugs/parser-infinite-loop.slang.expected b/tests/bugs/parser-infinite-loop.slang.expected deleted file mode 100644 index df1d731bc..000000000 --- a/tests/bugs/parser-infinite-loop.slang.expected +++ /dev/null @@ -1,11 +0,0 @@ -result code = -1 -standard error = { -tests/bugs/parser-infinite-loop.slang(10): error 20001: unexpected integer literal, expected identifier - vector v; - ^ -tests/bugs/parser-infinite-loop.slang(10): error 20001: unexpected identifier, expected '(' - vector v; - ^ -} -standard output = { -} -- cgit v1.2.3