summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2025-07-29 07:35:58 -0700
committerGitHub <noreply@github.com>2025-07-29 14:35:58 +0000
commit855b1a262f3a769d44765e78f94e566d875b9286 (patch)
treeea41db3717f55aa5032b1f04d71729a452ec68b2 /tests
parentea6f8551ad38f2bcc32b542fd52ce17f3829cbeb (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.slang4
-rw-r--r--tests/diagnostics/generic-type-inference-fail.slang3
-rw-r--r--tests/language-server/generic-signature-1.slang15
-rw-r--r--tests/language-server/generic-signature-2.slang15
-rw-r--r--tests/language-server/generic-signature-3.slang14
-rw-r--r--tests/language-server/generic-signature.slang15
-rw-r--r--tests/language-server/robustness-6.slang4
-rw-r--r--tests/language-server/tuple-completion.slang11
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