From 0c64995ea28febcc7d38e1519da8d93391ce2e7d Mon Sep 17 00:00:00 2001 From: Yong He Date: Tue, 7 Jun 2022 14:10:49 -0700 Subject: Major language server features. (#2264) * Major language server features. * Include slangd in binary release. * Fix compiler issues. * Fix compiler error. * Completion resolve. * Various improvements. * Update diagnostic test expected output. * Bug fix for source locations. * Adjust diagnostic update frequency. * Update github actions to store artifacts. * Fix infinite parser loop. * Fix parser recovery. * Fix parser recovery. * Update test. * Fix test. * Disable IR gen for language server. * Allow commit characters in auto completion. * Fix lookup for invoke exprs. * More parser robustness fixes. * update solution file Co-authored-by: Yong He --- tests/bugs/generic-type-arg-overloaded.slang.expected | 8 ++++---- tests/bugs/parser-infinite-loop.slang | 11 +++++++++++ tests/bugs/parser-infinite-loop.slang.expected | 11 +++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) create mode 100644 tests/bugs/parser-infinite-loop.slang create mode 100644 tests/bugs/parser-infinite-loop.slang.expected (limited to 'tests/bugs') diff --git a/tests/bugs/generic-type-arg-overloaded.slang.expected b/tests/bugs/generic-type-arg-overloaded.slang.expected index 126dcfa60..390c4fe00 100644 --- a/tests/bugs/generic-type-arg-overloaded.slang.expected +++ b/tests/bugs/generic-type-arg-overloaded.slang.expected @@ -2,16 +2,16 @@ result code = -1 standard error = { tests/bugs/generic-type-arg-overloaded.slang(14): error 30200: declaration of 'Stuff' conflicts with existing declaration struct Stuff {} -^~~~~~ + ^~~~~ tests/bugs/generic-type-arg-overloaded.slang(11): note: see previous declaration of 'Stuff' tests/bugs/generic-type-arg-overloaded.slang(26): error 39999: ambiguous reference to 'Stuff' return util() ^~~~~ -tests/bugs/generic-type-arg-overloaded.slang(14): note 39999: candidate: Stuff -tests/bugs/generic-type-arg-overloaded.slang(11): note 39999: candidate: Stuff +tests/bugs/generic-type-arg-overloaded.slang(14): note 39999: candidate: struct Stuff +tests/bugs/generic-type-arg-overloaded.slang(11): note 39999: candidate: struct Stuff tests/bugs/generic-type-arg-overloaded.slang(32): error 39999: expected a generic when using '<...>' (found: '() -> int') + nonGeneric(); - ^ + ^~~~~~~~~~ } standard output = { } diff --git a/tests/bugs/parser-infinite-loop.slang b/tests/bugs/parser-infinite-loop.slang new file mode 100644 index 000000000..70abc9260 --- /dev/null +++ b/tests/bugs/parser-infinite-loop.slang @@ -0,0 +1,11 @@ +//DIAGNOSTIC_TEST:SIMPLE: + +struct test +{ + float3 field; +} +void f() +{ + test x; x + vector v; +} diff --git a/tests/bugs/parser-infinite-loop.slang.expected b/tests/bugs/parser-infinite-loop.slang.expected new file mode 100644 index 000000000..df1d731bc --- /dev/null +++ b/tests/bugs/parser-infinite-loop.slang.expected @@ -0,0 +1,11 @@ +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