summary refs log tree commit diff stats
path: root/nimsuggest/tests/tcon1.nim
diff options
context:
space:
mode:
Diffstat (limited to 'nimsuggest/tests/tcon1.nim')
-rw-r--r--nimsuggest/tests/tcon1.nim43
1 files changed, 43 insertions, 0 deletions
diff --git a/nimsuggest/tests/tcon1.nim b/nimsuggest/tests/tcon1.nim
new file mode 100644
index 000000000..627e7f400
--- /dev/null
+++ b/nimsuggest/tests/tcon1.nim
@@ -0,0 +1,43 @@
+## Test Invocation `con`text in various situations
+
+## various of this proc are used as the basis for these tests
+proc test(s: string; a: int) = discard
+
+## This overload should be used to ensure the lower airity `test` doesn't match
+proc test(s: string; a: string, b: int) = discard
+
+## similar signature but different name to ensure `con` doesn't get greedy
+proc testB(a, b: string) = discard
+
+# with a param already specified
+test("hello here", #[!]#)
+
+# as first param
+testB(#[!]#
+
+# dot expressions
+"from behind".test(#[!]#
+
+# two params matched, so disqualify the lower airity `test`
+# TODO: this doesn't work, because dot exprs, overloads, etc aren't currently
+#       handled by suggest.suggestCall. sigmatch.partialMatch by way of
+#       sigmatch.matchesAux. Doesn't use the operand before the dot as part of
+#       the formal parameters. Changing this is tricky because it's used by
+#       the proper compilation sem pass and that's a big change all in one go.
+"and again".test("more", #[!]#
+
+
+discard """
+$nimsuggest --tester $file
+>con $1
+con;;skProc;;tcon1.test;;proc (s: string, a: int);;$file;;4;;5;;"";;100
+con;;skProc;;tcon1.test;;proc (s: string, a: string, b: int);;$file;;7;;5;;"";;100
+>con $2
+con;;skProc;;tcon1.testB;;proc (a: string, b: string);;$file;;10;;5;;"";;100
+>con $3
+con;;skProc;;tcon1.test;;proc (s: string, a: string, b: int);;$file;;7;;5;;"";;100
+con;;skProc;;tcon1.test;;proc (s: string, a: int);;$file;;4;;5;;"";;100
+>con $4
+con;;skProc;;tcon1.test;;proc (s: string, a: int);;$file;;4;;5;;"";;100
+con;;skProc;;tcon1.test;;proc (s: string, a: string, b: int);;$file;;7;;5;;"";;100
+"""