diff --git a/.gitignore b/.gitignore index 03e7c35cc4..536ec9d24e 100644 --- a/.gitignore +++ b/.gitignore @@ -169,6 +169,7 @@ examples/cross_calculator/android/tags /testresults.json /tests/caas/SymbolProcRun.*/ /tests/caas/absurd_nesting +/tests/caas/completion_dot_syntax_main /tests/caas/forward_declarations /tests/caas/idetools_api /tests/caas/imported diff --git a/tests/caas/completion_dot_syntax.txt b/tests/caas/completion_dot_syntax.txt new file mode 100644 index 0000000000..dbffe265cc --- /dev/null +++ b/tests/caas/completion_dot_syntax.txt @@ -0,0 +1,8 @@ +completion_dot_syntax_main.nim +> idetools --track:$TESTNIM,24,15 --def +def\tskProc\t$MODULE.echoRemainingDollars +> idetools --trackDirty:completion_dot_syntax_dirty.nim,$TESTNIM,25,12 --suggest +sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingDollars +# The suggestion should not mention the other echoRemaining* variants. +!sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingEuros +!sug\tskProc\tcompletion_dot_syntax_dirty.echoRemainingBugs diff --git a/tests/caas/completion_dot_syntax_dirty.nim b/tests/caas/completion_dot_syntax_dirty.nim new file mode 100644 index 0000000000..6237c4e79e --- /dev/null +++ b/tests/caas/completion_dot_syntax_dirty.nim @@ -0,0 +1,25 @@ +import strutils + +# Verifies if the --suggestion switch differentiates types for dot notation. + +type + TDollar = distinct int + TEuro = distinct int + +proc echoRemainingDollars(amount: TDollar) = + echo "You have $1 dollars" % [$int(amount)] + +proc echoRemainingEuros(amount: TEuro) = + echo "You have $1 euros" % [$int(amount)] + +proc echoRemainingBugs() = + echo "You still have bugs" + +proc main = + var + d: TDollar + e: TEuro + d = TDollar(23) + e = TEuro(32) + d.echoRemainingDollars() + e.echoRemai diff --git a/tests/caas/completion_dot_syntax_main.nim b/tests/caas/completion_dot_syntax_main.nim new file mode 100644 index 0000000000..0be8c7f4fb --- /dev/null +++ b/tests/caas/completion_dot_syntax_main.nim @@ -0,0 +1,24 @@ +import strutils + +# Verifies if the --suggestion switch differentiates types for dot notation. + +type + TDollar = distinct int + TEuro = distinct int + +proc echoRemainingDollars(amount: TDollar) = + echo "You have $1 dollars" % [$int(amount)] + +proc echoRemainingEuros(amount: TEuro) = + echo "You have $1 euros" % [$int(amount)] + +proc echoRemainingBugs() = + echo "You still have bugs" + +proc main = + var + d: TDollar + e: TEuro + d = TDollar(23) + e = TEuro(32) + d.echoRemainingDollars()