diff options
| author | Yong He <yonghe@outlook.com> | 2025-07-29 07:35:58 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-29 14:35:58 +0000 |
| commit | 855b1a262f3a769d44765e78f94e566d875b9286 (patch) | |
| tree | ea41db3717f55aa5032b1f04d71729a452ec68b2 /tests | |
| parent | ea6f8551ad38f2bcc32b542fd52ce17f3829cbeb (diff) | |
[Language Server]: Show signature help on generic parameters. (#7913)
* Show signature help on generic parameters.
* Fix.
* Update tests.
* slang-test: make vvl error go through stderr.
* update slang-rhi
* Update slang-rhi
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/diagnostics/extension-visibility.slang | 4 | ||||
| -rw-r--r-- | tests/diagnostics/generic-type-inference-fail.slang | 3 | ||||
| -rw-r--r-- | tests/language-server/generic-signature-1.slang | 15 | ||||
| -rw-r--r-- | tests/language-server/generic-signature-2.slang | 15 | ||||
| -rw-r--r-- | tests/language-server/generic-signature-3.slang | 14 | ||||
| -rw-r--r-- | tests/language-server/generic-signature.slang | 15 | ||||
| -rw-r--r-- | tests/language-server/robustness-6.slang | 4 | ||||
| -rw-r--r-- | tests/language-server/tuple-completion.slang | 11 |
8 files changed, 78 insertions, 3 deletions
diff --git a/tests/diagnostics/extension-visibility.slang b/tests/diagnostics/extension-visibility.slang index 029b16b86..9923e678d 100644 --- a/tests/diagnostics/extension-visibility.slang +++ b/tests/diagnostics/extension-visibility.slang @@ -3,7 +3,7 @@ // Confirm that visibility of `extensions` is // correctly scoped via `import`. -//DIAGNOSTIC_TEST:SIMPLE: +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): import extension_visibility_a; @@ -16,3 +16,5 @@ int shouldntWork(MyThing thing) { return helper(thing); } + +// CHECK: could not specialize generic for arguments of type
\ No newline at end of file diff --git a/tests/diagnostics/generic-type-inference-fail.slang b/tests/diagnostics/generic-type-inference-fail.slang index 803c7584c..106570587 100644 --- a/tests/diagnostics/generic-type-inference-fail.slang +++ b/tests/diagnostics/generic-type-inference-fail.slang @@ -1,4 +1,4 @@ -//DIAGNOSTIC_TEST:SIMPLE: +//DIAGNOSTIC_TEST:SIMPLE(filecheck=CHECK): interface IAssoc { @@ -63,6 +63,7 @@ int test() var obj = CreateT<Impl>(2); var obj2 = CreateT_Assoc<Impl>(1); + // CHECK: could not specialize generic for arguments of type var obj3 = CreateT_Assoc_Inner(1); // ERROR. return obj.GetAssoc().Compute() + obj2.Compute() + obj3.Compute(); diff --git a/tests/language-server/generic-signature-1.slang b/tests/language-server/generic-signature-1.slang new file mode 100644 index 000000000..b7a6d3112 --- /dev/null +++ b/tests/language-server/generic-signature-1.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent<V> +{ + static void test<T, int size>(vector<T, size> v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,25 + Parent<int>.test(1, 2); +} + +//CHECK:static func Parent<int>.test<T, size>(vector<T,size> v, int m) -> void
\ No newline at end of file diff --git a/tests/language-server/generic-signature-2.slang b/tests/language-server/generic-signature-2.slang new file mode 100644 index 000000000..2acbf4113 --- /dev/null +++ b/tests/language-server/generic-signature-2.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent<V> +{ + static void test<T, int size>(vector<T, size> v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,22 + Parent<int>.test< +} + +//CHECK:static func Parent<int>.test<T, int size> -> void
\ No newline at end of file diff --git a/tests/language-server/generic-signature-3.slang b/tests/language-server/generic-signature-3.slang new file mode 100644 index 000000000..e379245ea --- /dev/null +++ b/tests/language-server/generic-signature-3.slang @@ -0,0 +1,14 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent<V> +{ + static void test<T, int size>(vector<T, size> v, int m) + {} +} + +void use() +{ +//SIGNATURE:11,22 + Parent<int>.test<float> +} + +//CHECK:static func Parent<int>.test<T, int size> -> void
\ No newline at end of file diff --git a/tests/language-server/generic-signature.slang b/tests/language-server/generic-signature.slang new file mode 100644 index 000000000..9e5e67a00 --- /dev/null +++ b/tests/language-server/generic-signature.slang @@ -0,0 +1,15 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +struct Parent<V> +{ + static void test<T, int size>(vector<T, size> v, int m) + {} + static void test(){} +} + +void use() +{ +//SIGNATURE:12,14 + Parent<int>.test(1, 2); +} + +//CHECK: struct Parent<V>
\ No newline at end of file diff --git a/tests/language-server/robustness-6.slang b/tests/language-server/robustness-6.slang index ef5924cf3..9208b7969 100644 --- a/tests/language-server/robustness-6.slang +++ b/tests/language-server/robustness-6.slang @@ -1,4 +1,4 @@ -//TEST:LANG_SERVER: +//TEST:LANG_SERVER(filecheck=CHECK): //HOVER:4,8 float dsqr<T:II @@ -8,3 +8,5 @@ float sqr<T:IInterface>(T obj, float x) { return no_diff(obj.calc(x)) + x * x; } + +// CHECK: dsqr
\ No newline at end of file diff --git a/tests/language-server/tuple-completion.slang b/tests/language-server/tuple-completion.slang new file mode 100644 index 000000000..d4a02a04f --- /dev/null +++ b/tests/language-server/tuple-completion.slang @@ -0,0 +1,11 @@ +//TEST:LANG_SERVER(filecheck=CHECK): +void f() +{ + Tuple<int,float> v; +//COMPLETE:6,7 + v. +} + +// CHECK: _0 +// CHECK: _1 +// CHECK: equals
\ No newline at end of file |
